@@ -86,9 +86,12 @@ Deno.test("RSA - Import Private Key (PKCS8)", () => {
8686 const e = 65537n ;
8787 const d =
8888 675889233296421535959584534071325460876697008626327098961835826056666939623318583538247287416696388446697983317835135300723690022117970081796395234018582764098060974026823771341271141202058228435371968592820841644512299636165137501280011132877728106486853881053264668544941537620562475421678333757690909726581512579603702598150422421865490996288244127528474781858718770957987603681469839575489191876915053252047160475432784849252000744700939988583801783684487872676506769116621572018367654125765915215495461243190782913460732307866572233187464540482209385816659449697777403383908159076257721991916366849321145825505n ;
89+ const qi =
90+ 74289828655732991195558689791424564707132679819891037249694826356870666658448134417270855397604232230569020096065966539928979441113025455296436655960522783579897346034371763410999278044050901737497683356751868229820180356905837023964589114523481066796348442538273820591008174072287844578937802915493303718997n ;
8991 assertEquals ( key . e , e ) ;
9092 assertEquals ( key . n , n ) ;
9193 assertEquals ( key . d , d ) ;
94+ assertEquals ( key . qi , qi ) ;
9295 assertEquals ( key . length , 256 ) ;
9396
9497 // Testing key with trailing newline
@@ -97,3 +100,47 @@ Deno.test("RSA - Import Private Key (PKCS8)", () => {
97100 assertEquals ( key2 . n , n ) ;
98101 assertEquals ( key2 . d , d ) ;
99102} ) ;
103+
104+ Deno . test ( "RSA - Import RSA Private Key (PEM)" , ( ) => {
105+ const raw = `-----BEGIN RSA PRIVATE KEY-----
106+ MIIEowIBAAKCAQEAlWeqIOFxsSwBx2cB5tuwLVDD+vvMBapZb7qdE69FdtWL8cz8
107+ Vo2r9vpiziDPLqWu6c73KXORIgh+fHXp5iybMoKqNK9gfFocx2PqwiFiX1dmEmcY
108+ 86b0gB38yyaw6YV4KoJwjcRI0bLsgmAIhiyDCtIbmPdAOTDDAK4FM5MfJDHf36vx
109+ nfV7eYiPhezZcpSfmq5yXN9OqYBhytzTdhgV9b50rggdvNElF5GX0wXspMg2emKw
110+ KtF6ZwjVfSch6i0OBJoxIXNslKN2jUclzTAXXWcdxwixXMcGQlQKdLUJAHexK7FA
111+ +T+Q0fESCd365JUlFGQehJA8PBuyi1ilXDUNhQIDAQABAoIBAAVapJjkOLNj85YJ
112+ Aw3aH8SRS/ioVzMjxpaPrjXd9oQP7+GE2k0iwL/Le3N4xFv0VuHs8g64+Ww/YthZ
113+ zxLvKcpOru6k6J+u3gWnjGqTu4dVpeQxGs6Oft1sKwU/uCAiPEBvvLyuhPqI1Ntw
114+ 5BVPg+Gvzl/gtRs85rFqoGfs/4pyi2jMEuq7FkTlJYANceczUqKgt0iRZZVV13sO
115+ VMgDU7AY70OSdjJm/YPAhGgDp/sTJMTZcE5Q6LftPZxSfb7wFoq1JGXbGDZ5WPs6
116+ w0KD0+wJuY7Skx5jCNSn1jX5s58o4kZbXZ1n3fAYNB+1bcK4VjFhrPEJAE1ABPnw
117+ t6kteOECgYEAzRS5PHjMCupKDKDZmL7EQH9WOl3Xfi1DfkyapGYlBMkmisvDS4u9
118+ SAW8yu8yqm2Fwz1BQmzSRYTpZbijsG7Cj5MAY0dCX6F1c21HRPtrTNmHHLMGiXu4
119+ op2ca9MBxlyLyS9BzVSM5jYIEu/mZqxLHQshV500//N6NcFVtxP5bKUCgYEAuoAV
120+ cmAj+wMWB00kQwoHKbEzux8s7mPdrWmDoUSRQuxzW8yW1XVbH527UB/xKXvMkpPd
121+ RshWdXUia8XrXC4R7EtkzK5GFJmOMWyZ6syU4e3IFgT/Q7lmL0icT6KEqRcG4di9
122+ dr0NgA6cMKAGTC5AGoGhpWPTGc/NtV2PipDi52ECgYEAkOPZU04M6pFIq89grLfq
123+ s57Dbw0p2G1mR+8bOpcoBE+ROXJokhEyM5ZKIh4I77vdS2kVmDaGALO8qi9fBqHa
124+ N9Gl7n5D+Ih8EIbeWXBACNWOzcn2DmAovEsaXlt/34M3B3apyMW5nlQCNE7luxhz
125+ IRvh/KKG9WYxq5TiWCx2hjkCgYAyzr4JAMQMmBSiPJPKZ6r34ryTF7Un5LD5kys2
126+ /fUM5FmxApV85ZHDlTb4ZxtOD9n1fK7ln6JeMWEFN1AdNrfPReLaGAgjiInCUTHF
127+ U6KjwiGmTgo0qwd5jjB3SXEWl51aXa+P74UEA/btEEtm6ZqxHeupoP5bo88Iv8ph
128+ F4OZQQKBgGnKz25Q/hvwwJk1Ld7WcBi3SL8OAXg8gr88ZCcdWdOKzGR+9RBMgQzz
129+ AQcmTT7Y6U7s4AGRO9TIg9wVS8Y/x3ahI1FUEo7jlMoiSnuRohhduV4Xt/9VWsLq
130+ wnR367+l5s3vpUQx2bhDnFdRazPs5ykF5ZKT2y95VNgqYBhRSpRV
131+ -----END RSA PRIVATE KEY-----` ;
132+ const key = RSA . importKey ( raw ) ;
133+ const n =
134+ 18860626341786571281488823024986320858450594409825894653370543036132043241142573896042059032222842653925236802058387508300831766517210547599910735316414515960981281788934868325895562621846910598716519620622800765932541992515497122274302135166053720433521886017494719475895327062855822141735315456613329660043977602681873027347568355824008701177948209784908095092287571982104446342906805480285143028837509076748632094733769028381835899214426100089454654381383340292544225149266603150745375542089871264998183586873913491071542891188124185517417658034185267204900711933432911892469528812455677450346478816563776340692357n ;
135+
136+ const e = 65537n ;
137+ const d =
138+ 675889233296421535959584534071325460876697008626327098961835826056666939623318583538247287416696388446697983317835135300723690022117970081796395234018582764098060974026823771341271141202058228435371968592820841644512299636165137501280011132877728106486853881053264668544941537620562475421678333757690909726581512579603702598150422421865490996288244127528474781858718770957987603681469839575489191876915053252047160475432784849252000744700939988583801783684487872676506769116621572018367654125765915215495461243190782913460732307866572233187464540482209385816659449697777403383908159076257721991916366849321145825505n ;
139+ const qi =
140+ 74289828655732991195558689791424564707132679819891037249694826356870666658448134417270855397604232230569020096065966539928979441113025455296436655960522783579897346034371763410999278044050901737497683356751868229820180356905837023964589114523481066796348442538273820591008174072287844578937802915493303718997n ;
141+ assertEquals ( key . e , e ) ;
142+ assertEquals ( key . n , n ) ;
143+ assertEquals ( key . d , d ) ;
144+ assertEquals ( key . qi , qi ) ;
145+ assertEquals ( key . length , 256 ) ;
146+ } ) ;
0 commit comments