Skip to main content

Crate pqcrypto_picnic

Crate pqcrypto_picnic 

Source
Expand description

§Picnic bindings for pqcrypto

This crate implements the traits from pqcrypto_traits for the Picnic bindings available in picnic_bindings.

§Usage

use pqcrypto_picnic::{picnic_l1_fs_keypair, picnic_l1_fs_open, picnic_l1_fs_sign};

let (sk, pk) = picnic_l1_fs_keypair();
let sm = picnic_l1_fs_sign(b"a message", &sk);
let opened_msg = picnic_l1_fs_open(&sm, &pk).expect("signature did not verify");
assert_eq!(opened_msg, b"a message");

Re-exports§

pub use picnic_l1_fs::detached_sign as picnic_l1_fs_detached_sign;
pub use picnic_l1_fs::keypair as picnic_l1_fs_keypair;
pub use picnic_l1_fs::open as picnic_l1_fs_open;
pub use picnic_l1_fs::public_key_bytes as picnic_l1_fs_public_key_bytes;
pub use picnic_l1_fs::secret_key_bytes as picnic_l1_fs_secret_key_bytes;
pub use picnic_l1_fs::sign as picnic_l1_fs_sign;
pub use picnic_l1_fs::signature_bytes as picnic_l1_fs_signature_bytes;
pub use picnic_l1_fs::verify_detached_signature as picnic_l1_fs_verify_detached_signature;
pub use picnic_l1_ur::detached_sign as picnic_l1_ur_detached_sign;
pub use picnic_l1_ur::keypair as picnic_l1_ur_keypair;
pub use picnic_l1_ur::open as picnic_l1_ur_open;
pub use picnic_l1_ur::public_key_bytes as picnic_l1_ur_public_key_bytes;
pub use picnic_l1_ur::secret_key_bytes as picnic_l1_ur_secret_key_bytes;
pub use picnic_l1_ur::sign as picnic_l1_ur_sign;
pub use picnic_l1_ur::signature_bytes as picnic_l1_ur_signature_bytes;
pub use picnic_l1_ur::verify_detached_signature as picnic_l1_ur_verify_detached_signature;
pub use picnic_l1_full::detached_sign as picnic_l1_full_detached_sign;
pub use picnic_l1_full::keypair as picnic_l1_full_keypair;
pub use picnic_l1_full::open as picnic_l1_full_open;
pub use picnic_l1_full::public_key_bytes as picnic_l1_full_public_key_bytes;
pub use picnic_l1_full::secret_key_bytes as picnic_l1_full_secret_key_bytes;
pub use picnic_l1_full::sign as picnic_l1_full_sign;
pub use picnic_l1_full::signature_bytes as picnic_l1_full_signature_bytes;
pub use picnic_l1_full::verify_detached_signature as picnic_l1_full_verify_detached_signature;
pub use picnic3_l1::detached_sign as picnic3_l1_detached_sign;
pub use picnic3_l1::keypair as picnic3_l1_keypair;
pub use picnic3_l1::open as picnic3_l1_open;
pub use picnic3_l1::public_key_bytes as picnic3_l1_public_key_bytes;
pub use picnic3_l1::secret_key_bytes as picnic3_l1_secret_key_bytes;
pub use picnic3_l1::sign as picnic3_l1_sign;
pub use picnic3_l1::signature_bytes as picnic3_l1_signature_bytes;
pub use picnic3_l1::verify_detached_signature as picnic3_l1_verify_detached_signature;
pub use picnic_l3_fs::detached_sign as picnic_l3_fs_detached_sign;
pub use picnic_l3_fs::keypair as picnic_l3_fs_keypair;
pub use picnic_l3_fs::open as picnic_l3_fs_open;
pub use picnic_l3_fs::public_key_bytes as picnic_l3_fs_public_key_bytes;
pub use picnic_l3_fs::secret_key_bytes as picnic_l3_fs_secret_key_bytes;
pub use picnic_l3_fs::sign as picnic_l3_fs_sign;
pub use picnic_l3_fs::signature_bytes as picnic_l3_fs_signature_bytes;
pub use picnic_l3_fs::verify_detached_signature as picnic_l3_fs_verify_detached_signature;
pub use picnic_l3_ur::detached_sign as picnic_l3_ur_detached_sign;
pub use picnic_l3_ur::keypair as picnic_l3_ur_keypair;
pub use picnic_l3_ur::open as picnic_l3_ur_open;
pub use picnic_l3_ur::public_key_bytes as picnic_l3_ur_public_key_bytes;
pub use picnic_l3_ur::secret_key_bytes as picnic_l3_ur_secret_key_bytes;
pub use picnic_l3_ur::sign as picnic_l3_ur_sign;
pub use picnic_l3_ur::signature_bytes as picnic_l3_ur_signature_bytes;
pub use picnic_l3_ur::verify_detached_signature as picnic_l3_ur_verify_detached_signature;
pub use picnic_l3_full::detached_sign as picnic_l3_full_detached_sign;
pub use picnic_l3_full::keypair as picnic_l3_full_keypair;
pub use picnic_l3_full::open as picnic_l3_full_open;
pub use picnic_l3_full::public_key_bytes as picnic_l3_full_public_key_bytes;
pub use picnic_l3_full::secret_key_bytes as picnic_l3_full_secret_key_bytes;
pub use picnic_l3_full::sign as picnic_l3_full_sign;
pub use picnic_l3_full::signature_bytes as picnic_l3_full_signature_bytes;
pub use picnic_l3_full::verify_detached_signature as picnic_l3_full_verify_detached_signature;
pub use picnic3_l3::detached_sign as picnic3_l3_detached_sign;
pub use picnic3_l3::keypair as picnic3_l3_keypair;
pub use picnic3_l3::open as picnic3_l3_open;
pub use picnic3_l3::public_key_bytes as picnic3_l3_public_key_bytes;
pub use picnic3_l3::secret_key_bytes as picnic3_l3_secret_key_bytes;
pub use picnic3_l3::sign as picnic3_l3_sign;
pub use picnic3_l3::signature_bytes as picnic3_l3_signature_bytes;
pub use picnic3_l3::verify_detached_signature as picnic3_l3_verify_detached_signature;
pub use picnic_l5_fs::detached_sign as picnic_l5_fs_detached_sign;
pub use picnic_l5_fs::keypair as picnic_l5_fs_keypair;
pub use picnic_l5_fs::open as picnic_l5_fs_open;
pub use picnic_l5_fs::public_key_bytes as picnic_l5_fs_public_key_bytes;
pub use picnic_l5_fs::secret_key_bytes as picnic_l5_fs_secret_key_bytes;
pub use picnic_l5_fs::sign as picnic_l5_fs_sign;
pub use picnic_l5_fs::signature_bytes as picnic_l5_fs_signature_bytes;
pub use picnic_l5_fs::verify_detached_signature as picnic_l5_fs_verify_detached_signature;
pub use picnic_l5_ur::detached_sign as picnic_l5_ur_detached_sign;
pub use picnic_l5_ur::keypair as picnic_l5_ur_keypair;
pub use picnic_l5_ur::open as picnic_l5_ur_open;
pub use picnic_l5_ur::public_key_bytes as picnic_l5_ur_public_key_bytes;
pub use picnic_l5_ur::secret_key_bytes as picnic_l5_ur_secret_key_bytes;
pub use picnic_l5_ur::sign as picnic_l5_ur_sign;
pub use picnic_l5_ur::signature_bytes as picnic_l5_ur_signature_bytes;
pub use picnic_l5_ur::verify_detached_signature as picnic_l5_ur_verify_detached_signature;
pub use picnic_l5_full::detached_sign as picnic_l5_full_detached_sign;
pub use picnic_l5_full::keypair as picnic_l5_full_keypair;
pub use picnic_l5_full::open as picnic_l5_full_open;
pub use picnic_l5_full::public_key_bytes as picnic_l5_full_public_key_bytes;
pub use picnic_l5_full::secret_key_bytes as picnic_l5_full_secret_key_bytes;
pub use picnic_l5_full::sign as picnic_l5_full_sign;
pub use picnic_l5_full::signature_bytes as picnic_l5_full_signature_bytes;
pub use picnic_l5_full::verify_detached_signature as picnic_l5_full_verify_detached_signature;
pub use picnic3_l5::detached_sign as picnic3_l5_detached_sign;
pub use picnic3_l5::keypair as picnic3_l5_keypair;
pub use picnic3_l5::open as picnic3_l5_open;
pub use picnic3_l5::public_key_bytes as picnic3_l5_public_key_bytes;
pub use picnic3_l5::secret_key_bytes as picnic3_l5_secret_key_bytes;
pub use picnic3_l5::sign as picnic3_l5_sign;
pub use picnic3_l5::signature_bytes as picnic3_l5_signature_bytes;
pub use picnic3_l5::verify_detached_signature as picnic3_l5_verify_detached_signature;
pub use picnic_bindings;

