UNPKG

@digitalcredentials/ed25519-verification-key-2020

Version:

Javascript library for generating and working with Ed25519VerificationKey2020 key pairs, for use with crypto-ld.

39 lines 1.22 kB
/*! * Copyright (c) 2020 Digital Bazaar, Inc. All rights reserved. */ import * as ed25519 from '@noble/ed25519'; // browser MUST provide "crypto.getRandomValues" const crypto = globalThis.crypto; if (typeof crypto.getRandomValues === 'undefined') { throw new Error('Environment does not provide "crypto.getRandomValues".'); } export default { async generateKeyPair() { const seed = new Uint8Array(32); crypto.getRandomValues(seed); const keyPair = await generateKeyPairFromSeed(seed); seed.fill(0); return keyPair; }, generateKeyPairFromSeed, async sign(secretKey, data) { return ed25519.sign(data, secretKey.slice(0, 32)); }, async verify(publicKey, data, signature) { return ed25519.verify(signature, data, publicKey); }, async sha256digest(data) { return crypto.subtle.digest('SHA-256', data); } }; async function generateKeyPairFromSeed(seed) { const publicKey = await ed25519.getPublicKey(seed); const secretKey = new Uint8Array(64); secretKey.set(seed); secretKey.set(publicKey, seed.length); return { publicKey, secretKey }; } //# sourceMappingURL=ed25519-browser.js.map