2024-12-04 10:08:59 +01:00
|
|
|
import pkg/blscurve
|
|
|
|
|
import pkg/nimcrypto
|
2024-12-03 15:11:39 +01:00
|
|
|
|
2024-12-04 10:08:59 +01:00
|
|
|
export blscurve.Signature
|
|
|
|
|
export blscurve.sign
|
|
|
|
|
export blscurve.verify
|
2024-12-03 15:11:39 +01:00
|
|
|
|
|
|
|
|
type
|
|
|
|
|
Identity* = SecretKey
|
|
|
|
|
Identifier* = PublicKey
|
|
|
|
|
|
|
|
|
|
proc random*(_: type Identity, identity: var Identity) =
|
|
|
|
|
var randomness: array[32, byte]
|
|
|
|
|
var done = false
|
|
|
|
|
while not done:
|
2024-12-04 10:08:59 +01:00
|
|
|
doAssert randomBytes(randomness) == randomness.len
|
|
|
|
|
done = fromBytes(identity, randomness)
|
|
|
|
|
burnMem(randomness)
|
2024-12-03 15:11:39 +01:00
|
|
|
|
|
|
|
|
func identifier*(identity: Identity): Identifier =
|
2024-12-04 10:08:59 +01:00
|
|
|
doAssert publicFromSecret(result, identity)
|