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
rustlsfeature)
§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§
Structs§
- Certificate
- X.509 Certificate structure.
- Certificate
Chain - An ordered chain of X.509 certificates.
- TBSCertificate
- TBS (To Be Signed) Certificate structure.
- Unique
Identifier - Unique identifier for issuer or subject.
- Validity
- Certificate validity period.
Enums§
- Version
- X.509 certificate version.