{"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;CACD,OAAO,IAAI,mBAAmB;EAC5B;EACA,MAAM;EACN;EACA,oBAAoB,UAAU;CAChC,CAAC;AACH;;;;AAKA,SAAgB,6BACd,oBACkD;CAClD,OAAO,mBAAmB,SAAS;AACrC;;;;AAKA,SAAgB,2CAA2C,oBAAgD;CACzG,IAAI,CAAC,mBAAmB,oBACtB,MAAM,IAAI,WAAW,mDAAmD;CAG1E,MAAM,YAAY,UAAU,gBAAgB,mBAAmB,kBAAkB;CACjF,MAAM,YAAY,UAAU;CAE5B,IAAI,UAAU,QAAQ,SAAS,UAAU,QAAQ,WAC/C,MAAM,IAAI,WACR,uBAAuB,mBAAmB,KAAK,qBAAqB,uBAAuB,UAAU,OAAO,CAAC,EAAE,EACjH;CAGF,OAAO;AACT"}