Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/sshpk/lib/formats/x509-pem.js')
-rw-r--r--node_modules/sshpk/lib/formats/x509-pem.js18
1 files changed, 14 insertions, 4 deletions
diff --git a/node_modules/sshpk/lib/formats/x509-pem.js b/node_modules/sshpk/lib/formats/x509-pem.js
index 56d78eb58..3155ef0b3 100644
--- a/node_modules/sshpk/lib/formats/x509-pem.js
+++ b/node_modules/sshpk/lib/formats/x509-pem.js
@@ -29,14 +29,24 @@ function read(buf, options) {
var lines = buf.trim().split(/[\r\n]+/g);
- var m = lines[0].match(/*JSSTYLED*/
- /[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/);
+ var m;
+ var si = -1;
+ while (!m && si < lines.length) {
+ m = lines[++si].match(/*JSSTYLED*/
+ /[-]+[ ]*BEGIN CERTIFICATE[ ]*[-]+/);
+ }
assert.ok(m, 'invalid PEM header');
- var m2 = lines[lines.length - 1].match(/*JSSTYLED*/
- /[-]+[ ]*END CERTIFICATE[ ]*[-]+/);
+ var m2;
+ var ei = lines.length;
+ while (!m2 && ei > 0) {
+ m2 = lines[--ei].match(/*JSSTYLED*/
+ /[-]+[ ]*END CERTIFICATE[ ]*[-]+/);
+ }
assert.ok(m2, 'invalid PEM footer');
+ lines = lines.slice(si, ei + 1);
+
var headers = {};
while (true) {
lines = lines.slice(1);