mirror of
https://github.com/saymrwulf/fips205-source.git
synced 2026-09-04 20:03:45 +00:00
ga
This commit is contained in:
parent
6b94ff1aa0
commit
d8bdfbb883
3 changed files with 20 additions and 13 deletions
|
|
@ -14,11 +14,11 @@ rand_core = { version = "0.6.4", default-features = false }
|
||||||
sha3 = { version = "0.10.8", default-features = false }
|
sha3 = { version = "0.10.8", default-features = false }
|
||||||
sha2 = { version = "0.10.8", default-features = false }
|
sha2 = { version = "0.10.8", default-features = false }
|
||||||
generic-array = { version = "1.0.0", features=["const-default", "zeroize"] }
|
generic-array = { version = "1.0.0", features=["const-default", "zeroize"] }
|
||||||
hex = "0.4.3"
|
|
||||||
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rand_chacha = "0.3.1"
|
rand_chacha = "0.3.1"
|
||||||
|
hex = "0.4.3"
|
||||||
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ pub trait SerDes {
|
||||||
/// Produces a byte array of fixed-size specific to the struct being serialized.
|
/// Produces a byte array of fixed-size specific to the struct being serialized.
|
||||||
/// # Examples
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// println!("Placeholder");
|
||||||
/// ```
|
/// ```
|
||||||
fn into_bytes(self) -> Self::ByteArray;
|
fn into_bytes(self) -> Self::ByteArray;
|
||||||
|
|
||||||
|
|
@ -20,6 +21,7 @@ pub trait SerDes {
|
||||||
/// Returns an error on malformed input.
|
/// Returns an error on malformed input.
|
||||||
/// # Examples
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// println!("Placeholder");
|
||||||
/// ```
|
/// ```
|
||||||
fn try_from_bytes(bytes: &Self::ByteArray) -> Result<Self, &'static str>
|
fn try_from_bytes(bytes: &Self::ByteArray) -> Result<Self, &'static str>
|
||||||
where
|
where
|
||||||
|
|
@ -41,6 +43,7 @@ pub trait KeyGen {
|
||||||
/// Returns an error when the random number generator fails; propagates internal errors.
|
/// Returns an error when the random number generator fails; propagates internal errors.
|
||||||
/// # Examples
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// println!("Placeholder");
|
||||||
/// ```
|
/// ```
|
||||||
#[cfg(feature = "default-rng")]
|
#[cfg(feature = "default-rng")]
|
||||||
fn try_keygen_vt() -> Result<(Self::PublicKey, Self::PrivateKey), &'static str> {
|
fn try_keygen_vt() -> Result<(Self::PublicKey, Self::PrivateKey), &'static str> {
|
||||||
|
|
@ -54,6 +57,7 @@ pub trait KeyGen {
|
||||||
/// Returns an error when the random number generator fails; propagates internal errors.
|
/// Returns an error when the random number generator fails; propagates internal errors.
|
||||||
/// # Examples
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// println!("Placeholder");
|
||||||
/// ```
|
/// ```
|
||||||
fn try_keygen_with_rng_vt(
|
fn try_keygen_with_rng_vt(
|
||||||
rng: &mut impl CryptoRngCore,
|
rng: &mut impl CryptoRngCore,
|
||||||
|
|
@ -74,6 +78,7 @@ pub trait Signer {
|
||||||
/// Returns an error when the random number generator fails; propagates internal errors.
|
/// Returns an error when the random number generator fails; propagates internal errors.
|
||||||
/// # Examples
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// println!("Placeholder");
|
||||||
/// ```
|
/// ```
|
||||||
#[cfg(feature = "default-rng")]
|
#[cfg(feature = "default-rng")]
|
||||||
fn try_sign_ct(
|
fn try_sign_ct(
|
||||||
|
|
@ -90,6 +95,7 @@ pub trait Signer {
|
||||||
/// Returns an error when the random number generator fails; propagates internal errors.
|
/// Returns an error when the random number generator fails; propagates internal errors.
|
||||||
/// # Examples
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// println!("Placeholder");
|
||||||
/// ```
|
/// ```
|
||||||
fn try_sign_with_rng_ct(
|
fn try_sign_with_rng_ct(
|
||||||
&self, rng: &mut impl CryptoRngCore, message: &[u8], randomize: bool,
|
&self, rng: &mut impl CryptoRngCore, message: &[u8], randomize: bool,
|
||||||
|
|
@ -110,6 +116,7 @@ pub trait Verifier {
|
||||||
/// Returns an error on a malformed signature; propagates internal errors.
|
/// Returns an error on a malformed signature; propagates internal errors.
|
||||||
/// # Examples
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// println!("Placeholder");
|
||||||
/// ```
|
/// ```
|
||||||
fn try_verify_vt(
|
fn try_verify_vt(
|
||||||
&self, message: &[u8], signature: &Self::Signature,
|
&self, message: &[u8], signature: &Self::Signature,
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ fn vector_slh_dsa_shake_128s() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@ fn vector_slh_dsa_shake_128f() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ fn vector_slh_dsa_shake_192s() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -126,7 +126,7 @@ fn vector_slh_dsa_shake_192f() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -149,7 +149,7 @@ fn vector_slh_dsa_shake_256s() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -172,7 +172,7 @@ fn vector_slh_dsa_shake_256f() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -195,7 +195,7 @@ fn vector_slh_dsa_sha2_128s() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -218,7 +218,7 @@ fn vector_slh_dsa_sha2_128f() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -241,7 +241,7 @@ fn vector_slh_dsa_sha2_192s() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -264,7 +264,7 @@ fn vector_slh_dsa_sha2_192f() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -287,7 +287,7 @@ fn vector_slh_dsa_sha2_256s() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -310,5 +310,5 @@ fn vector_slh_dsa_sha2_256f() {
|
||||||
assert_eq!(sig_act.len(), sig_exp.len());
|
assert_eq!(sig_act.len(), sig_exp.len());
|
||||||
assert_eq!(sig_act, *sig_exp);
|
assert_eq!(sig_act, *sig_exp);
|
||||||
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
let result = pk.try_verify_vt(&m, &sig_act).unwrap();
|
||||||
assert_eq!(result, true, "Signature did not verify!");
|
assert!(result, "Signature did not verify!");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue