Implement Clone for every message type
This commit is contained in:
committed by
Kevin Lewi
parent
30e27a11e2
commit
2c7fe4e382
@@ -28,6 +28,13 @@ pub struct RegistrationRequest<CS: CipherSuite> {
|
||||
pub(crate) alpha: CS::Group,
|
||||
}
|
||||
|
||||
// Cannot be derived because it would require for CS to be Clone.
|
||||
impl<CS: CipherSuite> Clone for RegistrationRequest<CS> {
|
||||
fn clone(&self) -> Self {
|
||||
Self { alpha: self.alpha }
|
||||
}
|
||||
}
|
||||
|
||||
impl<CS: CipherSuite> RegistrationRequest<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
@@ -57,6 +64,16 @@ pub struct RegistrationResponse<CS: CipherSuite> {
|
||||
pub(crate) server_s_pk: Vec<u8>,
|
||||
}
|
||||
|
||||
// Cannot be derived because it would require for CS to be Clone.
|
||||
impl<CS: CipherSuite> Clone for RegistrationResponse<CS> {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
beta: self.beta,
|
||||
server_s_pk: self.server_s_pk.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<CS: CipherSuite> RegistrationResponse<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
@@ -94,6 +111,16 @@ pub struct RegistrationUpload<CS: CipherSuite> {
|
||||
pub(crate) client_s_pk: Key,
|
||||
}
|
||||
|
||||
// Cannot be derived because it would require for CS to be Clone.
|
||||
impl<CS: CipherSuite> Clone for RegistrationUpload<CS> {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
envelope: self.envelope.clone(),
|
||||
client_s_pk: self.client_s_pk.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<CS: CipherSuite> RegistrationUpload<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
@@ -134,6 +161,16 @@ pub struct CredentialRequest<CS: CipherSuite> {
|
||||
pub(crate) ke1_message: <CS::KeyExchange as KeyExchange<CS::Hash, CS::Group>>::KE1Message,
|
||||
}
|
||||
|
||||
// Cannot be derived because it would require for CS to be Clone.
|
||||
impl<CS: CipherSuite> Clone for CredentialRequest<CS> {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
alpha: self.alpha,
|
||||
ke1_message: self.ke1_message.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<CS: CipherSuite> CredentialRequest<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
@@ -173,6 +210,18 @@ pub struct CredentialResponse<CS: CipherSuite> {
|
||||
pub(crate) ke2_message: <CS::KeyExchange as KeyExchange<CS::Hash, CS::Group>>::KE2Message,
|
||||
}
|
||||
|
||||
// Cannot be derived because it would require for CS to be Clone.
|
||||
impl<CS: CipherSuite> Clone for CredentialResponse<CS> {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
beta: self.beta,
|
||||
server_s_pk: self.server_s_pk.clone(),
|
||||
envelope: self.envelope.clone(),
|
||||
ke2_message: self.ke2_message.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<CS: CipherSuite> CredentialResponse<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
@@ -240,6 +289,15 @@ pub struct CredentialFinalization<CS: CipherSuite> {
|
||||
pub(crate) ke3_message: <CS::KeyExchange as KeyExchange<CS::Hash, CS::Group>>::KE3Message,
|
||||
}
|
||||
|
||||
// Cannot be derived because it would require for CS to be Clone.
|
||||
impl<CS: CipherSuite> Clone for CredentialFinalization<CS> {
|
||||
fn clone(&self) -> Self {
|
||||
Self {
|
||||
ke3_message: self.ke3_message.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<CS: CipherSuite> CredentialFinalization<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
|
||||
Reference in New Issue
Block a user