php-u2flib-server NEWS -- History of user-visible changes.

* Version 1.0.2 (released 2018-09-07)
 ** Additional error checks.
 ** Add user presence check.
 ** Support single files for attestation root.
 ** Type safety, CSPRNG, avoid chr().

* Version 1.0.1 (released 2017-05-09)
 ** Move examples to phps so they don't execute by default
 ** Use common challenge for multiple registrations

* Version 1.0.0 (released 2016-02-19)
 ** Give an early error on openssl < 1.0
 ** Support devices with initial counter 0
 ** Fixes to examples
 ** Handle errorCode: 0 correctly

* Version 0.1.0 (released 2015-03-03)
 ** Use openssl for all crypto instead of third party extensions.
 ** Properly check the request challenge on authenticate.
 ** Switch from returning error codes to throwing exceptions.
 ** Stop recommending composer for installation.

* Version 0.0.2 (released 2014-10-24)
 ** Refactor the API to return objects instead of encoded objects.
 ** Add a second example that uses PDO to store registrations.
 ** Add documentation to the API.
 ** Check that randomness returned is good.
 ** Drop the unneeded mcrypt extension.
 ** More tests.

* Version 0.0.1 (released 2014-10-16)
 ** Initial release.
