pub struct X509Builder { /* private fields */ }Expand description
Builder for a new X.509 certificate.
ⓘ
let mut name = X509NameOwned::new()?;
name.add_entry_by_txt(c"CN", b"example.com")?;
let cert = X509Builder::new()?
.set_version(2)? // X.509v3
.set_serial_number(1)?
.set_not_before_offset(0)? // valid from now
.set_not_after_offset(365 * 86400)? // valid for 1 year
.set_subject_name(&name)?
.set_issuer_name(&name)? // self-signed
.set_public_key(&pub_key)?
.sign(&priv_key, None)? // None → no digest (Ed25519)
.build();Implementations§
Source§impl X509Builder
impl X509Builder
Sourcepub fn new() -> Result<Self, ErrorStack>
pub fn new() -> Result<Self, ErrorStack>
Allocate a new, empty X509 structure.
§Errors
Sourcepub fn set_version(self, version: i64) -> Result<Self, ErrorStack>
pub fn set_version(self, version: i64) -> Result<Self, ErrorStack>
Set the X.509 version (0 = v1, 1 = v2, 2 = v3).
§Errors
Sourcepub fn set_serial_number(self, n: i64) -> Result<Self, ErrorStack>
pub fn set_serial_number(self, n: i64) -> Result<Self, ErrorStack>
Set the serial number.
§Errors
Sourcepub fn set_not_before_offset(self, offset_secs: i64) -> Result<Self, ErrorStack>
pub fn set_not_before_offset(self, offset_secs: i64) -> Result<Self, ErrorStack>
Set notBefore to now + offset_secs.
§Errors
Sourcepub fn set_not_after_offset(self, offset_secs: i64) -> Result<Self, ErrorStack>
pub fn set_not_after_offset(self, offset_secs: i64) -> Result<Self, ErrorStack>
Set notAfter to now + offset_secs.
§Errors
Sourcepub fn set_subject_name(self, name: &X509NameOwned) -> Result<Self, ErrorStack>
pub fn set_subject_name(self, name: &X509NameOwned) -> Result<Self, ErrorStack>
Set the subject distinguished name.
§Errors
Sourcepub fn set_issuer_name(self, name: &X509NameOwned) -> Result<Self, ErrorStack>
pub fn set_issuer_name(self, name: &X509NameOwned) -> Result<Self, ErrorStack>
Set the issuer distinguished name.
§Errors
Sourcepub fn set_public_key<T: HasPublic>(
self,
key: &Pkey<T>,
) -> Result<Self, ErrorStack>
pub fn set_public_key<T: HasPublic>( self, key: &Pkey<T>, ) -> Result<Self, ErrorStack>
Set the public key.
§Errors
Trait Implementations§
Auto Trait Implementations§
impl Freeze for X509Builder
impl RefUnwindSafe for X509Builder
impl !Send for X509Builder
impl !Sync for X509Builder
impl Unpin for X509Builder
impl UnwindSafe for X509Builder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more