{"version":3,"file":"Ed25519PublicJwk.mjs","names":[],"sources":["../../../../../../src/modules/kms/jwk/kty/okp/Ed25519PublicJwk.ts"],"sourcesContent":["import { convertPublicKeyToX25519 } from '@stablelib/ed25519'\nimport {\n  type KnownJwaKeyAgreementAlgorithm,\n  type KnownJwaSignatureAlgorithm,\n  KnownJwaSignatureAlgorithms,\n} from '../../jwa'\nimport type { PublicJwkType } from '../PublicJwk'\nimport type { KmsJwkPublicOkp } from './okpJwk'\nimport { okpPublicJwkToPublicKey, okpPublicKeyToPublicJwk } from './okpPublicKey'\nimport { X25519PublicJwk } from './X25519PublicJwk'\n\ntype Jwk = KmsJwkPublicOkp & { crv: 'Ed25519' }\n\nexport class Ed25519PublicJwk implements PublicJwkType<Jwk> {\n  public static supportedSignatureAlgorithms: KnownJwaSignatureAlgorithm[] = [\n    KnownJwaSignatureAlgorithms.EdDSA,\n    KnownJwaSignatureAlgorithms.Ed25519,\n  ]\n  public static supportedEncryptionKeyAgreementAlgorithms: KnownJwaKeyAgreementAlgorithm[] = []\n  public static multicodecPrefix = 237\n\n  public supportedEncryptionKeyAgreementAlgorithms = Ed25519PublicJwk.supportedEncryptionKeyAgreementAlgorithms\n  public supportedSignatureAlgorithms = Ed25519PublicJwk.supportedSignatureAlgorithms\n  public multicodecPrefix = Ed25519PublicJwk.multicodecPrefix\n\n  public constructor(public readonly jwk: Jwk) {}\n\n  public get publicKey() {\n    return {\n      crv: this.jwk.crv,\n      kty: this.jwk.kty,\n      publicKey: okpPublicJwkToPublicKey(this.jwk),\n    }\n  }\n\n  /**\n   * Not supported for Ed25519\n   */\n  public get compressedPublicKey() {\n    return null\n  }\n\n  public get multicodec() {\n    return okpPublicJwkToPublicKey(this.jwk)\n  }\n\n  public static fromPublicKey(publicKey: Uint8Array) {\n    const jwk = okpPublicKeyToPublicJwk(publicKey, 'Ed25519')\n    return new Ed25519PublicJwk(jwk)\n  }\n\n  public static fromMulticodec(multicodec: Uint8Array) {\n    const jwk = okpPublicKeyToPublicJwk(multicodec, 'Ed25519')\n    return new Ed25519PublicJwk(jwk)\n  }\n\n  public toX25519PublicJwk() {\n    return X25519PublicJwk.fromPublicKey(convertPublicKeyToX25519(this.publicKey.publicKey) as Uint8Array).jwk\n  }\n}\n"],"mappings":";;;;;;;;AAaA,IAAa,mBAAb,MAAa,iBAA+C;CAY1D,AAAO,YAAY,AAAgB,KAAU;EAAV;OAJ5B,4CAA4C,iBAAiB;OAC7D,+BAA+B,iBAAiB;OAChD,mBAAmB,iBAAiB;;CAI3C,IAAW,YAAY;AACrB,SAAO;GACL,KAAK,KAAK,IAAI;GACd,KAAK,KAAK,IAAI;GACd,WAAW,wBAAwB,KAAK,IAAI;GAC7C;;;;;CAMH,IAAW,sBAAsB;AAC/B,SAAO;;CAGT,IAAW,aAAa;AACtB,SAAO,wBAAwB,KAAK,IAAI;;CAG1C,OAAc,cAAc,WAAuB;AAEjD,SAAO,IAAI,iBADC,wBAAwB,WAAW,UAAU,CACzB;;CAGlC,OAAc,eAAe,YAAwB;AAEnD,SAAO,IAAI,iBADC,wBAAwB,YAAY,UAAU,CAC1B;;CAGlC,AAAO,oBAAoB;AACzB,SAAO,gBAAgB,cAAc,yBAAyB,KAAK,UAAU,UAAU,CAAe,CAAC;;;iBA3C3F,+BAA6D,CACzE,4BAA4B,OAC5B,4BAA4B,QAC7B;iBACa,4CAA6E,EAAE;iBAC/E,mBAAmB"}