Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/jwk-to-pem/src/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
var asn1 = require('asn1.js');
var b64ToBn = require('./b64-to-bn');
var PublicKeyInfo = require('./asn1/public-key-info'),
PrivateKeyInfo = require('./asn1/private-key-info'),
Version = require('./asn1/version');
var RSAPrivateKey = asn1.define('RSAPrivateKey', /* @this */ function() {
this.seq().obj(
this.key('version').use(Version),
this.key('modulus').int(),
this.key('publicExponent').int(),
this.key('privateExponent').int(),
this.key('prime1').int(),
this.key('prime2').int(),
this.key('exponent1').int(),
this.key('exponent2').int(),
this.key('coefficient').int()
);
});
var RSAPublicKey = asn1.define('RSAPublicKey', /* @this */ function() {
this.seq().obj(
this.key('modulus').int(),
this.key('publicExponent').int()
);
});
var algorithm = {
algorithm: [1, 2, 840, 113549, 1, 1, 1],
parameters: [5, 0]
};
function rsaJwkToBuffer(jwk, opts) {
if ('string' !== typeof jwk.e) {
throw new TypeError('Expected "jwk.e" to be a String');
}
if ('string' !== typeof jwk.n) {
throw new TypeError('Expected "jwk.n" to be a String');
}
if (opts.private) {
if ('string' !== typeof jwk.d) {
throw new TypeError('Expected "jwk.d" to be a String');
}
if ('string' !== typeof jwk.p) {
throw new TypeError('Expected "jwk.p" to be a String');
}
if ('string' !== typeof jwk.q) {
throw new TypeError('Expected "jwk.q" to be a String');
}
if ('string' !== typeof jwk.dp) {
throw new TypeError('Expected "jwk.dp" to be a String');
}
if ('string' !== typeof jwk.dq) {
throw new TypeError('Expected "jwk.dq" to be a String');
}
if ('string' !== typeof jwk.qi) {
throw new TypeError('Expected "jwk.qi" to be a String');
}
}
var pem;
if (opts.private) {
pem = PrivateKeyInfo.encode({
version: 0,
privateKeyAlgorithm: algorithm,
privateKey: RSAPrivateKey.encode({
version: 0,
modulus: b64ToBn(jwk.n, false),
publicExponent: b64ToBn(jwk.e, false),
privateExponent: b64ToBn(jwk.d, true),
prime1: b64ToBn(jwk.p, true),
prime2: b64ToBn(jwk.q, true),
exponent1: b64ToBn(jwk.dp, true),
exponent2: b64ToBn(jwk.dq, true),
coefficient: b64ToBn(jwk.qi, true)
}, 'der')
}, 'pem', {
label: 'PRIVATE KEY'
});
} else {
pem = PublicKeyInfo.encode({
algorithm: algorithm,
PublicKey: {
unused: 0,
data: RSAPublicKey.encode({
modulus: b64ToBn(jwk.n, false),
publicExponent: b64ToBn(jwk.e, false)
}, 'der')
}
}, 'pem', {
label: 'PUBLIC KEY'
});
}
// This is in an if incase asn1.js adds a trailing \n
// istanbul ignore else
if ('\n' !== pem.slice(-1)) {
pem += '\n';
}
return pem;
}
module.exports = rsaJwkToBuffer;
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.1177 ]-- |