A pure Solidity implementation of elliptic curve secp256r1 / prime256v1 / p256.
The main purpose of this contract is verification of ECDSA signatures based on curve secp256r1 / prime256v1 / p256. To verify a signature, use the function
function validateSignature(bytes32 message, uint[2] memory rs, uint[2] memory Q) public pure
returns (bool)
where
bytes32 message
is the hash of the signed messageuint[2] rs
contains the signatureuint[2] Q
contains the coordinates of the public keyThe function returns true
for valid signatures, false
otherwise.
Notes:
rs[1] > lowSmax
in validateSignature()
.npm install
) and then run truffle test
.