kornrunner / secp256k1
Pure PHP secp256k1
Installs: 337 411
Dependents: 88
Suggesters: 0
Security: 0
Stars: 31
Watchers: 4
Forks: 19
Open Issues: 5
Requires
- php: >=8.1
- paragonie/ecc: ^2
Requires (Dev)
- phpunit/phpunit: ^9
README
php-secp256k1
![Latest Stable Version](https://camo.githubusercontent.com/3f3077a6fbac93da5ad3ee567e1abf25a5a0bad6506c089c96f0cd859feb6842/68747470733a2f2f706f7365722e707567782e6f72672f6b6f726e72756e6e65722f736563703235366b312f762f737461626c65)
$ composer require kornrunner/secp256k1
Usage
Sign a message:
<?php require_once 'vendor/autoload.php'; use kornrunner\Secp256k1; use kornrunner\Serializer\HexSignatureSerializer; $secp256k1 = new Secp256k1(); // return signature contains r, s and recovery param (v). // message and privateKey are hex strings $signature = $secp256k1->sign($message, $privateKey); // get r $r = $signature->getR(); // get s $s = $signature->getS(); // get recovery param $v = $signature->getRecoveryParam(); // encode to hex $serializer = new HexSignatureSerializer(); $signatureString = $serializer->serialize($signature); // or you can call toHex $signatureString = $signature->toHex();
Verify a message:
<?php require_once 'vendor/autoload.php'; use kornrunner\Secp256k1; $secp256k1 = new Secp256k1(); // signature was created by sign method // hash and publicKey are hex strings $isVerified = $secp256k1->verify($hash, $signature, $publicKey);
License
MIT