37 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| var PEM = require('../');
 | |
| //console.log(PEM);
 | |
| 
 | |
| // "Hello, 世界!";
 | |
| var contents = 'SGVs\nbG8sIOS4\nlueVjCE=';
 | |
| var pem = '-----BEGIN Type-----\n' + contents + '\n-----END Type-----\n';
 | |
| var block = PEM.parseBlock(pem);
 | |
| 
 | |
| if (14 !== block.bytes.byteLength) {
 | |
| 	throw new Error('should be 14 bytes');
 | |
| }
 | |
| 
 | |
| if (0x48 !== block.bytes[0]) {
 | |
| 	throw new Error('first byte should be 0x48 ("H")');
 | |
| }
 | |
| 
 | |
| if (0x8c !== block.bytes[12]) {
 | |
| 	throw new Error('13th byte should be 0x8c (3rd byte of "界")');
 | |
| }
 | |
| 
 | |
| console.info("PASS: decodes 'bytes' field correctly");
 | |
| 
 | |
| var pem2 =
 | |
| 	'-----BEGIN Type-----\n' +
 | |
| 	contents.replace(/\n/g, '') +
 | |
| 	'\n-----END Type-----';
 | |
| 
 | |
| block.type = 'Type';
 | |
| if (pem2 !== PEM.packBlock(block)) {
 | |
| 	console.debug(PEM.packBlock(block));
 | |
| 	throw new Error('should pack PEM correctly');
 | |
| }
 | |
| 
 | |
| console.info("PASS: encodes 'bytes' and 'type' fields correctly");
 |