All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- make sure der is comptatible with potential language breaking changed (backport #1374)
TryFrom<String>
impl for strings based onStrOwned
(#1064)
- Deprecate
SetOf(Vec)::add
(#1067)
- adds support for
DateTime::INFINITY
(#1026)
- Bump
hex-literal
dependency to v0.4.1 ([#999]) - Bump
der_derive
dependency to v0.7.1 (#1016)
UtcTime::MAX_YEAR
associated constant (#989)
- Expose `NestedReader (#925)
From<ObjectIdentifier>
impl forAny
(#965)Any::null
helper (#969)Any::encode_from
(#976)
- Make
zeroize
'salloc
feature conditional (#920)
OwnedtoRef
/RefToOwned
traits; MSRV 1.65 (#797)OctetStringRef::decode_into
(#817)Int
andIntRef
types (#823)IndefiniteLength
type (#830)Any::value
accessor (#833)- Buffered PEM reader (#839)
OctetString::into_bytes
(#845)- Blanket impls on
Box<T>
forDecodeValue
,EncodeValue
, andSequence
(#860)
- Rename
UIntRef
=>UintRef
(#786) - Replace use of
dyn Writer
withimpl Writer
(#828) - Rename
AnyRef::decode_into
->::decode_as
(#829) - Bump
pem-rfc7468
dependency to v0.7 (#894) - Rename
Encode::to_vec
=>::to_der
(#898)
- Rudimentary implementation of
TeletexString
andVideotexString
(#691) - Impl
ValueOrd
forFlagSet<T>
andUIntRef
(#723)
- Eliminate some boilerplate code by using
Deref
(#697)
- Impl
ValueOrd
forSetOf
andSetOfVec
(#362) SequenceRef
type (#374)- Support for
SetOf
sorting on heaplessno_std
targets (#401) - Support for mapping
BitString
to/from aFlagSet
(#412) DecodeOwned
marker trait (#529)- Support for the ASN.1
REAL
type (#346) DecodePem
andEncodePem
traits (#571)Document
andSecretDocument
types (#571)EncodeRef
/EncodeValueRef
wrapper types (#604)Writer
trait (#605)Reader
trait (#606)- Streaming on-the-fly
PemReader
andPemWriter
(#618, #636) - Owned
BitString
(#636) - Owned
Any
andOctetString
types (#640)
- Pass
Header
toDecodeValue
(#392) - Bump
const-oid
dependency to v0.9 (#507) - Renamed
Decodable
/Encodable
=>Decode
/Encode
(#523) - Enable arithmetic, casting, and panic
clippy
lints (#556, #579) - Use
&mut dyn Writer
as output forEncode::encode
andEncodeValue::encode_value
(#611) - Bump
pem-rfc7468
dependency to v0.6 (#620) - Use
Reader<'a>
as input forDecode::decode
andDecodeValue::decode_value
(#633) - Renamed
Any
=>AnyRef
(#637) - Renamed
BitString
=>BitStringRef
(#637) - Renamed
Ia5String
=>Ia5StringRef
(#637) - Renamed
OctetString
=>OctetStringRef
(#637) - Renamed
PrintableString
=>PrintableStringRef
(#637) - Renamed
Utf8String
=>Utf8StringRef
(#637) - Renamed
UIntBytes
=>UIntRef
(#637) - Renamed
Decoder
=>SliceReader
(#651) - Renamed
Encoder
=>SliceWriter
(#651)
- Handling of oversized unsigned
INTEGER
inputs (#447)
bigint
feature (#344)OrdIsValueOrd
trait (#359)Document
trait (#571)OptionalRef
(#604)- Decode-time SET OF ordering checks (#625)
Any::NULL
constant (#226)
- Support for
IMPLICIT
modeCONTEXT-SPECIFIC
fields (#61) DecodeValue
/EncodeValue
traits (#63)- Expose
DateTime
through public API (#75) SEQUENCE OF
support for[T; N]
(#90)SequenceOf
type (#95)SEQUENCE OF
support forVec
(#96)Document
trait (#117)- Basic integration with
time
crate (#129) Tag::NumericString
(#132)- Support for unused bits to
BitString
(#141) Decoder::{peek_tag, peek_header}
(#142)- Type hint in
encoder
sequence` method (#147) Tag::Enumerated
(#153)ErrorKind::TagNumberInvalid
(#156)Tag::VisibleString
andTag::BmpString
(#160)- Inherent constants for all valid
TagNumber
s (#165) DerOrd
andValueOrd
traits (#190)ContextSpecificRef
type (#199)
- Make
ContextSpecific
generic around an inner type (#60) - Removed
SetOf
trait; renameSetOfArray
=>SetOf
(#97) - Rename
Message
trait toSequence
(#99) - Make
GeneralizedTime
/UtcTime
intoDateTime
newtypes (#102) - Rust 2021 edition upgrade; MSRV 1.56 (#136)
- Replace
ErrorKind::Truncated
withErrorKind::Incomplete
(#143) - Rename
ErrorKind::UnknownTagMode
=>ErrorKind::TagModeUnknown
(#155) - Rename
ErrorKind::UnexpectedTag
=>ErrorKind::TagUnexpected
(#155) - Rename
ErrorKind::UnknownTag
=>ErrorKind::TagUnknown
(#155) - Consolidate
ErrorKind::{Incomplete, Underlength}
(#157) - Rename
Tagged
=>FixedTag
; add newTagged
trait (#189) - Use
DerOrd
forSetOf*
types (#200) - Switch
impl From<BitString> for &[u8]
toTryFrom
(#203) - Bump
crypto-bigint
dependency to v0.3 (#215) - Bump
const-oid
dependency to v0.7 (#216) - Bump
pem-rfc7468
dependency to v0.3 (#217) - Bump
der_derive
dependency to v0.5 (#221)
Sequence
struct (#98)Tagged
bound onContextSpecific::decode_implicit
(#161)ErrorKind::DuplicateField
(#162)
- Backport #147 type hint fix for WASM platforms to 0.4.x
- Accidentally checked-in
target/
directory (#66)
Tag::unexpected_error
(#33)
- Moved to
formats
repo (#2)
- ASN.1
SET
type now flagged with the constructed bit
- Encoding
UTCTime
for dates with20xx
years
TagNumber
type- Const generic integer de/encoders with support for all of Rust's integer primitives
crypto-bigint
supportTag
number helpersTag::octet
ErrorKind::Value
helpersSequenceIter
- Bump
const-oid
crate dependency to v0.6 - Make
Tag
structured - Namespace ASN.1 types in
asn1
module - Refactor context-specific field decoding
- MSRV 1.51
- Rename
big-uint
crate feature tobigint
- Rename
BigUInt
toUIntBytes
- Have
Decoder::error()
return anError
- Deprecated methods replaced by associated constants
- Helper methods for context-specific fields
ContextSpecific
field wrapper- Decoder position tracking for errors during
Any<'a>
decoding
From
conversion forBitString
intoAny
- Support
Length
of up to 1 MiB
Length
constants
- Deprecate
const fn
methods replaced byLength
constants
- Non-critical bug allowing
Length
to exceed the max invariant
PartialOrd
+Ord
impls to all ASN.1 types
- Impl
Decode
/Encoded
/Tagged
forString
Length::one
andLength::for_tlv
SET OF
support withSetOf
trait andSetOfRef
- Rename
Decodable::from_bytes
=>Decodable::from_der
- Separate
sequence
andmessage
- Rename
ErrorKind::Oid
=>ErrorKind::MalformedOid
- Auto-derive
From
impls for variants when derivingChoice
- Make
Length
useu32
internally - Make
Sequence
constructor private - Bump
const_oid
to v0.5 - Bump
der_derive
to v0.3
- Deprecated methods
BigUIntSize
- Impl
From<ObjectIdentifier>
forAny
- Bump minimum
const-oid
dependency to v0.4.4
- Support for
IA5String
Choice
trait
- Export
Header
publicly - Make
Encoder::reserve
public
- Make the unit type an encoding of
NULL
ErrorKind::UnknownOid
variant
Any::is_null
method
- Deprecate
Any::null
method
- Additional
rustdoc
documentation
- Support for
UTCTime
andGeneralizedTime
- Support for
PrintableString
andUtf8String
BigUInt
typei16
supportu8
andu16
support- Integer decoder helper methods
- Handle leading byte of
BIT STRING
s
- Initial release