ring/rsa/
keypair_components.rs

1use super::PublicKeyComponents;
2
3/// RSA key pair components.
4#[derive(Clone, Copy)]
5pub struct KeyPairComponents<Public, Private = Public> {
6    /// The public key components.
7    pub public_key: PublicKeyComponents<Public>,
8
9    /// The private exponent.
10    pub d: Private,
11
12    /// The first prime factor of `d`.
13    pub p: Private,
14
15    /// The second prime factor of `d`.
16    pub q: Private,
17
18    /// `p`'s public Chinese Remainder Theorem exponent.
19    pub dP: Private,
20
21    /// `q`'s public Chinese Remainder Theorem exponent.
22    pub dQ: Private,
23
24    /// `q**-1 mod p`.
25    pub qInv: Private,
26}
27
28impl<Public, Private> core::fmt::Debug for KeyPairComponents<Public, Private>
29where
30    PublicKeyComponents<Public>: core::fmt::Debug,
31{
32    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> {
33        // Non-public components are intentionally skipped
34        f.debug_struct("KeyPairComponents")
35            .field("public_key", &self.public_key)
36            .finish()
37    }
38}