{"version":3,"file":"X25519KeyAgreementKey2019.mjs","names":[],"sources":["../../../../../src/modules/dids/domain/verificationMethod/X25519KeyAgreementKey2019.ts"],"sourcesContent":["import { CredoError } from '../../../../error'\nimport { TypedArrayEncoder } from '../../../../utils'\nimport { PublicJwk, X25519PublicJwk } from '../../../kms'\n\nimport { VerificationMethod } from './VerificationMethod'\n\nexport const VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019 = 'X25519KeyAgreementKey2019'\ntype X25519KeyAgreementKey2019 = VerificationMethod & {\n  type: typeof VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019\n}\n\n/**\n * Get a X25519KeyAgreementKey2019 verification method.\n */\nexport function getX25519KeyAgreementKey2019({\n  publicJwk,\n  id,\n  controller,\n}: {\n  id: string\n  publicJwk: PublicJwk<X25519PublicJwk>\n  controller: string\n}) {\n  return new VerificationMethod({\n    id,\n    type: VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019,\n    controller,\n    publicKeyBase58: TypedArrayEncoder.toBase58(publicJwk.publicKey.publicKey),\n  })\n}\n\n/**\n * Check whether a verification method is a X25519KeyAgreementKey2019 verification method.\n */\nexport function isX25519KeyAgreementKey2019(\n  verificationMethod: VerificationMethod\n): verificationMethod is X25519KeyAgreementKey2019 {\n  return verificationMethod.type === VERIFICATION_METHOD_TYPE_X25519_KEY_AGREEMENT_KEY_2019\n}\n\n/**\n * Get a key from a X25519KeyAgreementKey2019 verification method.\n */\nexport function getPublicJwkFrommX25519KeyAgreementKey2019(verificationMethod: X25519KeyAgreementKey2019) {\n  if (!verificationMethod.publicKeyBase58) {\n    throw new CredoError('verification method is missing publicKeyBase58')\n  }\n\n  return PublicJwk.fromPublicKey({\n    kty: 'OKP',\n    crv: 'X25519',\n    publicKey: TypedArrayEncoder.fromBase58(verificationMethod.publicKeyBase58),\n  })\n}\n"],"mappings":";;;;;;;;;;;AAMA,MAAa,yDAAyD;;;;AAQtE,SAAgB,6BAA6B,EAC3C,WACA,IACA,cAKC;AACD,QAAO,IAAI,mBAAmB;EAC5B;EACA,MAAM;EACN;EACA,iBAAiB,kBAAkB,SAAS,UAAU,UAAU,UAAU;EAC3E,CAAC;;;;;AAMJ,SAAgB,4BACd,oBACiD;AACjD,QAAO,mBAAmB,SAAS;;;;;AAMrC,SAAgB,2CAA2C,oBAA+C;AACxG,KAAI,CAAC,mBAAmB,gBACtB,OAAM,IAAI,WAAW,iDAAiD;AAGxE,QAAO,UAAU,cAAc;EAC7B,KAAK;EACL,KAAK;EACL,WAAW,kBAAkB,WAAW,mBAAmB,gBAAgB;EAC5E,CAAC"}