- Add conversions between
AlgorithmandKeyAlgorithm - JWKs can now be created from
DecodingKeys, creation fromEncodingKeyandDecodingKeynow supports Ed25519 as well - JWKs with unknown key types are now deserializable
- BREAKING:
Algorithm,KeyAlgorithm,EllipticCurveandThumbprintHashare nownon_exhaustive - BREAKING:
Jwk.thumbprintnow returns aResult<_> - BREAKING:
Header.extrasis now a struct that allows for deserialization to anyT - BREAKING: Implicit features resulting from optional crates have been removed
- BREAKING:
Validation.insecure_disable_signature_validationhas been removed, usedangerous::insecure_decodeinstead - BREAKING:
EncodingKey.innerhas been renamed toas_bytes,try_get_hmac_secrethas been removed - BREAKING:
DecodingKey.as_bytesandtry_get_hmac_secrethave been removed, usetry_get_as_bytesinstead
- When constructing HMAC signers, the algorithm family must now be verified on construction
JwkUtilshas been renamed toKeyUtilscompute_digestnow returns aResult<_>extract_rsa_public_key_componentshas been renamed torsa_pub_components_from_private_keyrsa_pub_components_from_public_keyhas been addedextract_ec_public_key_coordinateshas been renamed toec_pub_components_from_private_keyed_pub_components_from_private_keyhas been added
- Fix incorrect encoding for Ed25519 JWK thumbprints
- Make
Algorithm.familypublic and addValidation.new_for_family EncodingKeyandDecodingKeyare now partially zeroized on drop (the intermediatePemEncodedKeyisn't so far)
- Export everything needed to define your own CryptoProvider
- Fix type confusion with exp/nbf when not required
- Remove
Clonebound from decode functions
- add
dangerous::insecure_decode - Implement TryFrom &Jwk for DecodingKey
- BREAKING: now using traits for crypto backends, you have to choose between
aws_lc_rsandrust_crypto - Add
Clonebound todecode - Support decoding byte slices
- Support JWS
- Update base64
- Add
Validation.reject_tokens_expiring_in_less_than, the opposite of leeway
- Add an option to not validate
audin the Validation struct - Get the current timestamp in wasm without using std
- Update ring to 0.17
- Supports deserialization of unsupported algorithms for JWKs
- Update ring
- Rejects JWTs containing audiences when the Validation doesn't contain any
- Update base64
- Implement Clone for TokenData if T impls Clone
- Add DecodingKey::from_jwk
- Can now use PEM certificates if you have the
use_pemfeature enabled
- Fix invalid field name on OctetKeyParameters
- Make optional fields in the spec really optional
- Implements
HashforHeader
- Fix documentation of leeway
- Add EdDSA algorithm
sign/verifynow takes a&[u8]instead of&strto be more flexibleDecodingKeynow own its data- Remove deprecated
dangerous_unsafe_decode Validation::issis now aHashSetinstead of a single valuedecodewill now error ifValidation::algorithmsis empty- Add JWKs types for easy interop with various Oauth provider, see
examples/auth0.rsfor an example - Removed
decode_*functions in favour of using theValidationstruct - Allow float values for
expandnbf, yes it's in the spec... floats will be rounded and converted to u64 - Error now implements Clone/Eq
- Change default leeway from 0s to 60s
- Add
Validation::require_spec_claimsto validate presence of the spec claims - Add default feature for pem decoding named
use_pemthat can be disabled to avoid 2 dependencies
- Add
dangerous_insecure_decodeto replacedangerous_unsafe_decode, which is now deprecated - Add
dangerous_insecure_decode_with_validation
- Derive
HashforHeaderandAlgorithm
- Update dependencies
- Add
into_statictoDecodingKeyfor easier re-use
- Add support for PS256, PS384 and PS512
- Add support for verifying with modulus/exponent components for RSA
- Update to 2018 edition
- Changed aud field type in Validation to
Option<HashSet<String>>. Audience validation now tests for "any-of-these" audience membership. - Add support for keys in PEM format
- Add EncodingKey/DecodingKey API to improve performance and UX
- Fix Algorithm mapping in FromStr for RSA
- Update Ring to 0.14
- Remove
iatcheck to match the JWT spec - Add ES256 and ES384 signing decoding
- Add implementation of FromStr for Algorithm
- Update ring
- Change error handling to be based on simple struct/enum rather than error-chain
- Fix validations not being called properly in some cases
- Default validation is not checking
iatandnbfanymore
- Add method to decode a token without signature verification
- Make it mandatory to specify the algorithm in
decode
- Remove
validate_signaturefromValidation, usedecode_headerinstead if you don't know the alg used - Make
typoptional in header, some providers apparently don't use it
- Update ring & error-chain
- Fix documentation about
leewaybeing in seconds and not milliseconds - Add
decode_headerto only decode the header: replaces the use case ofvalidate_signature
- Make
TokenDatapublic
- Update ring & chrono
- Update ring
- Use Serde instead of rustc_serialize
- Add RSA support
- API overhaul, see README for new usage
- Add validation
- Update all dependencies
- 1.1.7: update ring
- 1.1.6: update ring
- 1.1.5: update ring version
- 1.1.4: use ring instead of rust-crypto
- 1.1.3: Make sign and verify public
- 1.1.2: Update rust-crypto to 0.2.35
- 1.1.1: Don't serialize empty fields in header
- 1.1.0: Impl Error for jsonwebtoken errors
- 1.0: Initial release