diff --git a/src/signature.ts b/src/signature.ts new file mode 100644 index 0000000..e2abae2 --- /dev/null +++ b/src/signature.ts @@ -0,0 +1,21 @@ +import logger from 'log' +import * as ed from '@noble/ed25519' + +const log = logger('crypto:signature') + +export async function gen_privkey() : Promise { + log.trace("generate keypair") + return ed.utils.randomPrivateKey() +} +export async function get_pubkey(privkey: Uint8Array) : Promise { + log.trace("derive pubky") + return ed.getPublicKeyAsync(privkey) +} +export async function sign(message: Uint8Array, privkey: Uint8Array) : Promise { + log.trace("sign") + return ed.signAsync(message, privkey) +} +export async function verify(message: Uint8Array, pubkey: Uint8Array, signature: Uint8Array) : Promise { + log.trace("verify") + return ed.verifyAsync(signature, message, pubkey) +}