Remove Zeroize Tests (#381)

* Remove Zeroize tests

* Remove `Zeroize` requirements from `Group::Pk`

* Remove `Copy` requirements from `Group::Pk`

* Change to `ZeroizeOnDrop` requirements for `Group::Sk`

* Add note why we don't use `elliptic_curve::PublicKey`
This commit is contained in:
daxpedda
2025-07-17 13:15:30 -07:00
committed by GitHub
parent 1b6633cdcc
commit c04fb97b5c
21 changed files with 110 additions and 841 deletions
-88
View File
@@ -1157,91 +1157,3 @@ fn blind<CS: CipherSuite, R: RngCore + CryptoRng>(
Ok(result)
}
//////////////////////////
// Test Implementations //
//===================== //
//////////////////////////
#[cfg(test)]
use crate::serialization::AssertZeroized;
#[cfg(test)]
impl<CS: CipherSuite> AssertZeroized for ClientRegistration<CS> {
fn assert_zeroized(&self) {
let Self {
oprf_client,
blinded_element,
} = self;
for byte in oprf_client
.serialize()
.iter()
.chain(&blinded_element.serialize())
{
assert_eq!(byte, &0);
}
}
}
#[cfg(test)]
impl<CS: CipherSuite> AssertZeroized for ServerRegistration<CS>
where
<KeGroup<CS> as Group>::Pk: AssertZeroized,
{
fn assert_zeroized(&self) {
let RegistrationUpload {
envelope,
masking_key,
client_s_pk,
} = &self.0;
envelope.assert_zeroized();
assert_eq!(masking_key, &GenericArray::default());
client_s_pk.assert_zeroized();
}
}
#[cfg(test)]
impl<CS: CipherSuite> AssertZeroized for ClientLogin<CS>
where
<CS::KeyExchange as KeyExchange>::KE1State: AssertZeroized,
<CS::KeyExchange as KeyExchange>::KE1Message: AssertZeroized,
{
fn assert_zeroized(&self) {
let Self {
ke1_state,
credential_request,
oprf_client,
} = self;
let CredentialRequest {
blinded_element,
ke1_message,
} = credential_request;
ke1_state.assert_zeroized();
ke1_message.assert_zeroized();
for byte in oprf_client
.serialize()
.iter()
.chain(&blinded_element.serialize())
{
assert_eq!(byte, &0);
}
}
}
#[cfg(test)]
impl<CS: CipherSuite> AssertZeroized for ServerLogin<CS>
where
PublicKey<KeGroup<CS>>: AssertZeroized,
<CS::KeyExchange as KeyExchange>::KE2State<CS>: AssertZeroized,
{
fn assert_zeroized(&self) {
let Self { ke2_state } = self;
ke2_state.assert_zeroized();
}
}