#lib #encryption #order-preserving #cryptdb

ope

This is an Order-preserving encryption (OPE) lib inspired by cryptdb's ope implementation

2 releases

0.1.1 Jul 16, 2023
0.1.0 Jul 16, 2023

#1186 in Cryptography

Download history 1/week @ 2023-12-15 2/week @ 2024-01-05 2/week @ 2024-01-12 4/week @ 2024-02-09 16/week @ 2024-02-16 16/week @ 2024-02-23 22/week @ 2024-03-01 32/week @ 2024-03-08 22/week @ 2024-03-15 31/week @ 2024-03-22 33/week @ 2024-03-29

123 downloads per month
Used in 6 crates (via sentc-crypto-core)

Custom license

16KB
445 lines

Ope in rust

This is an Order-preserving encryption (OPE) lib inspired by cryptdb's ope implementation.

It is a pure rust implementation, no c dependencies needed.

It is also written for no-std targets (thanks to num-traits) and works in wasm.

The max value to encrypt is 65532

use ope_rs::get_ope;

fn main()
{
	let k = b"this is a key 10".to_owned();

	let ope = get_ope(&k);

	let a = ope.encrypt(21).unwrap();
	let b = ope.encrypt(65531).unwrap();
	let c = ope.encrypt(65532).unwrap();

	assert!(a < b);
	assert!(b < c);
}

Dependencies

~1.5MB
~37K SLoC