34 lines
		
	
	
		
			591 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			591 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | var Enc = require('@root/encoding/base64'); | ||
|  | var PEM = module.exports; | ||
|  | 
 | ||
|  | PEM.packBlock = function(opts) { | ||
|  | 	// TODO allow for headers?
 | ||
|  | 	return ( | ||
|  | 		'-----BEGIN ' + | ||
|  | 		opts.type + | ||
|  | 		'-----\n' + | ||
|  | 		Enc.bufToBase64(opts.bytes) | ||
|  | 			.match(/.{1,64}/g) | ||
|  | 			.join('\n') + | ||
|  | 		'\n' + | ||
|  | 		'-----END ' + | ||
|  | 		opts.type + | ||
|  | 		'-----' | ||
|  | 	); | ||
|  | }; | ||
|  | 
 | ||
|  | // don't replace the full parseBlock, if it exists
 | ||
|  | PEM.parseBlock = | ||
|  | 	PEM.parseBlock || | ||
|  | 	function(str) { | ||
|  | 		var der = str | ||
|  | 			.split(/\n/) | ||
|  | 			.filter(function(line) { | ||
|  | 				return !/-----/.test(line); | ||
|  | 			}) | ||
|  | 			.join(''); | ||
|  | 		return { bytes: Enc.base64ToBuf(der) }; | ||
|  | 	}; |