pub const KYBER_N: usize = 256;
pub const KYBER_Q: u16 = 3329;
pub struct Kyber512Params {
pub n: usize,
pub q: u16,
pub k: usize,
pub eta1: u8,
pub eta2: u8,
pub du: usize,
pub dv: usize,
pub public_key_size: usize,
pub secret_key_size: usize,
pub ciphertext_size: usize,
pub shared_secret_size: usize,
}
pub const KYBER512: Kyber512Params = Kyber512Params {
n: KYBER_N,
q: KYBER_Q,
k: 2,
eta1: 3,
eta2: 2,
du: 10,
dv: 4,
public_key_size: 800,
secret_key_size: 1632,
ciphertext_size: 768,
shared_secret_size: 32,
};
pub struct Kyber768Params {
pub n: usize,
pub q: u16,
pub k: usize,
pub eta1: u8,
pub eta2: u8,
pub du: usize,
pub dv: usize,
pub public_key_size: usize,
pub secret_key_size: usize,
pub ciphertext_size: usize,
pub shared_secret_size: usize,
}
pub const KYBER768: Kyber768Params = Kyber768Params {
n: KYBER_N,
q: KYBER_Q,
k: 3,
eta1: 2,
eta2: 2,
du: 10,
dv: 4,
public_key_size: 1184,
secret_key_size: 2400,
ciphertext_size: 1088,
shared_secret_size: 32,
};
pub struct Kyber1024Params {
pub n: usize,
pub q: u16,
pub k: usize,
pub eta1: u8,
pub eta2: u8,
pub du: usize,
pub dv: usize,
pub public_key_size: usize,
pub secret_key_size: usize,
pub ciphertext_size: usize,
pub shared_secret_size: usize,
}
pub const KYBER1024: Kyber1024Params = Kyber1024Params {
n: KYBER_N,
q: KYBER_Q,
k: 4,
eta1: 2,
eta2: 2,
du: 11,
dv: 5,
public_key_size: 1568,
secret_key_size: 3168,
ciphertext_size: 1568,
shared_secret_size: 32,
};