All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Added a check to verify that the used keyLength for an RSA key is less than the max length support by the RSACryptoServiceProvider in the .NET SDK.
- Add option in JWK constructor to provide custom key length for RSA key (Note: A minimum key length of 2048bit (NIST recommendation) is still enforced)
- Fixed an issue that would cause a JsonWriterException when exporting multiple JWK objects in parallel
- Added support for (de-)serialization of JSON Web Key Sets
- Added Base64Helper.cs for base64url encoding and decoding
- Upgraded (test-)project dependencies
- The BuildWithOptions method has been removed. Corresponding constructors for the 'JWK' class have been added.
- 'keyParameters' has been renamed to 'KeyParameters'
- Added a constructor to initialize a JWK with key parameters
- KeyType has been removed from Algorithm
- Added a constructor to deserialize a JWK from a string
- Added TryGetAlgorithm, TryGetKeyType and TryGetPublicKeyUse to get the string representation of the corresponding object.
- JWK.KeyParts.Algorithm.Value has been renamed to .Name
- JWK.KeyParts.KeyParameters.Values is now publicly accessible
- JWK.KeyParts.KeyType.Type is now publicly accessible
- JWK.KeyParts.PublicKeyUse.KeyUse is now publicly accessible
- Issue #2 - key_ops is string, should be array
- Change TargetFramework to netstandard2.0 for improved compability.
- Improve literature reference for selecting HMAC key size
- Don't throw an exception when calling ToString() when calling to string on a symmetric key. Instead, return a message indicating that ToString() is not available for symmetric keys to avoid key exposure
- Fixed an invalid CryptographicException when calling when creating an HMAC key
- Fixed algorithm name when creating an ECCurve key with an unknown key length.
- Added instructions on how to install CreativeCode.JWK library
- Added example code on how to create a JWK
- Provide performance information (building a JWK / serialize a JWK) in debug mode
- Serialize(bool shouldExportPrivateKey). Provide the JSON representation of the JWK.
- IsSymmetric(). Determines whether a JWK contains a symetric or asymetric key.
- By default all properties of a JWK now contain a public getter
- Renamed JWKfromOptions to BuidlWithOptions
- An exception if thrown if Serialize() is called with shouldExportPrivateKey = false.
- If ECCurve name could not be parsed, no exception would be thrown
- Initial release of NuGet package.