@@ -8,6 +8,7 @@ const asn1 = require('./asn1')
88const computePrimes = require ( './rsa_primes' )
99const { OKP_CURVES , EC_CURVES } = require ( './consts' )
1010
11+ const BN = asn1 . bignum
1112const oidHexToCurve = new Map ( [
1213 [ '06082a8648ce3d030107' , 'P-256' ] ,
1314 [ '06052b8104000a' , secp256k1 ] ,
@@ -212,23 +213,23 @@ const jwkToPem = {
212213
213214 return RSAPrivateKey . encode ( {
214215 version : 0 ,
215- n : base64url . decodeToBuffer ( jwk . n ) ,
216- e : base64url . decodeToBuffer ( jwk . e ) ,
217- d : base64url . decodeToBuffer ( jwk . d ) ,
218- p : base64url . decodeToBuffer ( jwk . p ) ,
219- q : base64url . decodeToBuffer ( jwk . q ) ,
220- dp : base64url . decodeToBuffer ( jwk . dp ) ,
221- dq : base64url . decodeToBuffer ( jwk . dq ) ,
222- qi : base64url . decodeToBuffer ( jwk . qi )
216+ n : new BN ( base64url . decodeToBuffer ( jwk . n ) ) ,
217+ e : new BN ( base64url . decodeToBuffer ( jwk . e ) ) ,
218+ d : new BN ( base64url . decodeToBuffer ( jwk . d ) ) ,
219+ p : new BN ( base64url . decodeToBuffer ( jwk . p ) ) ,
220+ q : new BN ( base64url . decodeToBuffer ( jwk . q ) ) ,
221+ dp : new BN ( base64url . decodeToBuffer ( jwk . dp ) ) ,
222+ dq : new BN ( base64url . decodeToBuffer ( jwk . dq ) ) ,
223+ qi : new BN ( base64url . decodeToBuffer ( jwk . qi ) )
223224 } , 'pem' , { label : 'RSA PRIVATE KEY' } )
224225 } ,
225226 public ( jwk ) {
226227 const RSAPublicKey = asn1 . get ( 'RSAPublicKey' )
227228
228229 return RSAPublicKey . encode ( {
229230 version : 0 ,
230- n : base64url . decodeToBuffer ( jwk . n ) ,
231- e : base64url . decodeToBuffer ( jwk . e )
231+ n : new BN ( base64url . decodeToBuffer ( jwk . n ) ) ,
232+ e : new BN ( base64url . decodeToBuffer ( jwk . e ) )
232233 } , 'pem' , { label : 'RSA PUBLIC KEY' } )
233234 }
234235 } ,
0 commit comments