UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

38 lines (37 loc) • 1.56 kB
import { CredoError } from "../../error/CredoError.mjs"; import "../../error/index.mjs"; import { knownJwaFromCoseSignatureAlgorithm } from "../../modules/kms/cose/algorithm.mjs"; import { PublicJwk } from "../../modules/kms/jwk/PublicJwk.mjs"; import { KeyManagementApi } from "../../modules/kms/KeyManagementApi.mjs"; import "../../modules/kms/index.mjs"; //#region src/crypto/contexts/sign1Context.ts const getSign1Context = (agentContext) => { const kms = agentContext.resolve(KeyManagementApi); return { sign: async (input) => { if (!input.key.keyId) throw new CredoError("Missing required keyId on CoseKey for signing mdoc"); const algorithm = input.algorithm ?? input.key.algorithm; if (algorithm === void 0) throw new CredoError("Unable to sign COSE Sign1 structure. No algorithm provided or defined on the COSE key."); const { signature } = await kms.sign({ data: input.toBeSigned, algorithm: knownJwaFromCoseSignatureAlgorithm(algorithm), keyId: input.key.keyId }); return signature; }, verify: async (input) => { const algorithm = input.algorithm ?? input.key.algorithm; const jwaAlgorithm = algorithm ? knownJwaFromCoseSignatureAlgorithm(algorithm) : PublicJwk.fromUnknown(input.key.jwk).signatureAlgorithm; const { verified } = await kms.verify({ key: { publicJwk: input.key.jwk }, data: input.toBeVerified, algorithm: jwaAlgorithm, signature: input.signature }); return verified; } }; }; //#endregion export { getSign1Context }; //# sourceMappingURL=sign1Context.mjs.map