pub(crate) const SS_BYTES: usize = 32;
#[doc(hidden)]
#[derive(Debug, Clone, Copy)]
pub struct SntrupParameters {
pub p: usize,
pub q: i32,
pub w: usize,
pub q12: i32,
pub small_encode_size: usize,
pub rounded_encode_size: usize,
pub pk_size: usize,
pub sk_size: usize,
pub ct_size: usize,
pub barrett1: i32,
pub barrett2: i32,
}
pub(crate) const SNTRUP653: SntrupParameters = SntrupParameters {
p: 653,
q: 4621,
w: 288,
q12: 2310,
small_encode_size: 164,
rounded_encode_size: 865,
pk_size: 994,
sk_size: 1518,
ct_size: 897,
barrett1: 226,
barrett2: 58084,
};
pub(crate) const SNTRUP761: SntrupParameters = SntrupParameters {
p: 761,
q: 4591,
w: 286,
q12: 2295,
small_encode_size: 191,
rounded_encode_size: 1007,
pk_size: 1158,
sk_size: 1763,
ct_size: 1039,
barrett1: 228,
barrett2: 58470,
};
pub(crate) const SNTRUP857: SntrupParameters = SntrupParameters {
p: 857,
q: 5167,
w: 322,
q12: 2583,
small_encode_size: 215,
rounded_encode_size: 1152,
pk_size: 1322,
sk_size: 1999,
ct_size: 1184,
barrett1: 202,
barrett2: 51943,
};
pub(crate) const SNTRUP953: SntrupParameters = SntrupParameters {
p: 953,
q: 6343,
w: 396,
q12: 3171,
small_encode_size: 239,
rounded_encode_size: 1317,
pk_size: 1505,
sk_size: 2254,
ct_size: 1349,
barrett1: 165,
barrett2: 42313,
};
pub(crate) const SNTRUP1013: SntrupParameters = SntrupParameters {
p: 1013,
q: 7177,
w: 448,
q12: 3588,
small_encode_size: 254,
rounded_encode_size: 1423,
pk_size: 1623,
sk_size: 2417,
ct_size: 1455,
barrett1: 146,
barrett2: 37398,
};
pub(crate) const SNTRUP1277: SntrupParameters = SntrupParameters {
p: 1277,
q: 7879,
w: 492,
q12: 3939,
small_encode_size: 320,
rounded_encode_size: 1815,
pk_size: 2067,
sk_size: 3059,
ct_size: 1847,
barrett1: 133,
barrett2: 34064,
};
mod sealed {
pub trait Sealed {}
}
pub trait SntrupParams: sealed::Sealed + 'static {
const NAME: &'static str;
const PK_BYTES: usize;
const SK_BYTES: usize;
const CT_BYTES: usize;
const SS_BYTES: usize = SS_BYTES;
#[doc(hidden)]
fn params() -> &'static SntrupParameters;
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)]
pub struct Sntrup653Params;
impl sealed::Sealed for Sntrup653Params {}
impl SntrupParams for Sntrup653Params {
const NAME: &'static str = "sntrup653";
const PK_BYTES: usize = 994;
const SK_BYTES: usize = 1518;
const CT_BYTES: usize = 897;
fn params() -> &'static SntrupParameters {
&SNTRUP653
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)]
pub struct Sntrup761Params;
impl sealed::Sealed for Sntrup761Params {}
impl SntrupParams for Sntrup761Params {
const NAME: &'static str = "sntrup761";
const PK_BYTES: usize = 1158;
const SK_BYTES: usize = 1763;
const CT_BYTES: usize = 1039;
fn params() -> &'static SntrupParameters {
&SNTRUP761
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)]
pub struct Sntrup857Params;
impl sealed::Sealed for Sntrup857Params {}
impl SntrupParams for Sntrup857Params {
const NAME: &'static str = "sntrup857";
const PK_BYTES: usize = 1322;
const SK_BYTES: usize = 1999;
const CT_BYTES: usize = 1184;
fn params() -> &'static SntrupParameters {
&SNTRUP857
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)]
pub struct Sntrup953Params;
impl sealed::Sealed for Sntrup953Params {}
impl SntrupParams for Sntrup953Params {
const NAME: &'static str = "sntrup953";
const PK_BYTES: usize = 1505;
const SK_BYTES: usize = 2254;
const CT_BYTES: usize = 1349;
fn params() -> &'static SntrupParameters {
&SNTRUP953
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)]
pub struct Sntrup1013Params;
impl sealed::Sealed for Sntrup1013Params {}
impl SntrupParams for Sntrup1013Params {
const NAME: &'static str = "sntrup1013";
const PK_BYTES: usize = 1623;
const SK_BYTES: usize = 2417;
const CT_BYTES: usize = 1455;
fn params() -> &'static SntrupParameters {
&SNTRUP1013
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord)]
pub struct Sntrup1277Params;
impl sealed::Sealed for Sntrup1277Params {}
impl SntrupParams for Sntrup1277Params {
const NAME: &'static str = "sntrup1277";
const PK_BYTES: usize = 2067;
const SK_BYTES: usize = 3059;
const CT_BYTES: usize = 1847;
fn params() -> &'static SntrupParameters {
&SNTRUP1277
}
}