Skip to main content

Crate tsumiki_x509

Crate tsumiki_x509 

Source
Expand description

§tsumiki-x509

X.509 certificate parsing and handling.

This crate implements RFC 5280 with full support for X.509 v3 extensions.

§Features

  • Parse X.509 certificates (v1, v2, v3)
  • Type-safe extension access
  • Certificate chain handling
  • JSON/YAML serialization with serde
  • rustls integration (with rustls feature)

§Example

use std::str::FromStr;
use tsumiki_x509::Certificate;

let pem_data = "-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----";

let cert = Certificate::from_str(pem_data).unwrap();

let tbs = cert.tbs_certificate();
println!("Subject: {}", tbs.subject());
println!("Issuer: {}", tbs.issuer());

§Type-Safe Extension Access

use tsumiki_x509::Certificate;
use tsumiki_x509::extensions::BasicConstraints;
use std::str::FromStr;

let pem_data = "-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----";

let cert = Certificate::from_str(pem_data).unwrap();

// Get extension with type safety
if let Some(bc) = cert.extension::<BasicConstraints>().unwrap() {
    println!("Is CA: {}", bc.ca);
    if let Some(path_len) = bc.path_len_constraint {
        println!("Path length: {}", path_len);
    }
}

Modules§

error
extensions

Structs§

Certificate
X.509 Certificate structure.
CertificateChain
An ordered chain of X.509 certificates.
TBSCertificate
TBS (To Be Signed) Certificate structure.
UniqueIdentifier
Unique identifier for issuer or subject.
Validity
Certificate validity period.

Enums§

Version
X.509 certificate version.