41 releases
Uses new Rust 2024
| new 0.8.0-rc.10 | Nov 8, 2025 |
|---|---|
| 0.8.0-rc.8 | Aug 5, 2025 |
| 0.8.0-rc.7 | Jul 10, 2025 |
| 0.8.0-rc.1 | Aug 18, 2024 |
| 0.1.0 | Dec 22, 2020 |
#144 in Cryptography
11,396,890 downloads per month
Used in 8,129 crates
(137 directly)
515KB
11K
SLoC
RustCrypto: ASN.1 DER
Pure Rust embedded-friendly implementation of the Distinguished Encoding Rules (DER) for Abstract Syntax Notation One (ASN.1) as described in ITU X.690.
About
This crate provides a no_std-friendly implementation of a subset of ASN.1 DER
necessary for decoding/encoding the following cryptography-related formats
implemented as crates maintained by the RustCrypto project:
cms: Cryptographic Message Syntaxpkcs1: RSA Cryptography Specificationspkcs5: Password-Based Cryptography Specificationpkcs8: Private-Key Information Syntax Specificationpkcs12: Personal Information Exchange Syntaxsec1: Elliptic Curve Cryptographyspki: X.509 Subject Public Key Infox509-cert: Public Key Infrastructure Certificatex509-ocsp: Online Certificate Status Protocol
The core implementation avoids any heap usage (with convenience methods
that allocate gated under the off-by-default alloc feature).
The DER decoder in this crate performs checks to ensure that the input document is in canonical form, and will return errors if non-canonical productions are encountered. There is currently no way to disable these checks.
Features
- Rich support for ASN.1 types used by PKCS/PKIX documents
- Performs DER canonicalization checks at decoding time
no_stdfriendly: supports "heapless" usage- Optionally supports
allocandstdif desired - No hard dependencies! Self-contained implementation with optional
integrations with the following crates, all of which are
no_stdfriendly:const-oid: const-friendly OID implementationpem-rfc7468: PKCS/PKIX-flavored PEM library with constant-time decoder/encoderstimecrate: date/time library
Minimum Supported Rust Version (MSRV) Policy
MSRV increases are not considered breaking changes and can happen in patch releases.
The crate MSRV accounts for all supported targets and crate feature combinations, excluding explicitly unstable features.
License
Licensed under either of:
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0–550KB
~10K SLoC