You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					24 lines
				
				614 B
			
		
		
			
		
	
	
					24 lines
				
				614 B
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | const inherits = require('inherits'); | ||
|  | 
 | ||
|  | const DEREncoder = require('./der'); | ||
|  | 
 | ||
|  | function PEMEncoder(entity) { | ||
|  |   DEREncoder.call(this, entity); | ||
|  |   this.enc = 'pem'; | ||
|  | } | ||
|  | inherits(PEMEncoder, DEREncoder); | ||
|  | module.exports = PEMEncoder; | ||
|  | 
 | ||
|  | PEMEncoder.prototype.encode = function encode(data, options) { | ||
|  |   const buf = DEREncoder.prototype.encode.call(this, data); | ||
|  | 
 | ||
|  |   const p = buf.toString('base64'); | ||
|  |   const out = [ '-----BEGIN ' + options.label + '-----' ]; | ||
|  |   for (let i = 0; i < p.length; i += 64) | ||
|  |     out.push(p.slice(i, i + 64)); | ||
|  |   out.push('-----END ' + options.label + '-----'); | ||
|  |   return out.join('\n'); | ||
|  | }; |