Skip to content
forked from phpecc/phpecc

Pure PHP Elliptic Curve Cryptography Library

License

Notifications You must be signed in to change notification settings

public-square/phpecc

 
 

Repository files navigation

Pure PHP Elliptic Curve DSA and DH

Latest Stable Version Total Downloads Latest Unstable Version License

Information

This library is a fork of Matyas Danter's ECC library. All credit goes to him and previous contributors. This fork is a drop in replacement that contains support for Schnorr signing and verifying.

For more information on Elliptic Curve Cryptography please read this fine article.

The library supports the following curves:

  • secp112r1
  • secp256k1
  • nistp192
  • nistp224
  • nistp256 / secp256r1
  • nistp384 / secp384r1
  • nistp521

During ECDSA, a random value k is required. It is acceptable to use a true RNG to generate this value, but should the same k 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, voiding this concern.

The library uses a non-branching Montgomery ladder for scalar multiplication, as it's constant time and avoids secret dependant branches.

License

This package is released under the MIT license.

Requirements

  • PHP 8.0+
  • composer
  • ext-gmp

Installation

You can install this library via Composer :

composer require public-square/phpecc

Contribute

Please open a pull request.

Usage

Examples:

About

Pure PHP Elliptic Curve Cryptography Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 99.6%
  • Other 0.4%