{"version":3,"sources":["security/key/private/rsa.ts"],"names":["forge","SecurityKeyPrivate","SecurityKeyPrivateRsa","constructor","reset","_forgePrivateKey","readForgeKeyPrivate","privateKey","sign","data","digest","Error","toLowerCase","md","sha1","create","update","util","decode64","toString","signature","Buffer","from","encode64"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,YAAlB;AAEA,SAAQC,kBAAR,QAAiC,gBAAjC;AAEA;AACA;AACA;;AACA,OAAO,MAAMC,qBAAN,SAAoCD,kBAApC,CAAuD;AAC7D;AACD;AACA;AAGCE,EAAAA,WAAW,GAAG;AACb;;AADa,8CAFsD,IAEtD;AAEb;AAED;AACD;AACA;;;AACQC,EAAAA,KAAK,GAAG;AACd,SAAKC,gBAAL,GAAwB,IAAxB;AACA;AAED;AACD;AACA;AACA;AACA;;;AACQC,EAAAA,mBAAmB,CAACC,UAAD,EAA6C;AACtE,SAAKH,KAAL;AAEA,SAAKC,gBAAL,GAAwBE,UAAxB;AACA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;;;AACQC,EAAAA,IAAI,CAACC,IAAD,EAAyBC,MAAzB,EAAyC;AACnD,UAAMH,UAAU,GAAG,KAAKF,gBAAxB;;AACA,QAAI,CAACE,UAAL,EAAiB;AAChB,YAAM,IAAII,KAAJ,CAAU,6BAAV,CAAN;AACA;;AAEDD,IAAAA,MAAM,GAAGA,MAAM,CAACE,WAAP,EAAT;;AACA,QAAIF,MAAM,KAAK,MAAf,EAAuB;AACtB,YAAM,IAAIC,KAAJ,CAAW,iCAAgCD,MAAO,EAAlD,CAAN;AACA;;AAED,UAAMG,EAAE,GAAGb,KAAK,CAACa,EAAN,CAASC,IAAT,CAAcC,MAAd,EAAX;AACAF,IAAAA,EAAE,CAACG,MAAH,CAAUhB,KAAK,CAACiB,IAAN,CAAWC,QAAX,CAAoBT,IAAI,CAACU,QAAL,CAAc,QAAd,CAApB,CAAV;AACA,UAAMC,SAAS,GAAIb,UAAD,CAAoBC,IAApB,CAAyBK,EAAzB,EAA6B,mBAA7B,CAAlB;AACA,WAAOQ,MAAM,CAACC,IAAP,CAAYtB,KAAK,CAACiB,IAAN,CAAWM,QAAX,CAAoBH,SAApB,CAAZ,EAA4C,QAA5C,CAAP;AACA;;AAlD4D","sourcesContent":["import forge from 'node-forge';\n\nimport {SecurityKeyPrivate} from '../private';\n\n/**\n * SecurityKeyPrivateRsa constructor.\n */\nexport class SecurityKeyPrivateRsa extends SecurityKeyPrivate {\n\t/**\n\t * Forge private key.\n\t */\n\tprotected _forgePrivateKey: Readonly<forge.pki.PrivateKey> | null = null;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Reset the internal state.\n\t */\n\tpublic reset() {\n\t\tthis._forgePrivateKey = null;\n\t}\n\n\t/**\n\t * Read a forge private key.\n\t *\n\t * @param privateKey Forge private key.\n\t */\n\tpublic readForgeKeyPrivate(privateKey: Readonly<forge.pki.PrivateKey>) {\n\t\tthis.reset();\n\n\t\tthis._forgePrivateKey = privateKey;\n\t}\n\n\t/**\n\t * Sign data.\n\t *\n\t * @param data Data to be signed.\n\t * @param digest Digest algorithm.\n\t * @returns The signature.\n\t */\n\tpublic sign(data: Readonly<Buffer>, digest: string) {\n\t\tconst privateKey = this._forgePrivateKey;\n\t\tif (!privateKey) {\n\t\t\tthrow new Error('Private key not initialized');\n\t\t}\n\n\t\tdigest = digest.toLowerCase();\n\t\tif (digest !== 'sha1') {\n\t\t\tthrow new Error(`Unsupported digest algorithm: ${digest}`);\n\t\t}\n\n\t\tconst md = forge.md.sha1.create();\n\t\tmd.update(forge.util.decode64(data.toString('base64')));\n\t\tconst signature = (privateKey as any).sign(md, 'RSASSA-PKCS1-V1_5');\n\t\treturn Buffer.from(forge.util.encode64(signature), 'base64');\n\t}\n}\n"],"file":"rsa.mjs","sourceRoot":"../../../../src"}