#[non_exhaustive]pub struct CertificateParams {Show 13 fields
pub not_before: OffsetDateTime,
pub not_after: OffsetDateTime,
pub serial_number: Option<SerialNumber>,
pub subject_alt_names: Vec<SanType>,
pub distinguished_name: DistinguishedName,
pub is_ca: IsCa,
pub key_usages: Vec<KeyUsagePurpose>,
pub extended_key_usages: Vec<ExtendedKeyUsagePurpose>,
pub name_constraints: Option<NameConstraints>,
pub crl_distribution_points: Vec<CrlDistributionPoint>,
pub custom_extensions: Vec<CustomExtension>,
pub use_authority_key_identifier_extension: bool,
pub key_identifier_method: KeyIdMethod,
}
Expand description
Parameters used for certificate generation
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.not_before: OffsetDateTime
§not_after: OffsetDateTime
§serial_number: Option<SerialNumber>
§subject_alt_names: Vec<SanType>
§distinguished_name: DistinguishedName
§is_ca: IsCa
§key_usages: Vec<KeyUsagePurpose>
§extended_key_usages: Vec<ExtendedKeyUsagePurpose>
§name_constraints: Option<NameConstraints>
§crl_distribution_points: Vec<CrlDistributionPoint>
An optional list of certificate revocation list (CRL) distribution points as described in RFC 5280 Section 4.2.1.131. Each distribution point contains one or more URIs where an up-to-date CRL with scope including this certificate can be retrieved.
custom_extensions: Vec<CustomExtension>
If true
, the ‘Authority Key Identifier’ extension will be added to the generated cert
key_identifier_method: KeyIdMethod
Method to generate key identifiers from public keys
Defaults to a truncated SHA-256 digest. See KeyIdMethod
for more information.
Implementations§
Source§impl CertificateParams
impl CertificateParams
Sourcepub fn new(subject_alt_names: impl Into<Vec<String>>) -> Result<Self, Error>
pub fn new(subject_alt_names: impl Into<Vec<String>>) -> Result<Self, Error>
Generate certificate parameters with reasonable defaults
Sourcepub fn signed_by(
self,
public_key: &impl PublicKeyData,
issuer: &Certificate,
issuer_key: &KeyPair,
) -> Result<Certificate, Error>
pub fn signed_by( self, public_key: &impl PublicKeyData, issuer: &Certificate, issuer_key: &KeyPair, ) -> Result<Certificate, Error>
Generate a new certificate from the given parameters, signed by the provided issuer.
The returned certificate will have its issuer field set to the subject of the
provided issuer
, and the authority key identifier extension will be populated using
the subject public key of issuer
. It will be signed by issuer_key
.
Note that no validation of the issuer
certificate is performed. Rcgen will not require
the certificate to be a CA certificate, or have key usage extensions that allow signing.
The returned Certificate
may be serialized using Certificate::der
and
Certificate::pem
.
Sourcepub fn self_signed(self, key_pair: &KeyPair) -> Result<Certificate, Error>
pub fn self_signed(self, key_pair: &KeyPair) -> Result<Certificate, Error>
Generates a new self-signed certificate from the given parameters.
The returned Certificate
may be serialized using Certificate::der
and
Certificate::pem
.
Sourcepub fn serialize_request(
&self,
subject_key: &KeyPair,
) -> Result<CertificateSigningRequest, Error>
pub fn serialize_request( &self, subject_key: &KeyPair, ) -> Result<CertificateSigningRequest, Error>
Generate and serialize a certificate signing request (CSR).
The constructed CSR will contain attributes based on the certificate parameters,
and include the subject public key information from subject_key
. Additionally,
the CSR will be signed using the subject key.
Note that subsequent invocations of serialize_request()
will not produce the exact
same output.
Sourcepub fn serialize_request_with_attributes(
&self,
subject_key: &KeyPair,
attrs: Vec<Attribute>,
) -> Result<CertificateSigningRequest, Error>
pub fn serialize_request_with_attributes( &self, subject_key: &KeyPair, attrs: Vec<Attribute>, ) -> Result<CertificateSigningRequest, Error>
Generate and serialize a certificate signing request (CSR) with custom PKCS #10 attributes. as defined in RFC 2986.
The constructed CSR will contain attributes based on the certificate parameters,
and include the subject public key information from subject_key
. Additionally,
the CSR will be self-signed using the subject key.
Note that subsequent invocations of serialize_request_with_attributes()
will not produce the exact
same output.
Sourcepub fn insert_extended_key_usage(&mut self, eku: ExtendedKeyUsagePurpose)
pub fn insert_extended_key_usage(&mut self, eku: ExtendedKeyUsagePurpose)
Insert an extended key usage (EKU) into the parameters if it does not already exist
Trait Implementations§
Source§impl Clone for CertificateParams
impl Clone for CertificateParams
Source§fn clone(&self) -> CertificateParams
fn clone(&self) -> CertificateParams
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more