import logger from 'log' const log = logger('crypto:signature') export async function gen_keypair() : Promise { return crypto.subtle.generateKey( { name: "ECDSA", namedCurve: "P-521", }, true, ["sign", "verify"] ) } export {derive_keypair} from './signature.derive' export async function sign(message: Uint8Array, privkey: CryptoKey) : Promise { log.trace("sign") const buffer = await crypto.subtle.sign( { name: "ECDSA", hash: "SHA-512" }, privkey, message ) return new Uint8Array(buffer) } export async function verify(message: Uint8Array, pubkey: CryptoKey, signature: Uint8Array) : Promise { log.trace("verify") return crypto.subtle.verify( { name: "ECDSA", hash: "SHA-512" }, pubkey, signature, message, ) }