Releases: paragonie/halite
Releases · paragonie/halite
v5.1.2
Version 5.1.1
- Support both sodium_compat v1 and v2.
Learn more here.
Version 5.1.0
- Dropped PHP 8.0 support, increased minimum PHP version to 8.1.
- This is due to the significant performance difference between ext/sodium
and sodium_compat, and the functions we use in 5.x aren't available until
PHP 8.1. See #178.
- This is due to the significant performance difference between ext/sodium
- The 5.0.x branch will continue to function on PHP 8.0 but performance is
not guaranteed.
Version 5.0.0
- Increased minimum PHP version to 8.0.
- Security: Asymmetric encryption now uses HKDF-BLAKE2b to extract a 256-bit uniformly random bit string for the encryption key, rather than using the raw X25519 output directly as an encryption key. This is important because Elliptic Curve Diffie-Hellman results in a random group element, but that isn't necessarily a uniformly random bit string.
- Because Halite v4 and earlier did not perform this step, it's superficially susceptible to Cheon's attack. This reduces the effective security from 125 bits (Pollard's rho) to 123 bits, but neither is a practical concern today.
- Security: Halite v5 uses the PAE strategy from PASETO to prevent canonicalization attacks.
- Security: Halite v5 appends the random salt to HKDF's
info
parameter instead of thesalt
parameter. This allows us to meet the KDF Security Definition (which is stronger than a mere Pseudo-Random Function). - Encryption now uses XChaCha20 instead of XSalsa20.
- The
File
class no longer supports theresource
type. To migrate code, wrap yourresource
arguments in aReadOnlyFile
orMutableFile
object. - Added
File::asymmetricEncrypt()
andFile::asymmetricDecrypt()
.
These security improvements were identified through an internal code review after years of studying new cryptographic attacks. Halite v4 ciphertexts are still decryptable with v5, so upgrading should be largely drop-in.
Version 4.8.0
- Merged #158, which removes the
final
access modifier from private methods and guarantees PHP 8 support. - Migrated tests off of Travis CI, onto Github Actions instead.
Version 4.7.1
- Allows hidden-string v1 or v2 to be installed.
Version 4.7.0
Version 4.6.0
- Merged #138, which adds remote stream support to
ReadOnlyFile
. - Merged #140, which saves some overhead on hash recalculation.
- Merged #136 and #137, which updated the sodium stub files. These aren't strictly necessary anymore; with the adoption of libsodium in PHP 7.2 and sodium_compat, most IDEs autocomplete correctly. But fixing nits is always appreciated.
- Update minimum sodium_compat to v1.11.0.
Version 4.5.4
- Merged #132, which ensures all Halite exceptions implement
Throwable
. - Merged #133, which updates the documentation for the
File
API. Thanks @elliot-sawyer. - Merged #134, which allows
MutableFile
to be used on resources opened inwb
mode. Thanks @christiaanbaartse. - Other minor documentation improvements.
Version 4.5.3
- Fixed some minor nuisances with Psalm and PHPUnit.
- Added reference to Halite-Legacy to the README.
- Updated docblocks.