47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var RSA = require('../').RSA;
|
||
|
|
||
|
RSA.generateKeypair(null, function (err, keys) {
|
||
|
if (!keys || !keys.privateKeyJwk) {
|
||
|
throw new Error("Expected privateKeyJwk, but it is missing");
|
||
|
}
|
||
|
|
||
|
if (
|
||
|
keys.publicKeyJwk
|
||
|
|| keys.privateKeyPem
|
||
|
|| keys.publicKeyPem
|
||
|
|| keys.thumbprint
|
||
|
|| keys._ursa
|
||
|
|| keys._forge
|
||
|
) {
|
||
|
console.error(Object.keys(keys));
|
||
|
throw new Error("Got unexpected keys");
|
||
|
}
|
||
|
|
||
|
var options = {
|
||
|
public: true // export public keys
|
||
|
, pem: true // export pems
|
||
|
, jwk: false // export jwks
|
||
|
, internal: true // preserve internal intermediate formats (_ursa, _forge)
|
||
|
//, thumbprint: true // JWK sha256 thumbprint
|
||
|
, bitlen: 2048
|
||
|
, exp: 65537
|
||
|
};
|
||
|
RSA.generateKeypair(options, function (err, keys) {
|
||
|
if (
|
||
|
(keys.publicKeyJwk && !keys.thumbprint)
|
||
|
|| !keys.privateKeyPem
|
||
|
|| !keys.publicKeyPem
|
||
|
//|| !keys.thumbprint
|
||
|
|| !(keys._ursa || keys._forge)
|
||
|
) {
|
||
|
console.error(Object.keys(keys));
|
||
|
throw new Error("Missing expected keys");
|
||
|
}
|
||
|
|
||
|
console.log('All is well!');
|
||
|
});
|
||
|
|
||
|
});
|