Skip to content

Latest commit

 

History

History
262 lines (191 loc) · 9.08 KB

CHANGELOG.md

File metadata and controls

262 lines (191 loc) · 9.08 KB

Changelog

All notable changes to this project will be documented in this file.

  • Removed: Support for PHP 7.3 and 7.4
  • Removed: jwkstool command-line tool and associated dependencies (most notably symfony/console). jwkstool is now available as a separate package kelvinmo/jwkstool
  • Fixed: Issue with gmp_pow for certain versions of PHP (#214)
  • Fixed: RSAKey cannot parse PKCS#8 encoded RSA private keys (#206)
  • Fixed: Deprecation warning in constructor of AESGCMKeyWrap (#197)
  • Changed: Providing invalid JSON tokens into JWT::deserialise() and JWE::decrypt() will throw an InvalidTokenException instead of InvalidArgumentException
  • Changed: JWT and JWE methods now check for validity of algorithm classes
  • Changed: Additional type hinting on public API methods
  • Removed: Support for PHP 7.2
  • Changed: Update dependency on symfony/console to support v7.0
  • Fixed: Throw a KeyException when loading an invalid PEM-encoded RSAKey
  • Added: Support for Ed25519 signatures and X25519 key derviation algorithms
  • Added: Support for AES GCM key encryption algorithms (A128GCMKW, A192GCMKW and A256GCMKW)
  • Added: Support for COSE based keys
  • Changed: Use box to package the jwkstool utility
  • Changed: Refactored Algorithm (now renamed to BaseAlgorithm) and Key to extract interfaces (into AlgorithmInterface and KeyInterface respectively)
  • Changed: Key ID kid parameter no longer automatically generated when a Key object is created. Use Key::getKeyId(true) or KeySet::add(..., true) to generate a key ID
  • Removed: Helper::getObject() and Helper::getJWTObject() have been replaced by Helper::decode() and Helper::decodeFully() respectively
  • Removed: Support for PHP 7.1
  • Fixed: Incorrect key selection when encrypting/decrypting keys in ECDH-ES+AxxxKW (#159)
  • Fixed: Exporting keys as JSON in jwkstool
  • Changed: Split SimpleJWT\Crypt namespace into multiple namespaces, one for each algorithm type (#60)
  • Changed: JWT and JWE now derives from a common parent class Token
  • 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