fix #4 exportPublicPem from privateKeyPem when using forge
This commit is contained in:
parent
ce365e9248
commit
3cda5ffaf8
|
@ -70,27 +70,8 @@ var extrac = module.exports = {
|
||||||
//
|
//
|
||||||
, _forgeImportJwk: require('./rsa-forge')._forgeImportJwk
|
, _forgeImportJwk: require('./rsa-forge')._forgeImportJwk
|
||||||
, _forgeImportPublicJwk: require('./rsa-forge')._forgeImportPublicJwk
|
, _forgeImportPublicJwk: require('./rsa-forge')._forgeImportPublicJwk
|
||||||
, _forgeImportPem: function (keypair) {
|
, _forgeImportPem: require('./rsa-forge')._forgeImportPem
|
||||||
if (!keypair._forge && keypair.privateKeyPem) {
|
, _forgeImportPublicPem: require('./rsa-forge')._forgeImportPublicPem
|
||||||
keypair._forge = forge.pki.privateKeyFromPem(keypair.privateKeyPem);
|
|
||||||
}
|
|
||||||
keypair._forge.toJSON = notToJson;
|
|
||||||
|
|
||||||
extrac._forgeImportPublicPem(keypair);
|
|
||||||
}
|
|
||||||
, _forgeImportPublicPem: function (keypair) {
|
|
||||||
if (keypair._forgePublic) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keypair._forge) {
|
|
||||||
keypair._forgePublic = forge.pki.rsa.setPublicKey(keypair._forge.n, keypair._forge.e);
|
|
||||||
}
|
|
||||||
else if (keypair.publicKeyPem) {
|
|
||||||
keypair._forgePublic = keypair._forgePublic || forge.pki.publicKeyFromPem(keypair.publicKeyPem);
|
|
||||||
}
|
|
||||||
keypair._forgePublic.toJSON = notToJson;
|
|
||||||
}
|
|
||||||
, importForge: function (keypair) {
|
, importForge: function (keypair) {
|
||||||
extrac._forgeImportJwk(keypair);
|
extrac._forgeImportJwk(keypair);
|
||||||
if (keypair.privateKeyPem) {
|
if (keypair.privateKeyPem) {
|
||||||
|
|
|
@ -117,6 +117,27 @@ var forgec = module.exports = {
|
||||||
}
|
}
|
||||||
keypair._forgePublic.toJSON = notToJson;
|
keypair._forgePublic.toJSON = notToJson;
|
||||||
}
|
}
|
||||||
|
, _forgeImportPem: function (keypair) {
|
||||||
|
if (!keypair._forge && keypair.privateKeyPem) {
|
||||||
|
keypair._forge = forge.pki.privateKeyFromPem(keypair.privateKeyPem);
|
||||||
|
}
|
||||||
|
keypair._forge.toJSON = notToJson;
|
||||||
|
|
||||||
|
forgec._forgeImportPublicPem(keypair);
|
||||||
|
}
|
||||||
|
, _forgeImportPublicPem: function (keypair) {
|
||||||
|
if (keypair._forgePublic) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keypair._forge) {
|
||||||
|
keypair._forgePublic = forge.pki.rsa.setPublicKey(keypair._forge.n, keypair._forge.e);
|
||||||
|
}
|
||||||
|
else if (keypair.publicKeyPem) {
|
||||||
|
keypair._forgePublic = keypair._forgePublic || forge.pki.publicKeyFromPem(keypair.publicKeyPem);
|
||||||
|
}
|
||||||
|
keypair._forgePublic.toJSON = notToJson;
|
||||||
|
}
|
||||||
, import: function (keypair) {
|
, import: function (keypair) {
|
||||||
// no-op since this must be done anyway in extra
|
// no-op since this must be done anyway in extra
|
||||||
return keypair;
|
return keypair;
|
||||||
|
@ -153,11 +174,19 @@ var forgec = module.exports = {
|
||||||
forgec._forgeImportPublicJwk(keypair);
|
forgec._forgeImportPublicJwk(keypair);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keypair._forge) {
|
if (!keypair._forge) {
|
||||||
|
if (keypair.privateKeyPem) {
|
||||||
|
forgec._forgeImportPem(keypair);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (keypair.publicKeyPem) {
|
||||||
|
return keypair.publicKeyPem;
|
||||||
|
}
|
||||||
|
if (keypair._forge || keypair._forgePublic) {
|
||||||
return forge.pki.publicKeyToPem(keypair._forgePublic || keypair._forge);
|
return forge.pki.publicKeyToPem(keypair._forgePublic || keypair._forge);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error("None of publicKeyPem, _forge, publicKeyJwk, privateKeyPem, or privateKeyJwk found. No way to export public key PEM");
|
throw new Error("None of publicKeyPem, _forge, _forgePublic, publicKeyJwk, privateKeyPem, or privateKeyJwk found. No way to export public key PEM");
|
||||||
}
|
}
|
||||||
//, exportPrivateKeyJwk: NOT IMPLEMENTED HERE
|
//, exportPrivateKeyJwk: NOT IMPLEMENTED HERE
|
||||||
//, exportPublicKeyJwk: NOT IMPLEMENTED HERE
|
//, exportPublicKeyJwk: NOT IMPLEMENTED HERE
|
||||||
|
|
Loading…
Reference in New Issue