All notable changes to this project will be documented in this file.
- Added: Support for
Ed25519
signatures andX25519
key derviation algorithms - Changed: Use
box
to package thejwkstool
utility - Changed: Refactored
Algorithm
(now renamed toBaseAlgorithm
) andKey
to extract interfaces (intoAlgorithmInterface
andKeyInterface
respectively) - Removed: Helper::getObject() and Helper::getJWTObject() have been replaced by Helper::decode() and Helper::decodeFully() respectively
- Removed: Support for PHP 7.1
- Changed: Split
SimpleJWT\Crypt
namespace into multiple namespaces, one for each algorithm type (#60) - Changed:
JWT
andJWE
now derives from a common parent classToken
- Changed: Improved ASN.1 processing code (#68)
- Changed: Util::base64url_decode() will now throw
\UnexpectedValueException
instead of returning false if the input cannot be decoded
- Deprecated: Helper::getObject() and Helper::getJWTObject() have been replaced by Helper::decode() and Helper::decodeFully() respectively, and will be removed in future versions
- Changed: Updated
symfony/console
package version - Fixed: Compatibility with PHP 8.1 when using ECDH (#58)
- Changed: JWT::deserialise() no longer takes a
$format
parameter (which is already ignored) - Changed: KeyFactory::create() now throws a KeyException if the supplied key cannot be decoded
- Changed: OpenSSLSig::getKeyCriteria() now throws an UnexpectedValueException
if the supplied algorithm (
alg
header) is not valid - Deprecated: Helper::getJWTObject() now ignores the
$jwe_kid
parameter and will be removed in future versions - Fixed: API documentation for better static analysis checks
- Added: Support for Elliptic Curve Diffie-Hellman Ephemeral Static algorithms
- Added: JWT::tokenHash() to calculate OpenID Connect access token hash values
- Changed: When parsing multi-recipient JWTs and JWEs without corresponding key, the error code for InvalidTokenException was changed from TOKEN_PARSE_ERROR to SIGNATURE_VERIFICATION_ERROR (for JWSs) and DECRYPTION_ERROR (for JWEs), so that they are consistent with their single-recipient equivalents
- Fixed: Decoding JSON formatted JWEs and JWKs
- Fixed: Parsing multi-recipient JWTs and JWEs
- Fixed: typos in documentation leading to deprecation error (#39)
- Fixed: incorrect treatment of recipients object in JWE
- Removed: support for PHP 5
- Fixed: Undefined index when calling JWT::deserialise() and JWE::decrypt() with an unrecognised token format (#37)
- Added: Support for PHP 8 (#35)
- Added: Support for AES GCM family of algorithms
- Added: Support for Elliptic Curve Diffie-Hellman key derivation algorithm
- Changed: SimpleJWT\JWT::decode() no longer supports $format parameter (format is automatically detected)
- Changed: SimpleJWT\JWT::deserialise() no longer supports $format parameter (format is automatically detected)
- Changed: Return value of SimpleJWT\JWT::deserialise() changed
- Changed: SimpleJWT\JWE::decrypt() no longer supports $format parameter (format is automatically detected)
- Removed: SimpleJWT\Keys\Key::getSignature()
- Fixed: Autoload issue in jwkstool (#31)
- Fixed: Uninitialised values in SimpleJWT\JWT::deserialise() for JWTs encoded in JSON serialisation format (#29)
- Note: Arguments and/or return values for SimpleJWT\JWT::deserialise() may change in the next release
- Fixed: Composer dependencies on
symfony/console
for PHP 7 compatibility (#22)
- Changed: jwkstool build process
- Fixed: Syntax error in SimpleJWT\JWE::decrypt()
- Fixed: Arguments for SimpleJWT\JWT::deserialise()
- Deprecated: SimpleJWT\Keys\Key::getSignature() - use SimpleJWT\Keys\Key::getThumbnail() instead
- Fixed undefined variable error when using JWE with a symmetric key (#19)
- Fixed Util::packInt64() when running 32-bit PHP 7
- Fixed missing time variable in InvalidTokenException
- More specific PHP version specification requirements in composer.json
- Refactored Util::random_bytes() to specify file-based entropy source for Unix-like systems
- Refactored key signature methodology to align with RFC 7638
- Fixed typo in documentation
- Fixed incorrect handling of kid when using symmetric encryption (#13)
- Enhanced documentation
- Refactored coding style
- Fixed support for RSA-OAEP-256
- Fixed incorrect encoding of RSA keys into PEM (#10)
- Fixed incorrect decoding of PEM-encoded EC private keys (#8)
- Improved decoding of PEM-encoded RSA keys
- Enhanced tests
- Refactored code to add deserialise function
- Support newer versions of OpenSSL used in PHP 7, which uses lowercase cipher and message digest names (#7)
- Fixed namespace error in documentation blocks (#3)
- Fixed syntax error when throwing exception as a result of an invalid COMPACT_FORMAT token (#1)
- Fixed bug in jwkstool in referencing renamed method in KeySet
- Fixed bug caused by dependency issues with
symfony/composer
. The of this library is now locked to 2.7.*
- Enhanced compatibility with PHP 7
- Initial release