Replace Vec in Key with GenericArray
This commit is contained in:
@@ -209,29 +209,29 @@ impl<D: Hash, G: Group> KeyExchange<D, G> for TripleDH {
|
||||
|
||||
/// The client state produced after the first key exchange message
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Deserialize, serde::Serialize))]
|
||||
pub struct Ke1State<G> {
|
||||
pub struct Ke1State<G: Group> {
|
||||
client_e_sk: PrivateKey<G>,
|
||||
client_nonce: GenericArray<u8, NonceLen>,
|
||||
}
|
||||
|
||||
impl_clone_for!(
|
||||
struct Ke1State<G>,
|
||||
struct Ke1State<G: Group>,
|
||||
[client_e_sk, client_nonce],
|
||||
);
|
||||
impl_debug_eq_hash_for!(
|
||||
struct Ke1State<G>,
|
||||
struct Ke1State<G: Group>,
|
||||
[client_e_sk, client_nonce],
|
||||
);
|
||||
|
||||
// This can't be derived because of the use of a generic parameter
|
||||
impl<G> Zeroize for Ke1State<G> {
|
||||
impl<G: Group> Zeroize for Ke1State<G> {
|
||||
fn zeroize(&mut self) {
|
||||
self.client_e_sk.zeroize();
|
||||
self.client_nonce.zeroize();
|
||||
}
|
||||
}
|
||||
|
||||
impl<G> Drop for Ke1State<G> {
|
||||
impl<G: Group> Drop for Ke1State<G> {
|
||||
fn drop(&mut self) {
|
||||
self.zeroize();
|
||||
}
|
||||
@@ -240,7 +240,7 @@ impl<G> Drop for Ke1State<G> {
|
||||
/// The first key exchange message
|
||||
#[derive(PartialEq, Eq, Debug, Hash, Clone)]
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Deserialize, serde::Serialize))]
|
||||
pub struct Ke1Message<G> {
|
||||
pub struct Ke1Message<G: Group> {
|
||||
pub(crate) client_nonce: GenericArray<u8, NonceLen>,
|
||||
pub(crate) client_e_pk: PublicKey<G>,
|
||||
}
|
||||
@@ -344,7 +344,7 @@ impl<HashLen: ArrayLength<u8>> ToBytesWithPointers for Ke2State<HashLen> {
|
||||
#[derive(Clone, Debug, Eq, Hash, PartialEq)]
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Deserialize, serde::Serialize))]
|
||||
#[cfg_attr(feature = "serialize", serde(bound = ""))]
|
||||
pub struct Ke2Message<G, HashLen: ArrayLength<u8>> {
|
||||
pub struct Ke2Message<G: Group, HashLen: ArrayLength<u8>> {
|
||||
server_nonce: GenericArray<u8, NonceLen>,
|
||||
server_e_pk: PublicKey<G>,
|
||||
mac: GenericArray<u8, HashLen>,
|
||||
@@ -408,7 +408,7 @@ impl<G: Group, HashLen: ArrayLength<u8>> FromBytes for Ke2Message<G, HashLen> {
|
||||
|
||||
#[allow(clippy::upper_case_acronyms)]
|
||||
// The triple of public and private components used in the 3DH computation
|
||||
struct TripleDHComponents<G> {
|
||||
struct TripleDHComponents<G: Group> {
|
||||
pk1: PublicKey<G>,
|
||||
sk1: PrivateKey<G>,
|
||||
pk2: PublicKey<G>,
|
||||
|
||||
Reference in New Issue
Block a user