- Bump MSRV to 1.58.
- Update dependencies.
- Helpers for ordering of fields in a
COSE_Key:- Add
Label::cmp_canonical()for RFC 7049 canonical ordering. - Add
CborOrderingenum to specify ordering. - Add
CoseKey::canonicalize()method to order fields.
- Add
- Add helper methods to create and verify detached signatures:
- Add
CoseSignBuildermethodsadd_detached_signatureandtry_add_detached_signature. - Add
CoseSignmethodverify_detached_signature. - Add
CoseSign1Buildermethodscreate_detached_signatureandtry_create_detached_signature. - Add
CoseSign1methodverify_detached_signature.
- Add
- Implement CBOR conversion traits for
ciborium::value::Value. - Update
ciboriumdependency.
- Add non-default
stdfeature that turns onimpl Error for CoseError. - Add
cwt::ClaimsSetBuilder::private_claimmethod. - Update documentation for existing encryption methods to make it clear that they only support AEAD encryption.
- Add
CoseKeyBuildermethodskty,key_typeandnew_okp_key.
- Add basic CWT support in
cwtmodule, via theClaimsSettype.
- Implement
DisplayforCoseError. - Fix
Cargo.tomlto indicate reliance onallocfeature ofciborium-io. - Make
AsCborValuetrait public.
- Change to use
ciboriumas CBOR library. Breaking change with many knock-on effects:- Re-export
ciboriumascoset::cbor(rather thansk-cbor). - Use
ciborium'sValuetype rather thansk-cbor's version. - Change
CoseErrorto no longer wrapsk-cborerrors. - Drop
deriveofEqfor data types (ciboriumsupports float values, which are inherently non-Eq) - Add
#[must_use]attributes to builder methods. - Update MSRV to 1.56.0, as
ciboriumisedition=2021
- Re-export
- Use new
ProtectedHeadertype for protected headers (breaking change). This variant ofHeaderpreserves any originally-parsed data, so that calculations (signatures, decryption, etc.) over the data can use the bit-for-bit wire data instead of a reconstituted (and potentially different) version. - Add more specific error cases to
CoseError(breaking change):- Use new
OutOfRangeIntegerValueerror when an integer value is too large for the representation used in this crate. - Use new
DuplicateMapKeyerror when a CBOR map contains duplicate keys (and is thus invalid). - Extend
DecodeFailederror to include the underlyingciborium::de::Errorvalue. - Use new
ExtraneousDataerror when data remains after reading a CBOR value. - Rename
UnexpectedTypeerror toUnexpectedItemto reflect broader usage than type.
- Use new
- Add a crate-specific
Resulttype whoseEfield defaults toCoseError.
- Change to use
sk-cboras CBOR library, due to deprecation ofserde-cbor. Breaking change with many knock-on effects:- Re-export
sk-cborascoset::cbor. - Use
sk-cbor'sValuetype rather thanserde-cbor's version. - Change encoding methods to consume
self. - Change encoding methods to be fallible.
- Move to be
no_std(but still usingalloc) - Add
CoseErrorerror type and use throughout. - Use
Vecof pairs notBTreeMaps for CBOR map values. - Use
i64noti128for integer values throughout. - Drop use of
serde'sSerializeandDeserializetraits; instead… - Add
CborSerializableextension trait for conversion to/from bytes. - Drop
from_tagged_reader/to_tagged_writermethods fromTaggedCborSerializabletrait. - Derive
Debugfor builders. - Convert
CoseKeySetto a newtype, and add standard traits.
- Re-export
- Add fallible variants of builder methods that invoke closures (#20):
CoseRecipientBuilder::try_create_ciphertext()CoseEncryptBuilder::try_create_ciphertext()CoseEncrypt0Builder::try_create_ciphertext()CoseMacBuilder::try_create_tag()CoseMac0Builder::try_create_tag()CoseSignBuilder::try_add_created_signature()CoseSign1Builder::try_create_signature()
- Upgrade dependencies.
- Make
KeyTypeandKeyOperationpublic. - Upgrade dependencies.
- Initial version, using
serde-cboras CBOR library.