Quellcode durchsuchen

add PEM parser / packer

tags/v1.0.0
AJ ONeal vor 1 Jahr
Ursprung
Commit
6b3f1cb6a1
2 geänderte Dateien mit 34 neuen und 0 gelöschten Zeilen
  1. +13
    -0
      lib/pem-packer.js
  2. +21
    -0
      lib/pem-parser.js

+ 13
- 0
lib/pem-packer.js Datei anzeigen

@@ -0,0 +1,13 @@
'use strict';

var PEM = module.exports;
var Enc = require('./encoding.js');

PEM.packBlock = function (opts) {
var n = opts.lineLength || 64;
var re = new RegExp('.{1,' + n + '}', 'g');
return '-----BEGIN ' + opts.type + '-----\n'
+ Enc.bufToBase64(opts.bytes).match(re).join('\n') + '\n'
+ '-----END ' + opts.type + '-----'
;
};

+ 21
- 0
lib/pem-parser.js Datei anzeigen

@@ -0,0 +1,21 @@
'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('')) };
};

Laden…
Abbrechen
Speichern