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.
		
		
		
		
		
			
		
			
				
					51 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					51 lines
				
				1.2 KiB
			| 
											3 years ago
										 | node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS. | ||
|  | Currently BER encoding is supported; at some point I'll likely have to do DER. | ||
|  | 
 | ||
|  | ## Usage
 | ||
|  | 
 | ||
|  | Mostly, if you're *actually* needing to read and write ASN.1, you probably don't | ||
|  | need this readme to explain what and why.  If you have no idea what ASN.1 is, | ||
|  | see this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc | ||
|  | 
 | ||
|  | The source is pretty much self-explanatory, and has read/write methods for the | ||
|  | common types out there. | ||
|  | 
 | ||
|  | ### Decoding
 | ||
|  | 
 | ||
|  | The following reads an ASN.1 sequence with a boolean. | ||
|  | 
 | ||
|  |     var Ber = require('asn1').Ber; | ||
|  | 
 | ||
|  |     var reader = new Ber.Reader(Buffer.from([0x30, 0x03, 0x01, 0x01, 0xff])); | ||
|  | 
 | ||
|  |     reader.readSequence(); | ||
|  |     console.log('Sequence len: ' + reader.length); | ||
|  |     if (reader.peek() === Ber.Boolean) | ||
|  |       console.log(reader.readBoolean()); | ||
|  | 
 | ||
|  | ### Encoding
 | ||
|  | 
 | ||
|  | The following generates the same payload as above. | ||
|  | 
 | ||
|  |     var Ber = require('asn1').Ber; | ||
|  | 
 | ||
|  |     var writer = new Ber.Writer(); | ||
|  | 
 | ||
|  |     writer.startSequence(); | ||
|  |     writer.writeBoolean(true); | ||
|  |     writer.endSequence(); | ||
|  | 
 | ||
|  |     console.log(writer.buffer); | ||
|  | 
 | ||
|  | ## Installation
 | ||
|  | 
 | ||
|  |     npm install asn1 | ||
|  | 
 | ||
|  | ## License
 | ||
|  | 
 | ||
|  | MIT. | ||
|  | 
 | ||
|  | ## Bugs
 | ||
|  | 
 | ||
|  | See <https://github.com/joyent/node-asn1/issues>. |