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

1 lines • 2.57 kB
{"version":3,"file":"Ed25519VerificationKey2020.mjs","names":[],"sources":["../../../../../src/modules/dids/domain/verificationMethod/Ed25519VerificationKey2020.ts"],"sourcesContent":["import { CredoError } from '../../../../error'\nimport { Ed25519PublicJwk, getJwkHumanDescription, PublicJwk } from '../../../kms'\n\nimport { VerificationMethod } from './VerificationMethod'\n\nexport const VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020 = 'Ed25519VerificationKey2020'\ntype Ed25519VerificationKey2020 = VerificationMethod & {\n type: typeof VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020\n}\n\n/**\n * Get a Ed25519VerificationKey2020 verification method.\n */\nexport function getEd25519VerificationKey2020({\n publicJwk,\n id,\n controller,\n}: {\n id: string\n publicJwk: PublicJwk<Ed25519PublicJwk>\n controller: string\n}) {\n return new VerificationMethod({\n id,\n type: VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020,\n controller,\n publicKeyMultibase: publicJwk.fingerprint,\n })\n}\n\n/**\n * Check whether a verification method is a Ed25519VerificationKey2020 verification method.\n */\nexport function isEd25519VerificationKey2020(\n verificationMethod: VerificationMethod\n): verificationMethod is Ed25519VerificationKey2020 {\n return verificationMethod.type === VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020\n}\n\n/**\n * Get a key from a Ed25519VerificationKey2020 verification method.\n */\nexport function getPublicJwkFromEd25519VerificationKey2020(verificationMethod: Ed25519VerificationKey2020) {\n if (!verificationMethod.publicKeyMultibase) {\n throw new CredoError('verification method is missing publicKeyMultibase')\n }\n\n const publicJwk = PublicJwk.fromFingerprint(verificationMethod.publicKeyMultibase)\n const publicKey = publicJwk.publicKey\n\n if (publicKey.kty !== 'OKP' || publicKey.crv !== 'Ed25519') {\n throw new CredoError(\n `Verification method ${verificationMethod.type} is for unexpected ${getJwkHumanDescription(publicJwk.toJson())}.`\n )\n }\n\n return publicJwk\n}\n"],"mappings":";;;;;;;;;;AAKA,MAAa,yDAAyD;;;;AAQtE,SAAgB,8BAA8B,EAC5C,WACA,IACA,cAKC;AACD,QAAO,IAAI,mBAAmB;EAC5B;EACA,MAAM;EACN;EACA,oBAAoB,UAAU;EAC/B,CAAC;;;;;AAMJ,SAAgB,6BACd,oBACkD;AAClD,QAAO,mBAAmB,SAAS;;;;;AAMrC,SAAgB,2CAA2C,oBAAgD;AACzG,KAAI,CAAC,mBAAmB,mBACtB,OAAM,IAAI,WAAW,oDAAoD;CAG3E,MAAM,YAAY,UAAU,gBAAgB,mBAAmB,mBAAmB;CAClF,MAAM,YAAY,UAAU;AAE5B,KAAI,UAAU,QAAQ,SAAS,UAAU,QAAQ,UAC/C,OAAM,IAAI,WACR,uBAAuB,mBAAmB,KAAK,qBAAqB,uBAAuB,UAAU,QAAQ,CAAC,CAAC,GAChH;AAGH,QAAO"}