x509-cert
Pure Rust implementation of the X.509 Public Key Infrastructure Certificate format as described in RFC 5280
0.3.0
34M downloads/mo
#1562 most downloaded on crates.io
RustCrypto/formats
What this package is like to depend on
Last release 1 months ago
09 Jul 2026
Release timing varies
gaps range from 2 weeks to 10 months
Most releases are documented
notes for 9 of 11 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
21 releases · first in 2022
4 releases in the last 12 months
see the full history below
Release timeline
21 releases · Mar 2022 to Jul 2026Releases
latest 21-
0.3.009 Jul 2026Release notes
Open source →Added
- Serial number generator (#1270)
DecodeValueforx509_cert::time::Time(#1986)FromStrforx509_cert::time::Time(#1961)- impl
HashforName(#1764) - impl
OrdforCrlReason(#1869) DirectoryString::BmpString(#1794)Crlbuilder (#1759)Time::nowmethod (#1761)Validity::infinityhelper (#1528)Validity::newmethod (#1529)- Re-export
spkitypes without*Ownedsuffixes (#1534) x509_cert::builder::AsyncBuilderusingAsyncSigner(#1280)
Changed
- Decompose
AsExtensionintoCriticality + AsExtension(#2109) - Improve extension API flexibility and ergonomics (#2120)
- Expose
Profilein theCrlBuilder(#1870) - Ensure a serial number can be stored in a database (#1868)
- Move the CSR builder
x509_cert::request(#1581) - Rename
x509_cert::builder::ProfiletoBuilderProfile(#1514, #1517) Nameis now a new type overRdnSequence(#1499)- make
RelativeDistinguishedNamefields private (#1510) - make
RdnSequencefields private (#1508) - make (Tbs)
CertificateInnerfields private (#1505) - rename helpers to
get_extension/filter_extensions(#1497) check_name_encodingnow allow extraneous components (#1447)- Accept RFC-invalid certificates as TrustAnchors (#1403)
- Edition changed to 2024 and MSRV bumped to 1.85 (#1689)
- Bump
randtov0.10(#2212) - Bump
dertov0.8(#2234) - Bump
digesttov0.11(#2237) - Bump
sha2tov0.11(#2273) - Bump
spkitov0.8(#2277) - Bump
signaturetov3(#2326)
Fixed
- Converting from
SystemTimeshould useUtcTimeif date <= 2049 (#1969) - Underflow on empty input in
Certificate::load_pem_chain(#1965) - Domain validated should accept CNs (#1815)
- Serialization of email addresses (#1425)
Removed
stdrequirement forx509_cert::builder(#1709)RelativeDistinguishedName::encode_from_string(#1509)
Co-authored-by: Tony Arcieri [email protected]
Release notes
Open source →Added
- Serial number generator (#1270)
DecodeValueforx509_cert::time::Time(#1986)FromStrforx509_cert::time::Time(#1961)- impl
HashforName(#1764) - impl
OrdforCrlReason(#1869) DirectoryString::BmpString(#1794)Crlbuilder (#1759)Time::nowmethod (#1761)Validity::infinityhelper (#1528)Validity::newmethod (#1529)- Re-export
spkitypes without*Ownedsuffixes (#1534) x509_cert::builder::AsyncBuilderusingAsyncSigner(#1280)
Changed
-
Decompose
AsExtensionintoCriticality + AsExtension(#2109) -
Improve extension API flexibility and ergonomics (#2120)
-
Expose
Profilein theCrlBuilder(#1870) -
Ensure a serial number can be stored in a database (#1868)
-
Move the CSR builder
x509_cert::request(#1581) -
Rename
x509_cert::builder::ProfiletoBuilderProfile(#1514 && #1517) -
Nameis now a new type overRdnSequence(#1499) -
make
RelativeDistinguishedNamefields private (#1510) -
make
RdnSequencefields private (#1508) -
make (Tbs)
CertificateInnerfields private (#1505) -
rename helpers to
get_extension/filter_extensions(#1497) -
check_name_encodingnow allow extraneous components (#1447) -
Accept RFC-invalid certificates as TrustAnchors (#1403)
-
Edition changed to 2024 and MSRV bumped to 1.85 (#1689)
-
Bump
randtov0.10(#2212) -
Bump
dertov0.8(#2234) -
Bump
digesttov0.11(#2237) -
Bump
sha2tov0.11(#2273) -
Bump
spkitov0.8(#2277) -
Bump
signaturetov3(#2326)
Fixed
- Converting from
SystemTimeshould useUtcTimeif date <= 2049 (#1969) - Underflow on empty input in
Certificate::load_pem_chain(#1965) - Domain validated should accept CNs (#1815)
- Serialization of email addresses (#1425)
Removed
-
0.3.0-rc.425 Jan 2026 pre-releaseNothing published for this version
-
0.3.0-rc.304 Jan 2026 pre-releaseNothing published for this version
-
0.3.0-rc.215 Sep 2025 pre-releaseNothing published for this version
-
0.3.0-rc.110 Jul 2025 pre-releaseNothing published for this version
-
0.3.0-rc.009 Jun 2025 pre-releaseNothing published for this version
-
0.3.0-pre.008 Oct 2024 pre-releaseNothing published for this version
-
0.2.524 Dec 2023Release notes
Open source → -
0.2.425 Jul 2023Release notes
Open source →Added
add_attributetoRequestBuilder(#1137)
Changed
- bump
serde_jsonfrom 1.0.97 to 1.0.99 (#1122) - use the shortest name when looking attr OID (#1130)
- bump
serde_jsonfrom 1.0.100 to 1.0.103 (#1158)
Fixed
-
0.2.330 May 2023 -
0.2.219 May 2023Release notes
Open source →Added
- Certificate builder (#764)
- Support for
RandomizedSignerin builder (#1007) - Provide parsing profiles (#987)
- Support for
Time::INFINITY(#1024) - Conversion from
std::net::IpAddr(#1035) CertReqbuilder (#1034)- missing extension implementations (#1050)
- notes about
UTCTimerange being 1970-2049 (#1052) - consume the
SignatureBitStringEncodingtrait (#1048)
Changed
- use
ErrorKind::Valuefor overlength serial (#988) - Bump
hex-literalto v0.4.1 (#999) - Builder updates (#1001)
- better debug info when
zlintisn't installed (#1018) - make SKI optional in leaf certificate (#1028)
- bump rsa from 0.9.0-pre.2 to 0.9.0 (#1033)
- bump rsa from 0.9.1 to 0.9.2 (#1056)
Fixed
-
0.2.2-pre.111 May 2023 pre-releaseNothing published for this version
-
0.2.2-pre03 May 2023 pre-releaseNothing published for this version
-
0.2.126 Mar 2023Release notes
Open source →Added
FromStrimpls forRdnSequence(Name),RelativeDistinguishedName, andAttributeTypeAndValue(#949)
Changed
- Deprecate
encode_from_stringfunctions (#951)
-
0.2.019 Mar 2023Release notes
Open source →Added
- Feature-gated
Arbitraryimpl forCertificate(#761) - Allow request to be serialized to PEM (#819)
Displayimpl forSerialNumber(#820)stdfeature impliesconst-oid/std(#874)
Changed
- Serial numbers are formatted as
PrintableString(#794) SerialNumberis now a specialized object (#795)- MSRV 1.65 (#805)
- Make types owned instead of reference-based (#806, #841)
- Bump
derto v0.7 (#899) - Bump
spkito v0.7 (#900)
Fixed
Removed
allocfeature: now unconditionally required (#841)
- Feature-gated
-
0.2.0-pre.027 Feb 2023 pre-releaseNothing published for this version
-
0.1.111 Dec 2022 -
0.1.023 Jul 2022 -
0.1.0-pre.009 May 2022 pre-releaseNothing published for this version
-
0.0.214 Mar 2022Nothing published for this version
-
0.0.112 Mar 2022Nothing published for this version