mirror of
https://github.com/logos-storage/logos-storage-nim-validator.git
synced 2026-01-03 14:03:07 +00:00
sign and verify hashes
This commit is contained in:
parent
04d66b8bd9
commit
135e8efbc6
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user