Skip to content

Commit 0659a90

Browse files
committed
trimming pem
1 parent bfd055d commit 0659a90

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/NodeRSA.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ module.exports = (function() {
6161
* @param pem {string}
6262
*/
6363
NodeRSA.prototype.loadFromPEM = function(pem) {
64-
if (/^-----BEGIN RSA PRIVATE KEY-----\s([A-Za-z0-9+/=]+\s)+-----END RSA PRIVATE KEY-----\s*$/g.test(pem)) {
64+
if (/^\s*-----BEGIN RSA PRIVATE KEY-----\s([A-Za-z0-9+/=]+\s)+-----END RSA PRIVATE KEY-----\s*$/g.test(pem)) {
6565
this.$loadFromPrivatePEM(pem, 'base64');
66-
} else if (/^-----BEGIN PUBLIC KEY-----\s([A-Za-z0-9+/=]+\s)+-----END PUBLIC KEY-----\s*$/g.test(pem)) {
66+
} else if (/^\s*-----BEGIN PUBLIC KEY-----\s([A-Za-z0-9+/=]+\s)+-----END PUBLIC KEY-----\s*$/g.test(pem)) {
6767
this.$loadFromPublicPEM(pem, 'base64');
6868
} else
6969
throw Error('Invalid PEM format');

test/tests.js

+7-4
Original file line numberDiff line numberDiff line change
@@ -117,17 +117,20 @@ describe("NodeRSA", function(){
117117
"KY4kQIIx8JEBsAYzgyP2iy0CAwEAAQ==\n"+
118118
"-----END PUBLIC KEY-----";
119119

120+
var privateKeyPEMNotTrimmed = ' \n\n \n\n ' + privateKeyPEM + '\n \n \n\n ';
121+
var publicKeyPEMNotTrimmed = '\n\n\n\n ' + publicKeyPEM + '\n \n\n\n ';
122+
120123
describe("Good cases", function () {
121-
it(".loadFromPrivatePEM() should load private key from PEM string", function(){
122-
privateNodeRSA = new NodeRSA(privateKeyPEM);
124+
it(".loadFromPrivatePEM() should load private key from (not trimmed) PEM string", function(){
125+
privateNodeRSA = new NodeRSA(privateKeyPEMNotTrimmed);
123126
assert.instanceOf(privateNodeRSA.keyPair, Object);
124127
assert(privateNodeRSA.isPrivate());
125128
assert(privateNodeRSA.isPublic());
126129
assert(!privateNodeRSA.isPublic(true));
127130
});
128131

129-
it(".loadFromPublicPEM() should load public key from PEM string", function(){
130-
publicNodeRSA = new NodeRSA(publicKeyPEM);
132+
it(".loadFromPublicPEM() should load public key from (not trimmed) PEM string", function(){
133+
publicNodeRSA = new NodeRSA(publicKeyPEMNotTrimmed);
131134
assert.instanceOf(privateNodeRSA.keyPair, Object);
132135
assert(publicNodeRSA.isPublic());
133136
assert(publicNodeRSA.isPublic(true));

0 commit comments

Comments
 (0)