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
#r "nuget: PeterO.Cbor, 4.0.0"
// Install PeterO.Cbor as a Cake Addin #addin nuget:?package=PeterO.Cbor&version=4.0.0 // Install PeterO.Cbor as a Cake Tool #tool nuget:?package=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)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on PeterO.Cbor:
AWS DynamoDB Accelerator (DAX) .NET Client -- DAX is a fully managed, in-memory cache for DynamoDB.
FIDO2 .NET library (WebAuthn)
An implementation of the CBOR Object Signing and Encryption standards.
An embedded IPFS engine for .Net
This package is shared between all other DSInternals packages. Its main features are Azure AD Graph API and ADSI clients for for retrieval of cryptographic material. It contains implementations of common hash functions used by Windows, including NT hash, LM hash and OrgId hash. It also contains methods for SysKey/BootKey retrieval.
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on PeterO.Cbor:
Directory Services Internals (DSInternals) PowerShell Module and Framework
FIDO2 .NET library for FIDO2 / WebAuthn Attestation and Assertion using .NET