| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 | | 'use strict'; |  |   |  | // Helper |  | function reverse(map) { |  |   const res = {}; |  |   |  |   Object.keys(map).forEach(function(key) { |  |     // Convert key to integer if it is stringified |  |     if ((key | 0) == key) |  |       key = key | 0; |  |   |  |     const value = map[key]; |  |     res[value] = key; |  |   }); |  |   |  |   return res; |  | } |  |   |  | exports.tagClass = { |  |   0: 'universal', |  |   1: 'application', |  |   2: 'context', |  |   3: 'private' |  | }; |  | exports.tagClassByName = reverse(exports.tagClass); |  |   |  | exports.tag = { |  |   0x00: 'end', |  |   0x01: 'bool', |  |   0x02: 'int', |  |   0x03: 'bitstr', |  |   0x04: 'octstr', |  |   0x05: 'null_', |  |   0x06: 'objid', |  |   0x07: 'objDesc', |  |   0x08: 'external', |  |   0x09: 'real', |  |   0x0a: 'enum', |  |   0x0b: 'embed', |  |   0x0c: 'utf8str', |  |   0x0d: 'relativeOid', |  |   0x10: 'seq', |  |   0x11: 'set', |  |   0x12: 'numstr', |  |   0x13: 'printstr', |  |   0x14: 't61str', |  |   0x15: 'videostr', |  |   0x16: 'ia5str', |  |   0x17: 'utctime', |  |   0x18: 'gentime', |  |   0x19: 'graphstr', |  |   0x1a: 'iso646str', |  |   0x1b: 'genstr', |  |   0x1c: 'unistr', |  |   0x1d: 'charstr', |  |   0x1e: 'bmpstr' |  | }; |  | exports.tagByName = reverse(exports.tag); | 
 |