Skip to content

Latest commit

 

History

History
326 lines (195 loc) · 7.9 KB

Changelog.md

File metadata and controls

326 lines (195 loc) · 7.9 KB

Change Log

Unreleased next version

Breaking changes

New

Bug fixes

Other changes

0.7.5

Released 2025-01-22.

Bug fixes

  • Fix compile error on 32 bit systems. (2c8cd0b)

0.7.4

Released 2024-01-10.

Other changes

0.7.3

Release 2023-09-13.

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

  • Fixes various decoding that lead to a panic on invalid data. Specifically:
    • error out rather than panic when a nested value has a greater length than allowed by the outer value,
    • check that there is enough data available before skipping over a primitive value’s content,
    • check that enough data is available before trying to parse a tag value,
    • check for correct encoding of bit strings: don’t allow the number of unused bits to be greater than 7 and that they are zero for an empty bit string,
    • check for correct encoding of object identifiers: they cannot be empty and the last byte must have bit 7 cleared.

0.7.2

Released 2023-06-01.

New

  • Added an implementation of FromStr for Oid. (#71 by @Outurnate)

0.7.1

Released 2022-12-09.

New

  • Added a number of missing well-defined tags as Tag constants, specifically: CHARACTER STRING, TIME, DATA, TIME_OF_DAY, DATE_TIME, DURATION, OID-IRI, and RELATIVE-OID-IRI. (#67 by @lvkv)

Bug fixes

  • Fix Tag::BMP_STRING to UNIVERSAL 30. (#67 by @lvkv)

0.7.0

Released 2022-07-18.

Breaking Changes

  • Redesign error handling in decode module (#65):
    • three error types, Source::Error, ContentError, and DecodeError, for data fetching errors, syntax errors, and a combination of these, respectively;
    • new trait IntoSource to convert a type into its Source implementation;
    • Source::advance now panics if advancing past the end of seen data.

0.6.1

Released 2012-10-29.

New

  • int::Unsigned can now be created from an arbitrary length big-endian representation of an unsigned integer. (#59)
  • Add OctetString::take_opt_from. (#61)

0.6.0

Released 2021-01-04.

Breaking Changes

  • Minimum supported Rust version is now 1.42. (#56)
  • Upgrade bytes to 1.0. (#57)

0.5.1

Released 2021-01-04.

Bug Fixes

  • Fix oid::Iter to actually iterate over the components. (#50)

0.5.0

Breaking

  • Move extending a 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

0.4.2

Bug Fixes

0.4.1

New

  • Support for multi-byte tags with tag numbers of up to 0x1F_FFFF. (#37, thanks to by @dovreshef)

Bug Fixes

  • Fix encoding of signed builtin integer (i8, i16, …). (#39)

0.4.0

Breaking

  • Dropped 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

  • Safely decode deeply nested BER such as octet strings. Decoding such types now uses an allocated artificial stack and will thus not overflow the regular one. (#30)

Miscellaneous

  • Dropped dependency on derive_more for fewer dependencies and faster compiling. (#32, thanks to @nocduro).

0.3.1

Bug Fixes

  • Fix a lifetime warning from the new borrow checker. (#27)
  • Build on 32 bit systems. (#29)

Other Changes

  • Switch to Rust edition 2018.

0.3.0

Breaking

  • The minimum supported Rust version is now 1.34.0. (#22)

New

  • New methods for checking the class and number on Tag. (#20)
  • Implement TryFrom for builtin integers and Integer and Unsigned. (#23)
  • RestrictedString::into_bytes (#24)

Other Changes

  • The xerr! macro now prints a backtrace with the extra-debug feature enabled instead of panicking. (#21)

0.2.1

New

  • Add BitString::encode_slice and encode_slice_as. (#17)

Bug Fixes

  • Fix incorrect encoding of primitive unsigned integers for values with a number of leading zero bits divisible by eight. (#16)
  • Fix the mkoid tool to correctly encode large subidentifiers. (#18)

0.2.0

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)

  • OctetString::is_empty (#13), OctetString::into_bytes (#14).

0.1.0

Initial public release.