Modules§

picnic3_l1
Implementations of pqcrypto_traits for Picnic parameter set Picnic3L1
picnic3_l3
Implementations of pqcrypto_traits for Picnic parameter set Picnic3L3
picnic3_l5
Implementations of pqcrypto_traits for Picnic parameter set Picnic3L5
picnic_l1_fs
Implementations of pqcrypto_traits for Picnic parameter set PicnicL1FS
picnic_l1_full
Implementations of pqcrypto_traits for Picnic parameter set PicnicL1Full
picnic_l1_ur
Implementations of pqcrypto_traits for Picnic parameter set PicnicL1UR
picnic_l3_fs
Implementations of pqcrypto_traits for Picnic parameter set PicnicL3FS
picnic_l3_full
Implementations of pqcrypto_traits for Picnic parameter set PicnicL3Full
picnic_l3_ur
Implementations of pqcrypto_traits for Picnic parameter set PicnicL3UR
picnic_l5_fs
Implementations of pqcrypto_traits for Picnic parameter set PicnicL5FS
picnic_l5_full
Implementations of pqcrypto_traits for Picnic parameter set PicnicL5Full
picnic_l5_ur
Implementations of pqcrypto_traits for Picnic parameter set PicnicL5UR
sign

Structs§

DetachedSignature
A detached signature
PublicKey
A Picnic public key
SecretKey
A Picnic secret key
SignedMessage
A signed message

Enums§

Error
Errors that may arise when constructing keys or signatures.
VerificationError
Errors that may arise when verifying a signature

Traits§

Parameters
Trait to describe Picnic parameters