core_crypto_ffi/e2ei/
acme_directory.rs

1#[cfg(target_family = "wasm")]
2use wasm_bindgen::prelude::*;
3
4/// Holds URLs of all the standard ACME endpoint supported on an ACME server.
5///
6/// - See https://www.rfc-editor.org/rfc/rfc8555.html#section-7.1.1
7/// - See [core_crypto::e2e_identity::types::E2eiAcmeDirectory]
8#[derive(Debug)]
9#[cfg_attr(
10    target_family = "wasm",
11    wasm_bindgen(getter_with_clone),
12    derive(serde::Serialize, serde::Deserialize)
13)]
14#[cfg_attr(not(target_family = "wasm"), derive(uniffi::Record))]
15pub struct AcmeDirectory {
16    /// URL for fetching a new nonce. Use this only for creating a new account.
17    #[cfg_attr(target_family = "wasm", wasm_bindgen(readonly, js_name = newNonce))]
18    pub new_nonce: String,
19    /// URL for creating a new account.
20    #[cfg_attr(target_family = "wasm", wasm_bindgen(readonly, js_name = newAccount))]
21    pub new_account: String,
22    /// URL for creating a new order.
23    #[cfg_attr(target_family = "wasm", wasm_bindgen(readonly, js_name = newOrder))]
24    pub new_order: String,
25    /// Revocation URL
26    #[cfg_attr(target_family = "wasm", wasm_bindgen(readonly, js_name = revokeCert))]
27    pub revoke_cert: String,
28}
29
30impl From<core_crypto::prelude::E2eiAcmeDirectory> for AcmeDirectory {
31    fn from(directory: core_crypto::prelude::E2eiAcmeDirectory) -> Self {
32        Self {
33            new_nonce: directory.new_nonce,
34            new_account: directory.new_account,
35            new_order: directory.new_order,
36            revoke_cert: directory.revoke_cert,
37        }
38    }
39}
40
41impl From<AcmeDirectory> for core_crypto::prelude::E2eiAcmeDirectory {
42    fn from(directory: AcmeDirectory) -> Self {
43        Self {
44            new_nonce: directory.new_nonce,
45            new_account: directory.new_account,
46            new_order: directory.new_order,
47            revoke_cert: directory.revoke_cert,
48        }
49    }
50}