[][src]Module saber::firesaber

Saber key encapsulation using paranoid parameters.

Example

use saber::firesaber::{keygen, encapsulate, decapsulate};

// Consider a server with a key pair
let server_secret_key = keygen();
let server_public_key = server_secret_key.public_key();

// Let a client encapsulate some shared secret for the server
let (client_secret, ciphertext) = encapsulate(&server_public_key);

// Have the server decrypt the ciphertext
let server_secret = decapsulate(&ciphertext, &server_secret_key);

assert_eq!(client_secret.as_slice(), server_secret.as_slice());

Structs

Ciphertext

A ciphertext formatted as a byte string.

PublicKey

A saber public key

PublicKeyBytes

A public key formatted as a byte string.

SecretKey

A saber secret key

SecretKeyBytes

A secret key formatted as a byte string.

SharedSecret

Functions

decapsulate

Decapsulate a received ciphertext

encapsulate

Encapsulate a secret destined for pk_cca.

keygen

Generate a saber keypair.