node-ikev2 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,316 @@
1
+ import { Attribute } from "./attribute";
2
+ /**
3
+ * Transform Substructure
4
+
5
+ 1 2 3
6
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
7
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8
+ ! 0 (last) or 3 ! RESERVED ! Transform Length !
9
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
10
+ !Transform Type ! RESERVED ! Transform ID !
11
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12
+ ! !
13
+ ~ Transform Attributes ~
14
+ ! !
15
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
16
+
17
+ Transform Substructure
18
+ */
19
+ /**
20
+ * Transform Type Values: \
21
+ RESERVED 0 \
22
+ Encryption Algorithm (ENCR) 1 (IKE and ESP) \
23
+ Pseudo-random Function (PRF) 2 (IKE) \
24
+ Integrity Algorithm (INTEG) 3 (IKE, AH, optional in ESP) \
25
+ Diffie-Hellman Group (D-H) 4 (IKE, optional in AH & ESP) \
26
+ Extended Sequence Numbers (ESN) 5 (AH and ESP)
27
+ */
28
+ export declare enum transformType {
29
+ Encryption_Algorithm_ENCR = 1,
30
+ Pseudo_Random_PRF = 2,
31
+ Integrity_Algorithm_INTEG = 3,
32
+ Diffie_Hellman_Group_DH = 4,
33
+ Extended_Sequence_Numbers_ESN = 5
34
+ }
35
+ /**
36
+ * For Transform Type 1 (Encryption Algorithm), defined Transform IDs are: \
37
+ RESERVED 0 \
38
+ ENCR_DES_IV64 1 \
39
+ ENCR_DES 2 \
40
+ ENCR_3DES 3 \
41
+ ENCR_RC5 4 \
42
+ ENCR_IDEA 5 \
43
+ ENCR_CAST 6 \
44
+ ENCR_BLOWFISH 7 \
45
+ ENCR_3IDEA 8 \
46
+ ENCR_DES_IV32 9 \
47
+ RESERVED 10 \
48
+ ENCR_NULL 11 \
49
+ ENCR_AES_CBC 12 \
50
+ ENCR_AES_CTR 13 \
51
+ ENCR_AES_CCM_8 14 \
52
+ ENCR_AES_CCM_12 15 \
53
+ ENCR_AES_CCM_16 16 \
54
+ RESERVED 17 \
55
+ AES_GCM_8_OCTET_ICV 18 \
56
+ AES_GCM_12_OCTET_ICV 19 \
57
+ AES_GCM_16_OCTET_ICV 20 \
58
+ ENCR_NULL_AUTH_AES_GMAC 21 \
59
+ RESERVED_FOR_IEEE_P1619_XTS_AES 22 \
60
+ ENCR_CAMELLIA_CBC 23 \
61
+ ENCR_CAMELLIA_CTR 24 \
62
+ ENCR_CAMELLIA_CCM_8_OCTET_ICV 25 \
63
+ ENCR_CAMELLIA_CCM_12_OCTET_ICV 26 \
64
+ ENCR_CAMELLIA_CCM_16_OCTET_ICV 27 \
65
+ ENCR_CHACHA20_POLY1305 28 \
66
+ ENCR_AES_CCM_8_IIV 29 \
67
+ ENCR_AES_CCM_16_IIV 30 \
68
+ ENCR_CHACHA20_POLY1305_IIV 31 \
69
+ ENCR_KUZNYECHIK_MGM_KTREE 32 \
70
+ ENCR_MAGMA_MGM_KTREE 33 \
71
+ ENCR_KUZNYECHIK_MGM_MAC_KTREE 34 \
72
+ ENCR_MAGMA_MGM_MAC_KTREE 35 \
73
+ 36-1023 Unassigned \
74
+ 1024-65535 Reserved for Private Use
75
+ */
76
+ export declare enum encrId {
77
+ ENCR_DES_IV64 = 1,// Deprecated by [RFC9395]
78
+ ENCR_DES = 2,// [RFC2405] - Deprecated by [RFC8247]
79
+ ENCR_3DES = 3,// [RFC2451]
80
+ ENCR_RC5 = 4,// [RFC2451] - Deprecated by [RFC9395]
81
+ ENCR_IDEA = 5,// [RFC2451] - Deprecated by [RFC9395]
82
+ ENCR_CAST = 6,// [RFC2451] - Deprecated by [RFC9395]
83
+ ENCR_BLOWFISH = 7,// [RFC2451] - Deprecated by [RFC9395]
84
+ ENCR_3IDEA = 8,// Deprecated by [RFC9395]
85
+ ENCR_DES_IV32 = 9,// Deprecated by [RFC9395]
86
+ ENCR_NULL = 11,// [RFC2410] - Not allowed for IKEv2
87
+ ENCR_AES_CBC = 12,// [RFC3602]
88
+ ENCR_AES_CTR = 13,// [RFC3686] [RFC5930]
89
+ ENCR_AES_CCM_8 = 14,// [RFC4309] [RFC5282]
90
+ ENCR_AES_CCM_12 = 15,// [RFC4309] [RFC5282]
91
+ ENCR_AES_CCM_16 = 16,// [RFC4309] [RFC5282]
92
+ ENCR_AES_GCM_8 = 18,// [RFC4106] [RFC5282] RFC[8247]
93
+ ENCR_AES_GCM_12 = 19,// [RFC4106] [RFC5282] RFC[8247]
94
+ ENCR_AES_GCM_16 = 20,// [RFC4106] [RFC5282] RFC[8247]
95
+ ENCR_NULL_AUTH_AES_GMAC = 21,// [RFC4543] - Not allowed for IKEv2
96
+ RESERVED_FOR_IEEE_P1619_XTS_AES = 22,// [Ball]
97
+ ENCR_CAMELLIA_CBC = 23,// [RFC5529]
98
+ ENCR_CAMELLIA_CTR = 24,// [RFC5529]
99
+ ENCR_CAMELLIA_CCM_8 = 25,// [RFC5529] RFC[8247]
100
+ ENCR_CAMELLIA_CCM_12 = 26,// [RFC5529] RFC[8247]
101
+ ENCR_CAMELLIA_CCM_16 = 27,// [RFC5529] RFC[8247]
102
+ ENCR_CHACHA20_POLY1305 = 28,// [RFC7634] [RFC8439]
103
+ ENCR_AES_CCM_8_IIV = 29,// [RFC8750] - Not allowed for IKEv2
104
+ ENCR_AES_GCM_16_IIV = 30,// [RFC8750] - Not allowed for IKEv2
105
+ ENCR_CHACHA20_POLY1305_IIV = 31,// [RFC8750] - Not allowed for IKEv2
106
+ ENCR_KUZNYECHIK_MGM_KTREE = 32,// [RFC9227]
107
+ ENCR_MAGMA_MGM_KTREE = 33,// [RFC9227]
108
+ ENCR_KUZNYECHIK_MGM_MAC_KTREE = 34,// [RFC9227] - Not allowed for IKEv2
109
+ ENCR_MAGMA_MGM_MAC_KTREE = 35
110
+ }
111
+ /**
112
+ * For Transform Type 2 (Pseudo-random Function), defined Transform IDs are: \
113
+ RESERVED 0 \
114
+ PRF_HMAC_MD5 1 \
115
+ PRF_HMAC_SHA1 2 \
116
+ PRF_HMAC_TIGER 3 \
117
+ PRF_AES128_XCBC 4 \
118
+ PRF_HMAC_SHA2_256 5 \
119
+ PRF_HMAC_SHA2_384 6 \
120
+ PRF_HMAC_SHA2_512 7 \
121
+ PRF_AES128_CMAC 8 \
122
+ PRF_HMAC_STREEBOG_512 9 \
123
+ 10-1023 Unassigned \
124
+ 1024-65535 Reserved for Private Use
125
+ */
126
+ export declare enum prfId {
127
+ PRF_HMAC_MD5 = 1,// [RFC2104] - Deprecated by [RFC8247]
128
+ PRF_HMAC_SHA1 = 2,// [RFC2104]
129
+ PRF_HMAC_TIGER = 3,// https://biham.cs.technion.ac.il/Reports/Tiger/tiger/tiger.html - Deprecated by [RFC9395]
130
+ PRF_AES128_XCBC = 4,// [RFC4434]
131
+ PRF_HMAC_SHA2_256 = 5,// [RFC4868]
132
+ PRF_HMAC_SHA2_384 = 6,// [RFC4868]
133
+ PRF_HMAC_SHA2_512 = 7,// [RFC4868]
134
+ PRF_AES128_CMAC = 8,// [RFC4615]
135
+ PRF_HMAC_STREEBOG_512 = 9
136
+ }
137
+ /**
138
+ * For Transform Type 3 (Integrity Algorithm), defined Transform IDs are: \
139
+ NONE 0 \
140
+ AUTH_HMAC_MD5_96 1 \
141
+ AUTH_HMAC_SHA1_96 2 \
142
+ AUTH_DES_MAC 3 \
143
+ AUTH_KPDK_MD5 4 \
144
+ AUTH_AES_XCBC_96 5 \
145
+ AUTH_HMAC_MD5_128 6 \
146
+ AUTH_HMAC_SHA1_160 7 \
147
+ AUTH_AES_CMAC_96 8 \
148
+ AUTH_AES_128_GMAC 9 \
149
+ AUTH_AES_192_GMAC 10 \
150
+ AUTH_AES_256_GMAC 11 \
151
+ AUTH_HMAC_SHA2_256_128 12 \
152
+ AUTH_HMAC_SHA2_384_192 13 \
153
+ AUTH_HMAC_SHA2_512_256 14 \
154
+ 15-1023 Unassigned \
155
+ 1024-65535 Reserved for Private Use
156
+ */
157
+ export declare enum integId {
158
+ NONE = 0,
159
+ AUTH_HMAC_MD5_96 = 1,// [RFC2403] - Deprecated by [RFC8247]
160
+ AUTH_HMAC_SHA1_96 = 2,// [RFC2404]
161
+ AUTH_DES_MAC = 3,// Deprecated by [RFC8247]
162
+ AUTH_KPDK_MD5 = 4,// Deprecated by [RFC8247]
163
+ AUTH_AES_XCBC_96 = 5,// [RFC3566]
164
+ AUTH_HMAC_MD5_128 = 6,// [RFC4595] - Deprecated by [RFC8247]
165
+ AUTH_HMAC_SHA1_160 = 7,// [RFC4595] - Deprecated by [RFC8247]
166
+ AUTH_AES_CMAC_96 = 8,// [RFC4494]
167
+ AUTH_AES_128_GMAC = 9,// [RFC4543]
168
+ AUTH_AES_192_GMAC = 10,// [RFC4543]
169
+ AUTH_AES_256_GMAC = 11,// [RFC4543]
170
+ AUTH_HMAC_SHA2_256_128 = 12,// [RFC4868]
171
+ AUTH_HMAC_SHA2_384_192 = 13,// [RFC4868]
172
+ AUTH_HMAC_SHA2_512_256 = 14
173
+ }
174
+ /**
175
+ * For Transform Type 4 (Diffie-Hellman Group), defined Transform IDs are: \
176
+ RESERVED 0 \
177
+ DH_768_BIT_MODP 1 \
178
+ DH_1024_BIT_MODP 2 \
179
+ 3-4 Reserved \
180
+ DH_1536_BIT_MODP 5 \
181
+ 6-13 Unassigned \
182
+ DH_2048_BIT_MODP 14 \
183
+ DH_3072_BIT_MODP 15 \
184
+ DH_4096_BIT_MODP 16 \
185
+ DH_6144_BIT_MODP 17 \
186
+ DH_8192_BIT_MODP 18 \
187
+ DH_256_BIT_RANDOM_ECP 19 \
188
+ DH_384_BIT_RANDOM_ECP 20 \
189
+ DH_521_BIT_RANDOM_ECP 21 \
190
+ DH_1024_BIT_MODP_WITH_160_BIT_PRIME_ORDER 22 \
191
+ DH_2048_BIT_MODP_WITH_224_BIT_PRIME_ORDER 23 \
192
+ DH_2048_BIT_MODP_WITH_256_BIT_PRIME_ORDER 24 \
193
+ DH_192_BIT_RANDOM_ECP 25 \
194
+ DH_224_BIT_RANDOM_ECP 26 \
195
+ DH_BRAINPOOLP224R1 27 \
196
+ DH_BRAINPOOLP256R1 28 \
197
+ DH_BRAINPOOLP384R1 29 \
198
+ DH_BRAINPOOLP512R1 30 \
199
+ DH_CURVE25519 31 \
200
+ DH_CURVE448 32 \
201
+ DH_GOST3410_2012_256 33 \
202
+ DH_GOST3410_2012_512 34 \
203
+ DH_ML_KEM_512 35 \
204
+ DH_ML_KEM_768 36 \
205
+ DH_ML_KEM_1024 37 \
206
+ 38-1023 Unassigned \
207
+ 1024-65535 Reserved for Private Use
208
+ */
209
+ export declare enum dhId {
210
+ NONE = 0,
211
+ DH_768_bit_MODP = 1,// Deprecated by [RFC8247]
212
+ DH_1024_bit_MODP = 2,
213
+ DH_1536_bit_MODP = 5,// [RFC3526]
214
+ DH_2048_bit_MODP = 14,// [RFC3526]
215
+ DH_3072_bit_MODP = 15,// [RFC3526]
216
+ DH_4096_bit_MODP = 16,// [RFC3526]
217
+ DH_6144_bit_MODP = 17,// [RFC3526]
218
+ DH_8192_bit_MODP = 18,// [RFC3526]
219
+ DH_256_bit_random_ECP = 19,// [RFC5903]
220
+ DH_384_bit_random_ECP = 20,// [RFC5903]
221
+ DH_521_bit_random_ECP = 21,// [RFC5903]
222
+ DH_1024_bit_MODP_with_160_bit_Prime_Order = 22,// [RFC5114] Deprecated by [RFC8247]
223
+ DH_2048_bit_MODP_with_224_bit_Prime_Order = 23,// [RFC5114]
224
+ DH_2048_bit_MODP_with_256_bit_Prime_Order = 24,// [RFC5114]
225
+ DH_192_bit_random_ECP = 25,// [RFC5114]
226
+ DH_224_bit_random_ECP = 26,// [RFC5114]
227
+ DH_brainpoolP224r1 = 27,// [RFC6954]
228
+ DH_brainpoolP256r1 = 28,// [RFC6954]
229
+ DH_brainpoolP384r1 = 29,// [RFC6954]
230
+ DH_brainpoolP512r1 = 30,// [RFC6954]
231
+ DH_Curve25519 = 31,// [RFC8031]
232
+ DH_Curve448 = 32,// [RFC8031]
233
+ DH_GOST3410_2012_256 = 33,// [RFC9385]
234
+ DH_GOST3410_2012_512 = 34,// [RFC9385]
235
+ DH_ml_kem_512 = 35,
236
+ DH_ml_kem_768 = 36,
237
+ DH_ml_kem_1024 = 37
238
+ }
239
+ /**
240
+ * For Transform Type 5 (Extended Sequence Numbers), defined Transform IDs are: \
241
+ No Extended Sequence Numbers 0 \
242
+ Extended Sequence Numbers 1 \
243
+ RESERVED 2 - 65535
244
+ */
245
+ export declare enum esnId {
246
+ ESN_NONE = 0,
247
+ ESN = 1
248
+ }
249
+ /**
250
+ * Transform Type Map to their Ids
251
+ */
252
+ export declare const transformTypeMap: Map<transformType, any>;
253
+ /**
254
+ * IKEv2 Transform Substructure
255
+ * @class
256
+ * @property {number} lastSubstructure - Last Substructure (1 bit)
257
+ * @property {number} length - Transform Length (2 bytes)
258
+ * @property {transformType} type - Transform Type (1 byte)
259
+ * @property {number} id - Transform ID (2 bytes)
260
+ * @property {Attribute} attributes - Transform Attributes (n bytes)
261
+ */
262
+ export declare class Transform {
263
+ lastSubstructure: number;
264
+ length: number;
265
+ type: transformType;
266
+ id: number;
267
+ attributes: Attribute[];
268
+ constructor(lastSubstructure: number, length: number, type: transformType, id: number, attributes: Attribute[]);
269
+ /**
270
+ * Parses a transform from a buffer
271
+ * @param buffer The buffer to parse from.
272
+ * @static
273
+ * @public
274
+ * @returns {Transform}
275
+ */
276
+ static parse(buffer: Buffer): Transform;
277
+ /**
278
+ * Serializes a JSON representation of the transform to a buffer
279
+ * @param json The JSON object to serialize.
280
+ * @static
281
+ * @public
282
+ * @returns {Buffer}
283
+ */
284
+ static serializeJSON(json: Record<string, any>): Buffer;
285
+ /**
286
+ * Parses attributes from a buffer
287
+ * @param buffer The buffer to parse from
288
+ * @static
289
+ * @private
290
+ * @returns {Attribute[]}
291
+ */
292
+ private static parseAttributes;
293
+ get attributeKeyLength(): number | undefined;
294
+ set attributeKeyLength(keyLength: number);
295
+ /**
296
+ * Serializes the transform to a buffer
297
+ * @method
298
+ * @public
299
+ * @returns {Buffer}
300
+ */
301
+ serialize(): Buffer;
302
+ /**
303
+ * Convert object to JSON
304
+ * @method
305
+ * @public
306
+ * @returns {Record<string, any>} JSON object
307
+ */
308
+ toJSON(): Record<string, any>;
309
+ /**
310
+ * Returns a string representation of the transform
311
+ * @method
312
+ * @public
313
+ * @returns {void}
314
+ */
315
+ toString(): string;
316
+ }