A C# implementation of Concise Binary Object Representation (CBOR), a general-purpose binary data format defined in RFC 7049.
See the version list below for details.
Install-Package PeterO.Cbor -Version 4.0.0
dotnet add package PeterO.Cbor --version 4.0.0
<PackageReference Include="PeterO.Cbor" Version="4.0.0" />
paket add PeterO.Cbor --version 4.0.0
- Fix issues with CTAP2 Canonical CBOR form
- Support field serialization and deserialization in ToObject and FromObject
The features in this version include:
- The CBOR library no longer stores numbers in a special form beyond the CBOR data model, which represents all "65-bit" signed integers and all "double" values. This means the CBOR library no longer stores certain numbers as EDecimal, EInteger, EFloat, etc., rather than as tagged CBOR objects.
- CBORObject.CompareTo now compares objects using the default deterministic encoding comparison in the draft revision of the CBOR specification, and no longer treats numbers (objects with the former type CBORType.Number) as a special class.
- CBORType.Number is deprecated; CBORObjects no longer have this type. In its place, certain numbers now have new CBORTypes Integer or FloatingPoint.
- CBORObject now stores floating-point numbers internally as the bits that make them up, rather than as `double`s, to avoid data loss in conversions.
- Methods were added to CBORObject to read and write floating-point numbers in terms of their bit patterns rather than as `double`s or `float`s.
- Ctap2Canonical was made more strict and now works when decoding CBOR objects.
- Added ReadSequence and DecodeSequence to CBORObject for reading CBOR sequences.
- New CBORNumber class for storing numbers representable in CBOR. The new CBORObject.IsNumber property checks whether a CBOR object represents a number.
- Bug fixes
- Support nullable types in CBORObject.ToObject.
- Update Numbers library to newer version
- JSONOptions.Base64Padding now has no effect. The library will now write padding as necessary when
writing traditional base64 to JSON and write no padding when writing base64url to JSON.
- JSONOptions.ReplaceSurrogates property added.
- Restrict valid shared reference indices to integers 0 or greater.
- Reject writing JSON where CBOR maps have two keys with the same string equivalent.
- Improve performance of CBOR object comparisons involving big floats.
- Support CBOR tags for IRIs and IRI references.
- Add CBOREncodeOptions.DefaultCtap2Canonical field.
- Remove all APIs obsoleted since version 3.4. This
includes the BigInteger, ExtendedDecimal, and ExtendedFloat APIs,
which were renamed and moved to a different library, as well as the
ICBORTag and CBORTypeFilter APIs.
- Changed implementation of FromObject, including imposing a nesting depth
limit and supporting a CBORTypeMapper parameter.
- Property name conversion rules (in PODOptions) were changed
in this version with respect to FromObject. In this sense,
PODOptions.RemoveIsPrefix was removed.
- Certain other changes in CBOR object reading and validation were
made; they are largely compatible with previous versions but may be
backwards-incompatible in certain rare cases
- PeterO.Numbers (>= 1.4.3)
Showing the top 1 GitHub repositories that depend on PeterO.Cbor:
Directory Services Internals (DSInternals) PowerShell Module and Framework
Read more about the GitHub Usage information on our documentation.