@@ -4,6 +4,7 @@ import { expect } from "chai";
44
55describe ( "TokenEncryption" , ( ) => {
66 let keyPromise : Promise < Buffer > ;
7+ let keyPromisePKCS1 : Promise < Buffer > ;
78 async function createTokenEncryption ( ) {
89 return new TokenEncryption ( await keyPromise ) ;
910 }
@@ -24,6 +25,21 @@ describe("TokenEncryption", () => {
2425 } satisfies RSAKeyPairOptions < "pem" , "pem" > , ( err , _ , privateKey ) => {
2526 if ( err ) { reject ( err ) } else { resolve ( Buffer . from ( privateKey ) ) }
2627 } ) ) ;
28+ keyPromisePKCS1 = new Promise < Buffer > ( ( resolve , reject ) => generateKeyPair ( "rsa" , {
29+ // Deliberately shorter length to speed up test
30+ modulusLength : 2048 ,
31+ privateKeyEncoding : {
32+ type : "pkcs1" ,
33+ format : "pem" ,
34+ } ,
35+ publicKeyEncoding : {
36+ format : "pem" ,
37+ type : "pkcs1" ,
38+ }
39+ } satisfies RSAKeyPairOptions < "pem" , "pem" > , ( err , _ , privateKey ) => {
40+ if ( err ) { reject ( err ) } else { resolve ( Buffer . from ( privateKey ) ) }
41+ } ) ) ;
42+
2743 } , ) ;
2844 it ( 'should be able to encrypt a string into a single part' , async ( ) => {
2945 const tokenEncryption = await createTokenEncryption ( ) ;
@@ -45,4 +61,9 @@ describe("TokenEncryption", () => {
4561 const result = tokenEncryption . decrypt ( value ) ;
4662 expect ( result ) . to . equal ( plaintext ) ;
4763 } ) ;
64+ it ( 'should support pkcs1 format keys' , async ( ) => {
65+ const tokenEncryption = new TokenEncryption ( await keyPromisePKCS1 ) ;
66+ const result = tokenEncryption . encrypt ( 'hello world' ) ;
67+ expect ( result ) . to . have . lengthOf ( 1 ) ;
68+ } ) ;
4869} ) ;
0 commit comments