Releases: robinpowered/php-ntlm
PHP 7.2 support, Mcrypt deprecation
This release now requires PHP 7.1+ and adds compatibility for PHP 7.2's HashContext
class. We've also noted the deprecation of PHP's mcrypt
library since PHP 7.2.
Native CSPRNG Support and OpenSSL Deprecation
This release adds support for the native CSPRNG functions included in PHP 7. This allows for an easier installation process due to less dependency on extensions while providing a more secure alternative to other CSPRNG implementations.
Also, due to discoveries in the insecurities of OpenSSL and known abandonment of Mcrypt, this release deprecates support for both the OpenSSL and Mcrypt random byte generators.
User Principal Name Username Support
This release fixes the way that target names are encoded in the authentication message when a "User Principal Name" (UPN) formatted username is used.
Negotiation Message Offset Compatibility
This release changes the way that the negotiation message's "domain" and "workstation" meta data is encoded to enable a more broad compatibility with some NTLM servers.
This resorts to a technically non-spec behavior, but proves to work more broadly and still keeps BC for more spec-correct NTLM implementations, as the values are supposed to be ignored in the specific case anyway.
Target Name Overriding Fix
This release fixes the fall-back order of the target name acquisition in the authentication message encoders to allow for client overriding.
No LM Hash Fix
This release fixes the NTLMv1 authenticate message encoder by making sure to handle the case when an LM hash isn't provided or is supposed to be ignored.
NTLMv1 DES Encryption Fix
NOTE: This release contains a BC break!
This release fixes an improper pre-processing of generated keys in the DES-ECB encryption process when using NTLMv1. This fix required some restructuring and therefore has changed the public API of some of the NTLM message encoding dependencies.
Due to some of the changes, however, the NTLMv1 message handling process is much lighter weight, using less I/O and unnecessary entropy during encoding.
OpenSSL Encryption Compatibility
This release adds OpenSSL implementations of the cryptographic interfaces, to both improve compatibility between environments and to provide an alternative to the Mcrypt implementations, as the Mcrypt library has been abandoned since 2003.
Initial Release!
PHP-NTLM is a library that handles the encoding and decoding of messages used in the challenge-and-response flow of the NTLM authentication protocol, while also providing separate injectable credential hashing mechanisms to allow for a more secure version of a credential for storage (rather than storing passwords in "plain-text").