@credo-ts/core
Version:
<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1
1 lines • 3.16 kB
Source Map (JSON)
{"version":3,"file":"RsaPublicJwk.mjs","names":[],"sources":["../../../../../../src/modules/kms/jwk/kty/rsa/RsaPublicJwk.ts"],"sourcesContent":["import { TypedArrayEncoder } from '../../../../../utils'\nimport { KeyManagementError } from '../../../error/KeyManagementError'\nimport type { KnownJwaKeyAgreementAlgorithm, KnownJwaSignatureAlgorithm } from '../../jwa'\nimport type { PublicJwkType } from '../PublicJwk'\nimport type { KmsJwkPublicRsa } from './rsaJwk'\nimport { rsaPublicJwkToPublicKey, rsaPublicKeyToPublicJwk } from './rsaPublicKey'\n\nexport class RsaPublicJwk implements PublicJwkType<KmsJwkPublicRsa> {\n public static supportedEncryptionKeyAgreementAlgorithms: KnownJwaKeyAgreementAlgorithm[] = []\n public static supportedSignatureAlgorithms: KnownJwaSignatureAlgorithm[] = [\n 'PS256',\n 'RS256',\n 'RS384',\n 'PS384',\n 'RS512',\n 'PS512',\n ]\n public static multicodecPrefix = 4613\n\n public multicodecPrefix = RsaPublicJwk.multicodecPrefix\n public supportedEncryptionKeyAgreementAlgorithms = RsaPublicJwk.supportedEncryptionKeyAgreementAlgorithms\n\n public get supportedSignatureAlgorithms() {\n const keyBits = TypedArrayEncoder.fromBase64Url(this.jwk.n).length * 8\n\n // RSA needs minimum bit lengths for each algorithm\n const minBits2048 = ['PS256', 'RS256'] satisfies KnownJwaSignatureAlgorithm[]\n const minBits3072 = [...minBits2048, 'RS384', 'PS384'] satisfies KnownJwaSignatureAlgorithm[]\n const minBits4096 = [...minBits3072, 'RS512', 'PS512'] satisfies KnownJwaSignatureAlgorithm[]\n\n return keyBits >= 4096 ? minBits4096 : keyBits >= 3072 ? minBits3072 : keyBits >= 2048 ? minBits2048 : []\n }\n\n public constructor(public readonly jwk: KmsJwkPublicRsa) {}\n\n public get publicKey() {\n return {\n kty: this.jwk.kty,\n ...rsaPublicJwkToPublicKey(this.jwk),\n }\n }\n\n /**\n * Not supported for RSA\n */\n public get compressedPublicKey() {\n return null\n }\n\n public get multicodec(): Uint8Array {\n throw new KeyManagementError('multicodec not supported for RsaPublicJwk')\n }\n\n public static fromPublicKey(publicKey: { modulus: Uint8Array; exponent: Uint8Array }) {\n return new RsaPublicJwk(rsaPublicKeyToPublicJwk(publicKey))\n }\n\n public static fromMulticodec(_multicodec: Uint8Array): RsaPublicJwk {\n throw new KeyManagementError('fromMulticodec not supported for RsaPublicJwk')\n }\n}\n"],"mappings":";;;;;;;;AAOA,IAAa,eAAb,MAAa,aAAuD;CAelE,IAAW,+BAA+B;EACxC,MAAM,UAAU,kBAAkB,cAAc,KAAK,IAAI,EAAE,CAAC,SAAS;EAGrE,MAAM,cAAc,CAAC,SAAS,QAAQ;EACtC,MAAM,cAAc;GAAC,GAAG;GAAa;GAAS;GAAQ;EACtD,MAAM,cAAc;GAAC,GAAG;GAAa;GAAS;GAAQ;AAEtD,SAAO,WAAW,OAAO,cAAc,WAAW,OAAO,cAAc,WAAW,OAAO,cAAc,EAAE;;CAG3G,AAAO,YAAY,AAAgB,KAAsB;EAAtB;OAd5B,mBAAmB,aAAa;OAChC,4CAA4C,aAAa;;CAehE,IAAW,YAAY;AACrB,SAAO;GACL,KAAK,KAAK,IAAI;GACd,GAAG,wBAAwB,KAAK,IAAI;GACrC;;;;;CAMH,IAAW,sBAAsB;AAC/B,SAAO;;CAGT,IAAW,aAAyB;AAClC,QAAM,IAAI,mBAAmB,4CAA4C;;CAG3E,OAAc,cAAc,WAA0D;AACpF,SAAO,IAAI,aAAa,wBAAwB,UAAU,CAAC;;CAG7D,OAAc,eAAe,aAAuC;AAClE,QAAM,IAAI,mBAAmB,gDAAgD;;;aAlDjE,4CAA6E,EAAE;aAC/E,+BAA6D;CACzE;CACA;CACA;CACA;CACA;CACA;CACD;aACa,mBAAmB"}