Skip to main content

Crate darkpool_crypto

Crate darkpool_crypto 

Source
Expand description

Cryptographic primitives for the DarkPool protocol (BJJ, Poseidon2, AES, ECDH, KDF, DLEQ).

All implementations maintain cross-language byte-identical parity with TypeScript, Noir, and Solidity.

Re-exports§

pub use aes::aes128_decrypt;
pub use aes::aes128_encrypt;
pub use aes::kdf_to_aes_key_iv;
pub use bjj::u256_to_le_bytes;
pub use bjj::PublicKey;
pub use bjj::SecretKey;
pub use bjj::SharedSecret;
pub use bjj::BASE8;
pub use bjj::BASE8_X;
pub use bjj::BASE8_Y;
pub use bjj::SUBGROUP_ORDER;
pub use dleq::generate_dleq_proof;
pub use dleq::RawDleqProof;
pub use ecdh::bjj_is_on_curve;
pub use ecdh::bjj_scalar_mul;
pub use ecdh::derive_public_key_from_sk;
pub use ecdh::derive_shared_secret_bjj;
pub use error::CryptoError;
pub use field::address_to_field;
pub use field::deserialize_fr;
pub use field::field_to_address;
pub use field::fr_to_u256;
pub use field::from_noir_hex;
pub use field::poseidon_hash;
pub use field::poseidon_hash_fr;
pub use field::random_bjj_scalar;
pub use field::random_field;
pub use field::serialize_fr;
pub use field::string_to_fr;
pub use field::to_noir_decimal;
pub use field::to_noir_hex;
pub use field::u256_to_fr;
pub use kdf::Kdf;
pub use poseidon::IPoseidonHasher;
pub use poseidon::NoxHasher;

Modules§

aes
bjj
dleq
Chaum-Pedersen NIZK proof that log_G(B) == log_C(P) for compliance key derivation.
ecdh
error
field
kdf
Domain-separated key derivation for the Hisoka protocol.
poseidon