1# Change Log
2
3## 0.3.8 - 2024-07-24
4
5- Make `CoseSign[1]::tbs_[detached_]data` methods `pub`.
6
7## 0.3.7 - 2024-04-05
8
9- Bump MSRV to 1.58.
10- Update dependencies.
11- Fix bounds bug for label sorting.
12
13## 0.3.6 - 2024-01-15
14
15- Helpers for ordering of fields in a `COSE_Key`:
16    - Add `Label::cmp_canonical()` for RFC 7049 canonical ordering.
17    - Add `CborOrdering` enum to specify ordering.
18    - Add `CoseKey::canonicalize()` method to order fields.
19
20## 0.3.5 - 2023-09-29
21
22- Add helper methods to create and verify detached signatures:
23    - Add `CoseSignBuilder` methods `add_detached_signature` and `try_add_detached_signature`.
24    - Add `CoseSign` method `verify_detached_signature`.
25    - Add `CoseSign1Builder` methods `create_detached_signature` and `try_create_detached_signature`.
26    - Add `CoseSign1` method `verify_detached_signature`.
27- Implement CBOR conversion traits for `ciborium::value::Value`.
28- Update `ciborium` dependency.
29
30## 0.3.4 - 2023-01-25
31
32- Add non-default `std` feature that turns on `impl Error for CoseError`.
33- Add `cwt::ClaimsSetBuilder::private_claim` method.
34- Update documentation for existing encryption methods to make it clear that they only support AEAD encryption.
35
36## 0.3.3 - 2022-09-30
37
38- Add `CoseKeyBuilder` methods `kty`, `key_type` and `new_okp_key`.
39
40## 0.3.2 - 2022-04-02
41
42- Add basic [CWT](https://datatracker.ietf.org/doc/html/rfc8392) support in `cwt` module, via the `ClaimsSet` type.
43
44## 0.3.1 - 2022-02-23
45
46- Implement `Display` for `CoseError`.
47- Fix `Cargo.toml` to indicate reliance on `alloc` feature of `ciborium-io`.
48- Make `AsCborValue` trait public.
49
50## 0.3.0 - 2022-01-19
51
52- Change to use `ciborium` as CBOR library. Breaking change with many knock-on effects:
53    - Re-export `ciborium` as `coset::cbor` (rather than `sk-cbor`).
54    - Use `ciborium`'s `Value` type rather than `sk-cbor`'s version.
55    - Change `CoseError` to no longer wrap `sk-cbor` errors.
56    - Drop `derive` of `Eq` for data types (`ciborium` supports float values, which are inherently non-`Eq`)
57    - Add `#[must_use]` attributes to builder methods.
58    - Update MSRV to 1.56.0, as `ciborium` is `edition=2021`
59- Use new `ProtectedHeader` type for protected headers (breaking change).  This variant of `Header` preserves any
60  originally-parsed data, so that calculations (signatures, decryption, etc.) over the data can use the bit-for-bit wire
61  data instead of a reconstituted (and potentially different) version.
62- Add more specific error cases to `CoseError` (breaking change):
63    - Use new `OutOfRangeIntegerValue` error when an integer value is too large for the representation used in this
64      crate.
65    - Use new `DuplicateMapKey` error when a CBOR map contains duplicate keys (and is thus invalid).
66    - Extend `DecodeFailed` error to include the underlying `ciborium::de::Error` value.
67    - Use new `ExtraneousData` error when data remains after reading a CBOR value.
68    - Rename `UnexpectedType` error to `UnexpectedItem` to reflect broader usage than type.
69- Add a crate-specific `Result` type whose `E` field defaults to `CoseError`.
70
71## 0.2.0 - 2021-12-09
72
73- Change to use `sk-cbor` as CBOR library, due to deprecation of `serde-cbor`. Breaking change with many knock-on
74  effects:
75    - Re-export `sk-cbor` as `coset::cbor`.
76    - Use `sk-cbor`'s `Value` type rather than `serde-cbor`'s version.
77    - Change encoding methods to consume `self`.
78    - Change encoding methods to be fallible.
79    - Move to be `no_std` (but still using `alloc`)
80    - Add `CoseError` error type and use throughout.
81    - Use `Vec` of pairs not `BTreeMap`s for CBOR map values.
82    - Use `i64` not `i128` for integer values throughout.
83    - Drop use of `serde`'s `Serialize` and `Deserialize` traits; instead…
84    - Add `CborSerializable` extension trait for conversion to/from bytes.
85    - Drop `from_tagged_reader` / `to_tagged_writer` methods from `TaggedCborSerializable` trait.
86    - Derive `Debug` for builders.
87    - Convert `CoseKeySet` to a newtype, and add standard traits.
88
89## 0.1.2 - 2021-08-24
90
91- Add fallible variants of builder methods that invoke closures (#20):
92    - `CoseRecipientBuilder::try_create_ciphertext()`
93    - `CoseEncryptBuilder::try_create_ciphertext()`
94    - `CoseEncrypt0Builder::try_create_ciphertext()`
95    - `CoseMacBuilder::try_create_tag()`
96    - `CoseMac0Builder::try_create_tag()`
97    - `CoseSignBuilder::try_add_created_signature()`
98    - `CoseSign1Builder::try_create_signature()`
99- Upgrade dependencies.
100
101## 0.1.1 - 2021-06-24
102
103- Make `KeyType` and `KeyOperation` public.
104- Upgrade dependencies.
105
106## 0.1.0 - 2021-05-18
107
108- Initial version, using `serde-cbor` as CBOR library.
109