{"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"}