NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1989 most downloaded on crates.io
Handling of data encoded in BER, CER, and DER.
Last release 4 months ago
08 Jun 2026
Ships fairly regularly
a new release about every 8 months
Nearly every release is documented
notes for 20 of 21 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
21 releases · first in 2018
Added RestrictedString::take_opt_from .
New
RestrictedString::take_opt_from. (#90)Improvements
BIT_STRING parsing now checks that the unused bits are zero in CER and DER modes. (#97)Bug fixes
Utf8String potentially accepting invalid UTF-8. (#91 by @sumleo)Unsigned::from_bytes when the input is all zero. (#92 by @sumleo)BitString::bit. (#93 by @sumleo)FromStr impl for NumericString, PrintableString, and Ia5String. (#95 by @sumleo)Released 2026-06-08.
New
RestrictedString::take_opt_from. (#90)Improvements
BIT_STRING parsing now checks that the unused bits are zero in CER and
DER modes. (#97)Bug fixes
Utf8String potentially accepting invalid UTF-8. (#91 by @sumleo)Unsigned::from_bytes when the input is all zero.
(#92 by @sumleo)BitString::bit. (#93 by @sumleo)FromStr impl for NumericString,
PrintableString, and Ia5String. (#95 by @sumleo)One column per quarter.
Addded BitString::octet which lets you fetch the octet with the given index.
New
BitString::octet which lets you fetch the octet with the given index. (#88)Released 2025-09-16.
New
BitString::octet which lets you fetch the octet with the given
index. (#88)Fix compile error on 32 bit systems.
Update smallvec dependency to at least 1.6.1 due to a security advisory RUSTSEC-2021-0003 .
Other changes
Released 2024-01-10.
Other changes
This release fixes a number of decoding issues that can lead to panics on invalid input data. They have been assigned CVE-2023-39914 .
This release fixes a number of decoding issues that can lead to panics on invalid input data. They have been assigned CVE-2023-39914.
Bug fixes
Added an implementation of FromStr for Oid . ( #71 by @Outurnate )
New
FromStr for Oid. (#71 by @Outurnate)Added a number of missing well-defined tags as Tag constants, specifically: CHARACTER STRING , TIME , DATA , TIME_OF_DAY , DATE_TIME , DURATION , OID-
Released 2022-12-09.
New
Tag constants,
specifically: CHARACTER STRING, TIME, DATA, TIME_OF_DAY,
DATE_TIME, DURATION, OID-IRI, and RELATIVE-OID-IRI.
(#67 by @lvkv)Bug fixes
Redesign error handling in decode module ( #65 ):
Breaking Changes
decode module (#65):
Source::Error, ContentError, and DecodeError, for data fetching errors, syntax errors, and a combination of these,IntoSource to convert a type into its Source implementation;Source::advance now panics if advancing past the end of seen data.int::Unsigned can now be created from an arbitrary length big-endian representation of an unsigned integer.
Minimum supported Rust version is now 1.42.
Fix oid::Iter to actually iterate over the components. ([#50])
Move extending a Captured to an explicit CapturedBuilder. This becomes necessary with bytes 0.5. Both these types now reside in the module captured wi
Breaking
Captured to an explicit CapturedBuilder. This
becomes necessary with bytes 0.5. Both these types now reside in the
module captured with Captured re-exported at crate level.
(#46, #47)Dependencies
Fix handling of incomplete multi-byte tags. ([#44], based on [#41] by [@dovreshef])
Bug Fixes
Support for multi-byte tags with tag numbers of up to 0x1F_FFFF. ([#37], thanks to by [@dovreshef])
New
0x1F_FFFF.
(#37, thanks to by @dovreshef)Bug Fixes
i8, i16, …). (#39)Dropped RestrictedString::to_string and implemented it via Display instead. Therefore, you will have to use std::Display to get it back. [(#33)]
Breaking
RestrictedString::to_string and implemented it via Display
instead. Therefore, you will have to use std::fmt::Display to get it
back. (#33)Bug Fixes
Miscellaneous
Fix a lifetime warning from the new borrow checker. [(#27)]
The minimum supported Rust version is now 1.34.0. [(#22)]
Breaking
New
Tag. (#20)TryFrom for builtin integers and Integer and Unsigned.
(#23)RestrictedString::into_bytes (#24)Other Changes
xerr! macro now prints a backtrace with the extra-debug feature
enabled instead of panicking. (#21)Nothing published for this version
Add BitString::encode_slice and encode_slice_as. [(#17)]
Drop use of _failure_ crate. Error types now provide a Display implementation only. [(#15)]
Breaking Changes
Drop use of failure crate. Error types now provide a Display
implementation only. [(#15)]
PrimitiveContent’s methods take self instead of &self. This
avoids the lifetime argument in Primitive, its encoder. (#7)
For all provided type, change encode and encode_as methods to take
self by value and introduce encode_ref and encode_ref_as that take
self by reference. (#12)
RestrictedString::from_str replaced by an implementation of the
FromStr trait. (#13)
New
encode::Values implemented for tuples of up to twelve elements.
(#9)
OctetString::encode_slice and encode_slice_as: allows encoding a bytes
slice as an octet string without going through making an OctetString
first.
encode::Slice wraps a slice of values encoding encode::Values and
provides an encoder for it. (#11)
new functions: encode::slice and encode::iter as shortcuts for the
respective associated functions. (#11)
Initial public release.
Initial public release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →