22 lines
528 B
JavaScript
22 lines
528 B
JavaScript
|
'use strict';
|
||
|
|
||
|
var PEM = module.exports;
|
||
|
var Enc = require('./encoding.js');
|
||
|
|
||
|
PEM.parseBlock = function pemToDer(pem) {
|
||
|
var lines = pem.trim().split(/\n/);
|
||
|
var end = lines.length - 1;
|
||
|
var head = lines[0].match(/-----BEGIN (.*)-----/);
|
||
|
var foot = lines[end].match(/-----END (.*)-----/);
|
||
|
|
||
|
if (head) {
|
||
|
lines = lines.slice(1, end);
|
||
|
head = head[1];
|
||
|
if (head !== foot[1]) {
|
||
|
throw new Error("headers and footers do not match");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return { type: head, bytes: Enc.base64ToBuf(lines.join('')) };
|
||
|
};
|