kornrunner / secp256k1
Pure PHP secp256k1
Installs: 381 055
Dependents: 103
Suggesters: 0
Security: 0
Stars: 32
Watchers: 4
Forks: 19
Open Issues: 5
Requires
- php: >=8.1
- paragonie/ecc: ^2
Requires (Dev)
- phpunit/phpunit: ^9
README
$ 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