wire_e2e_identity/acquisition/
initial.rs

1use std::sync::Arc;
2
3use super::{X509CredentialAcquisition, X509CredentialConfiguration, states};
4use crate::{
5    error::E2eIdentityResult,
6    pki_env::PkiEnvironment,
7    utils::{generate_key, public_jwk_from_pem_keypair},
8};
9
10impl X509CredentialAcquisition<states::Initialized> {
11    /// Create the acquisition object.
12    ///
13    /// Generates the signing and ACME keypairs, but does not perform
14    /// any network I/O.
15    pub fn try_new(pki_env: Arc<PkiEnvironment>, config: X509CredentialConfiguration) -> E2eIdentityResult<Self> {
16        let sign_kp = generate_key(config.sign_alg)?;
17        let acme_kp = generate_key(config.sign_alg)?;
18        let acme_jwk = public_jwk_from_pem_keypair(config.sign_alg, &acme_kp)?;
19
20        Ok(Self {
21            pki_env,
22            config,
23            sign_kp,
24            acme_kp,
25            acme_jwk,
26            data: states::Initialized,
27        })
28    }
29}