• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS.
2Currently BER encoding is supported; at some point I'll likely have to do DER.
3
4## Usage
5
6Mostly, if you're *actually* needing to read and write ASN.1, you probably don't
7need this readme to explain what and why.  If you have no idea what ASN.1 is,
8see this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc
9
10The source is pretty much self-explanatory, and has read/write methods for the
11common types out there.
12
13### Decoding
14
15The following reads an ASN.1 sequence with a boolean.
16
17    var Ber = require('asn1').Ber;
18
19    var reader = new Ber.Reader(Buffer.from([0x30, 0x03, 0x01, 0x01, 0xff]));
20
21    reader.readSequence();
22    console.log('Sequence len: ' + reader.length);
23    if (reader.peek() === Ber.Boolean)
24      console.log(reader.readBoolean());
25
26### Encoding
27
28The following generates the same payload as above.
29
30    var Ber = require('asn1').Ber;
31
32    var writer = new Ber.Writer();
33
34    writer.startSequence();
35    writer.writeBoolean(true);
36    writer.endSequence();
37
38    console.log(writer.buffer);
39
40## Installation
41
42    npm install asn1
43
44## License
45
46MIT.
47
48## Bugs
49
50See <https://github.com/joyent/node-asn1/issues>.
51