summaryrefslogtreecommitdiffstats
path: root/rust/vendor/der-parser/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'rust/vendor/der-parser/CHANGELOG.md')
-rw-r--r--rust/vendor/der-parser/CHANGELOG.md388
1 files changed, 388 insertions, 0 deletions
diff --git a/rust/vendor/der-parser/CHANGELOG.md b/rust/vendor/der-parser/CHANGELOG.md
new file mode 100644
index 0000000..9f0ee32
--- /dev/null
+++ b/rust/vendor/der-parser/CHANGELOG.md
@@ -0,0 +1,388 @@
+# Change Log
+
+## [Unreleased][unreleased]
+
+### Changed/Fixed
+
+### Added
+
+### Thanks
+
+## 8.2.0
+
+### Changed/Fixed
+
+- Fix parser name to `parse_der_visiblestring` for `VisibleString` (Closes #64).
+ Keep previous function for compatibility (mark it as deprecated).
+- Fix clippy warnings (rustc 1.67.1)
+- Update test-case from 2.0 to 3.0
+
+## 8.1.0
+
+### Changed/Fixed
+
+- Upgrade `asn1-rs` to 0.5.0 (new features only: only increment minor number)
+
+## 8.0.0
+
+### Changed/Fixed
+
+- Upgrade `asn1-rs` to 0.4.0
+ This causes an increment of the major number, because `asn1-rs` is re-exported
+
+## 7.0.0
+
+This release marks the beginning of the merge with the `asn1-rs` crate. **This will break things.**
+
+However, this is necessary, because the `asn1-rs` crate is much cleaner and supports more types
+and features (like serialization, custom derive, etc.).
+Ultimately, this crate will become a frontend to `asn1-rs`, that will be optional: crate users can
+switch to `asn1-rs` and use it directly.
+
+### Changed/Fixed
+
+MSRV: The minimum supported rust version is now *1.53*.
+
+`BerObjectHeader`:
+
+- `BerSize` has been renamed to `Length`
+- `BerClass` has been renamed to `Class`
+- `BerTag` has been renamed to `Tag`
+- Header fields are now private. Getters/setters have been added, and must be used to access/modify fields
+
+`BerObjectContent`:
+- `Unknown` variant now contains an `Any` object, with both the header and object content
+- `Private` variant has been merged into `Unknown`
+- `BmpString`, `GeneralString`, `GraphicString`, `T61String`, `VideotexString` and `ObjectDescriptor` are now decoded
+- `GeneralizedTime` and `UtcTime` are now decoded
+
+`BerError`:
+
+- Add error types `UnexpectedClass` and `UnexpectedTag`
+- Store expected and found item in error to help debugging
+- Keep `InvalidTag` for tags with invalid form (length/encoding/etc.)
+- Use `displaydoc` for `BerError`
+- Parsing an indefinite length in DER now raises `IndefiniteLengthUnexpected`
+- Error: when a DER constraint fails, store constraint identifier
+
+`DER`:
+- `DerClass` and `DerTag` have been deprecated. Use `Class` and `Tag` instead.
+- `DerObjectHeader` has been deprecated. Use `Header` instead.
+
+`Oid`:
+- The `Oid` object is now the same as `asn1_rs::Oid` (simply reexported)
+- Remove dependency on crate `der-oid-macro`
+
+Misc:
+- `ber_read_element_content_as` now requires a non-zero `depth`, or it
+ will raise a `BerMaxDepth` error (previously, 0 allowed one level of parsing)
+- crate `rusticata-macros` is now re-exported (#55)
+
+### Thanks
+
+- @lilyball
+- @erikmarkmartin
+
+## 6.0.0
+
+This release has several major changes:
+- upgrade to nom 7
+- add support for `no_std`
+- remove all macros
+- update MSRV to 1.48
+
+### Changed/Fixed
+
+- Do not attempt to parse PRIVATE object contents (closes #48)
+- BER: raise error if using Indefinite length and not constructed
+- Fix `oid!` macro to be independant of `der_parser` crate name and path (#46)
+- Simplify `der-oid-macro`, do not depend on `nom`
+- Fix `INTEGER` signed/unsigned parsing (#49)
+- Change `as_bigint()` and `as_uint()` to return a `Result`
+- Remove deprecated functions
+
+### Added
+
+- Added support for `no_std` (#50)
+- Make `BerError` Copy + Clone (#51)
+- Add feature 'bitvec' for `.as_bitslice()` methods
+
+### Removed
+
+- Remove all macros
+
+### Thanks
+
+- @yoguorui for `no_std` support
+- @SergioBenitez for `BerError` traits
+- @lilyball for `INTEGER` parsing
+
+## 5.1.0
+
+### Changed/Fixed
+
+- Remove dependency on proc-macro-hack (attempt to fix #36)
+- Update pretty_assertions requirement from 0.6 to 0.7
+- Update num-bigint to 0.4 (Closes #42)
+
+## 5.0.1
+
+### Changed/Fixed
+
+- Fix typos in the `parse_[ber|der]_[u32|u64]` doc comments
+- Add documentation for BerObjectContent variants (#41)
+- Fixes for clippy
+
+### Added
+
+## 5.0.0
+
+See changelog entries for 5.0.0-beta1 and -beta2 for changes since 4.1
+
+### Changed/Fixed
+
+The following changes applies since 5.0.0-beta1, and do not affect 4.x
+
+- Fix potential integer underflow in `bytes_to_u64`
+- Fix potential stack recursion overflow for indefinite length objects
+ (Add maximum depth).
+- Fix potential UB in bitstring_to_u64 with large input and many ignored bits
+- Fix constructed objects parsing with indefinite length (do not include EOC)
+- Constructed objects: use `InvalidTag` everywhere if tag is not expected
+- Integer parsing functions now all return `IntegerTooLarge` instead of `MapRes`
+- Ensure Indefinite length form is only used in BER constructed objects
+
+### Added
+
+- Add new error `StringInvalidCharset` and update string parsing methods
+- Add methods `parse_ber_slice` and `parse_der_slice` to parse an expected Tag and get content as slice
+
+## 5.0.0-beta2
+
+### Changed/Fixed
+
+- Consistency: reorder arguments or function callbacks, always set input slice as first argument
+ (`parse_ber_sequence_defined_g`, `parse_ber_container`, `parse_ber_tagged_explicit_g`, ...)
+- Make functions `parse_ber_sequence_of_v` and `parse_ber_set_of_v` accept generic error types
+
+### Added
+
+- Add `parse_ber_content2`, owned version of `parse_ber_content`, which can directly be combined
+ with `parse_ber_tagged_implicit_g`
+- Add methods to parse DER tagged values and containers (with constraints)
+
+## 5.0.0-beta1
+
+### Changed/Fixed
+
+- Upgrade to nom 6
+- Switch all parsers to function-based parsers
+- Change representation of size (new type `BerSize`) to support BER indefinite lengths
+- Rewrite BER/DER parsing macros to use functional parsing combinators
+- The constructed bit is now tested for explicit tagged structures
+- Some checks (for ex. tags in constructed objects) now return specific errors (`InvalidTag`)
+ instead of generic errors (`Verify`)
+- Refactor BerObject for parsing of tagged and optional values
+- Add method `as_bitslice()` to BerObject
+- Remove Copy trait from BerObjectHeader, copy is non-trivial and should be explicit
+- Fix the bug that caused OIDs longer than two subidentifiers which started by subidentifiers "0.0" ("itu-t recommenation") not to be decoded correctly
+- Implement the `as_u64` and `as_u32` methods for BerObjects with contents of type `BerObjectContent::BitString`.
+- Implement the `VideotexString`, `ObjectDescriptor` `GraphicString`, and `VisibleString` string types. (Non-breaking changes)
+- Correctly decode `BMPString` as UTF-16 instead of UTF-8 when printing. (Non-breaking change)
+- Turn `UTCTime` and `GeneralizedTime` into a `&str` instead of `&[u8]`, as they inherit from `VisibleString` which is a subset of ASCII. (Breaking change)
+
+### Added
+
+- Add combinator `parse_ber_optional`
+
+### Thanks
+
+By alphabetic order of handle:
+
+- `@cccs-sadugas`
+- `@nickelc`
+- `@p1-mmr`
+
+## 4.1.0
+
+### Added/Changed
+
+- Re-export num-bigint so crate users do not have to import it
+- Add function versions to parse BER sequences/sets (#20)
+- Add function versions to parse BER tagged objects (#20)
+- Add generic error type to structured parsing functions
+- Add function to parse a generic BER container object
+- Document that trailing bytes from SEQUENCE/SET are ignored
+- Deprecate functions `parse_{ber,der}_explicit` (use `_optional`)
+
+## 4.0.2
+
+### Changed/Fixed
+
+- Upgrade dependencies on num-bigint and der-oid-macro
+
+## 4.0.1
+
+### Changed/Fixed
+
+- Add workaround to fix parsing of empty sequence or set
+
+## 4.0.0
+
+**Attention** This is a major release, with several API-breaking changes. See `UPGRADING.md` for instructions.
+
+### Thanks
+
+- Jannik Schürg (oid, string verifications)
+
+### Added
+
+- Add functions `parse_ber_recursive` and `parse_der_recursive`, allowing to specify maximum
+ recursion depth when parsing
+- The string types `IA5String`, `NumericString`, `PrintableString` and `UTF8String`
+ do now only parse if the characters are valid.
+- `as_str()` was added to `BerObjectContent` to obtain a `&str` for the types above.
+ `as_slice()` works as before.
+- Implement `Error` trait for `BerError`
+- Add method to extract raw tag from header
+ - `BerObjectHeader` now has a lifetime and a `raw_tag` field
+ - `BerObject` now has a `raw_tag` field
+ - Implement `PartialEq` manually for `BerObject`: `raw_tag` is compared only if both fields provide it
+- Add type `BerClass`
+- Start adding serialization support (experimental) using the `serialize` feature
+
+### Changed/Fixed
+
+- Make header part of `BerObject`, remove duplicate fields
+- Maximum recursion logic has changed. Instead of providing the current depth, the argument is
+ now the maximum possible depth.
+- Change the api around `Oid` to achieve zero-copy. The following changed:
+ - The `Oid` struct now has a lifetime and uses `Cow` internally.
+ - The procedural macro `oid!` was added.
+ - `Oid::from` returns a `Result` now.
+ - The `Oid` struct now encodes whether the oid is relative or not.
+ - The `Debug` implementation now shows whether the oid is relative
+ and uses the bigint feature if available.
+ - The `Oid::iter` method now returns an `Option`. `Oid::iter_bigint` was
+ added.
+ - `Hash` is now derived for `Oid`.
+- Minimum rust version is now 1.34
+
+## 3.0.3
+
+- Make the pretty-printer function public
+- Fix DER datestring sanity check
+- CI
+ - add rusfmt check
+ - add cargo clippy
+
+## 3.0.2
+
+- Add `parse_ber_u32` and `parse_ber_u64` functions
+- Fix typo in description
+
+## 3.0.1
+
+- Add crate `BerResult` and `DerResult` types
+- Use crate result types, remove uneeded imports
+ - Crates using `der-parser` do not need to import `nom` or `rusticata-macros` anymore
+ - Result types are aliases, so API is unchanged
+
+## 3.0.0
+
+- Upgrade to nom 5 (breaks API)
+- New error types, now all functions use `BerError`
+
+## 2.1.0
+
+- Handle BER/DER tags that are longer than one byte.
+- Set edition to 2018
+
+## 2.0.2
+
+- Revert 2.0.1 release, breaks API
+
+## 2.0.1
+
+- Handle BER/DER tags that are longer than one byte.
+
+## 2.0.0
+
+- Refactor code, split BER and DER, check DER constraints
+- Add recursion limit for sequences and sets
+- Rustfmt
+- Documentation
+- Remove unused function `ber_read_element_content`
+
+## 1.1.1
+
+- Fix OID parsing, and add support for relative OIDs
+- Add FromStr trait for Oid
+
+## 1.1.0
+
+- Use num-bigint over num and upgrade to 0.2
+
+## 1.0.0
+
+- Upgrade to nom 4
+
+## 0.5.5
+
+- Add functions `parse_der_u32` and `parse_der_u64` to quickly parse integers
+- Remove `Oid::from_vec`, `Oid::from` does the same
+- Enforce constraints on DER booleans
+
+## 0.5.4
+
+- Add `BitStringObject` to wrap BitString objects
+- Mark constructed BitStrings as unsupported
+- Do not try to parse application-specific data in `parse_der`
+
+## 0.5.3
+
+- Add function `DerObject::as_u64`
+- Add function `DerObject::as_oid_val`
+- Add `parse_der_struct!` variant to check tag
+
+## 0.5.2
+
+- Add functions to test object class and primitive/constructed state
+- Add macro `parse_der_application!`
+- Add macro `parse_der_tagged!` to parse `[x] EXPLICIT` or `[x] IMPLICIT` tagged values
+
+## 0.5.1
+
+- Add type GeneralString
+- Add macro `parse_der_struct!`
+
+## 0.5.0
+
+- Allow use of crate without extra use statements
+- Use constants for u32 errors instead of magical numbers
+- Rename `tag_of_der_content()` to `DerObjectContent::tag`
+- Rename DerElementxxx structs to have a consistent naming scheme
+- Add documentation for parsing DER sequences and sets, and fix wrong return type for sets
+- Fix a lot of clippy warnings
+- QA: add pragma rules (disable unsafe code, unstable features etc.)
+- More documentation
+- Switch license to MIT + APLv2
+
+## 0.4.4
+
+- Add macro parse_der_defined_m, to parse a defined sequence or set
+ This macro differs from `parse_der_defined` because it allows using macros
+- Rename `DerObject::new_int` to `DerObject::from_int_slice`
+- Rename `Oid::to_hex` to `Oid::to_string`
+- Document more functions
+
+## 0.4.1
+
+- Add new feature 'bigint' to export DER integers
+- OID is now a specific type
+- Add new types T61String and BmpString
+- Fix wrong expected tag in parse_der_set_of
+
+## 0.4.0
+
+- Der Integers are now represented as slices (byte arrays) since they can be larger than u64.