{"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,YAAmB,KAA0B;EAAV,KAAA,MAAA;EAJnC,KAAO,4CAA4C,iBAAiB;EACpE,KAAO,+BAA+B,iBAAiB;EACvD,KAAO,mBAAmB,iBAAiB;CAEG;CAE9C,IAAW,YAAY;EACrB,OAAO;GACL,KAAK,KAAK,IAAI;GACd,KAAK,KAAK,IAAI;GACd,WAAW,wBAAwB,KAAK,GAAG;EAC7C;CACF;;;;CAKA,IAAW,sBAAsB;EAC/B,OAAO;CACT;CAEA,IAAW,aAAa;EACtB,OAAO,wBAAwB,KAAK,GAAG;CACzC;CAEA,OAAc,cAAc,WAAuB;EACjD,MAAM,MAAM,wBAAwB,WAAW,SAAS;EACxD,OAAO,IAAI,iBAAiB,GAAG;CACjC;CAEA,OAAc,eAAe,YAAwB;EACnD,MAAM,MAAM,wBAAwB,YAAY,SAAS;EACzD,OAAO,IAAI,iBAAiB,GAAG;CACjC;CAEA,oBAA2B;EACzB,OAAO,gBAAgB,cAAc,yBAAyB,KAAK,UAAU,SAAS,CAAe,CAAC,CAAC;CACzG;AACF;AA7CE,iBAAc,+BAA6D,CACzE,4BAA4B,OAC5B,4BAA4B,OAC9B;AACA,iBAAc,4CAA6E,CAAC;AAC5F,iBAAc,mBAAmB"}