sign and verify hashes

This commit is contained in:
Mark Spanbroek 2024-12-11 10:15:47 +01:00
parent 04d66b8bd9
commit 135e8efbc6
2 changed files with 15 additions and 0 deletions

View File

@ -1,5 +1,6 @@
import pkg/blscurve
import pkg/nimcrypto
import ./hashing
export blscurve.Signature
export blscurve.sign
@ -19,3 +20,9 @@ proc random*(_: type Identity, identity: var Identity) =
func identifier*(identity: Identity): Identifier =
doAssert publicFromSecret(result, identity)
func sign*(identity: Identity, hash: Hash): Signature =
identity.sign(hash.data)
func verify*(signature: Signature, identifier: Identifier, hash: Hash): bool =
identifier.verify(hash.toBytes(), signature)

View File

@ -1,5 +1,6 @@
import ./basics
import pkg/blscurve
import codexvalidator/hashing
import codexvalidator/signatures
suite "Signature scheme":
@ -41,3 +42,10 @@ suite "Signature scheme":
let signature = identity1.sign(message)
check identity1.identifier.verify(message, signature)
check not identity2.identifier.verify(message, signature)
test "identity can sign and verify hashes":
var identity: Identity
Identity.random(identity)
let hash = Hash.example
let signature = identity.sign(hash)
check signature.verify(identity.identifier, hash)