- Notifications
You must be signed in to change notification settings - Fork113
phpecc/phpecc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This library is a rewrite/update of Matyas Danter's ECC library. All credit goes to him.
For more information on Elliptic Curve Cryptography please readthis fine article.
The library supports the following curves:
- secp112r1
- secp256k1
- nistp192
- nistp224
- nistp256 / secp256r1
- nistp384 / secp384r1
- nistp521
During ECDSA, a random valuek
is required. It is acceptable to use a true RNG to generate this value, butshould the samek
value ever be repeatedly used for a key, an attacker can recover that signing key.The HMAC random generator can derive a deterministic k value from the message hash and private key, voidingthis concern.
The library uses a non-branching Montgomery ladder for scalar multiplication, as it's constant time and avoids secretdependant branches.
This package is released under the MIT license.
- PHP 7.0+ or PHP 8.0+
- composer
- ext-gmp
Support for older PHP versions:
- v0.4.x: php ^5.6|<7.2
- v0.5.x: php ^7.0
- v1.0.x: php ^7.0|^8.0
You can install this library via Composer :
composer require mdanter/ecc:^1.0
When sending in pull requests, please make sure to run themake
command.
The default target runs all PHPUnit and PHPCS tests. All testsmust validate for your contribution to be accepted.
It's also always a good idea to check the results of theScrutinizer analysis for your pull requests.
Examples:
About
Pure PHP Elliptic Curve Cryptography Library