serde_encrypt/key/
key_pair.rs1use serde_encrypt_core::key::key_pair::{
4 private_key::{ReceiverPrivateKey, SenderPrivateKey},
5 public_key::{ReceiverPublicKey, SenderPublicKey},
6 ReceiverKeyPairCore, SenderKeyPairCore,
7};
8
9use crate::random::RngSingletonImpl;
10
11#[derive(Clone, Debug)]
13pub struct SenderKeyPair {
14 sender_private_key: SenderPrivateKey,
15 sender_public_key: SenderPublicKey,
16}
17
18impl SenderKeyPairCore for SenderKeyPair {
19 type R = RngSingletonImpl;
20
21 fn new(sender_private_key: SenderPrivateKey, sender_public_key: SenderPublicKey) -> Self
22 where
23 Self: Sized,
24 {
25 Self {
26 sender_private_key,
27 sender_public_key,
28 }
29 }
30
31 fn private_key(&self) -> &SenderPrivateKey {
32 &self.sender_private_key
33 }
34
35 fn public_key(&self) -> &SenderPublicKey {
36 &self.sender_public_key
37 }
38}
39
40#[derive(Clone, Debug)]
42pub struct ReceiverKeyPair {
43 receiver_private_key: ReceiverPrivateKey,
44 receiver_public_key: ReceiverPublicKey,
45}
46
47impl ReceiverKeyPairCore for ReceiverKeyPair {
48 type R = RngSingletonImpl;
49
50 fn new(receiver_private_key: ReceiverPrivateKey, receiver_public_key: ReceiverPublicKey) -> Self
51 where
52 Self: Sized,
53 {
54 Self {
55 receiver_private_key,
56 receiver_public_key,
57 }
58 }
59
60 fn private_key(&self) -> &ReceiverPrivateKey {
61 &self.receiver_private_key
62 }
63
64 fn public_key(&self) -> &ReceiverPublicKey {
65 &self.receiver_public_key
66 }
67}