Go to the documentation of this file.
42 #define IKE_SUPPORT ENABLED
43 #elif (IKE_SUPPORT != ENABLED && IKE_SUPPORT != DISABLED)
44 #error IKE_SUPPORT parameter is not valid
48 #ifndef IKE_STACK_SIZE
49 #define IKE_STACK_SIZE 650
50 #elif (IKE_STACK_SIZE < 1)
51 #error IKE_STACK_SIZE parameter is not valid
56 #define IKE_PRIORITY OS_TASK_PRIORITY_NORMAL
60 #ifndef IKE_TICK_INTERVAL
61 #define IKE_TICK_INTERVAL 500
62 #elif (IKE_TICK_INTERVAL < 100)
63 #error IKE_TICK_INTERVAL parameter is not valid
67 #ifndef IKE_DEFAULT_SA_LIFETIME
68 #define IKE_DEFAULT_SA_LIFETIME 14400000
69 #elif (IKE_DEFAULT_SA_LIFETIME < 1000)
70 #error IKE_DEFAULT_SA_LIFETIME parameter is not valid
74 #ifndef IKE_DEFAULT_CHILD_SA_LIFETIME
75 #define IKE_DEFAULT_CHILD_SA_LIFETIME 3600000
76 #elif (IKE_DEFAULT_CHILD_SA_LIFETIME < 1000)
77 #error IKE_DEFAULT_CHILD_SA_LIFETIME parameter is not valid
81 #ifndef IKE_CERT_AUTH_SUPPORT
82 #define IKE_CERT_AUTH_SUPPORT ENABLED
83 #elif (IKE_CERT_AUTH_SUPPORT != ENABLED && IKE_CERT_AUTH_SUPPORT != DISABLED)
84 #error IKE_CERT_AUTH_SUPPORT parameter is not valid
88 #ifndef IKE_PSK_AUTH_SUPPORT
89 #define IKE_PSK_AUTH_SUPPORT ENABLED
90 #elif (IKE_PSK_AUTH_SUPPORT != ENABLED && IKE_PSK_AUTH_SUPPORT != DISABLED)
91 #error IKE_PSK_AUTH_SUPPORT parameter is not valid
95 #ifndef IKE_COOKIE_SUPPORT
96 #define IKE_COOKIE_SUPPORT DISABLED
97 #elif (IKE_COOKIE_SUPPORT != ENABLED && IKE_COOKIE_SUPPORT != DISABLED)
98 #error IKE_COOKIE_SUPPORT parameter is not valid
102 #ifndef IKE_INITIAL_CONTACT_SUPPORT
103 #define IKE_INITIAL_CONTACT_SUPPORT ENABLED
104 #elif (IKE_INITIAL_CONTACT_SUPPORT != ENABLED && IKE_INITIAL_CONTACT_SUPPORT != DISABLED)
105 #error IKE_INITIAL_CONTACT_SUPPORT parameter is not valid
109 #ifndef IKE_SIGN_HASH_ALGOS_SUPPORT
110 #define IKE_SIGN_HASH_ALGOS_SUPPORT ENABLED
111 #elif (IKE_SIGN_HASH_ALGOS_SUPPORT != ENABLED && IKE_SIGN_HASH_ALGOS_SUPPORT != DISABLED)
112 #error IKE_SIGN_HASH_ALGOS_SUPPORT parameter is not valid
116 #ifndef IKE_CREATE_CHILD_SA_SUPPORT
117 #define IKE_CREATE_CHILD_SA_SUPPORT ENABLED
118 #elif (IKE_CREATE_CHILD_SA_SUPPORT != ENABLED && IKE_CREATE_CHILD_SA_SUPPORT != DISABLED)
119 #error IKE_CREATE_CHILD_SA_SUPPORT parameter is not valid
123 #ifndef IKE_DPD_SUPPORT
124 #define IKE_DPD_SUPPORT ENABLED
125 #elif (IKE_DPD_SUPPORT != ENABLED && IKE_DPD_SUPPORT != DISABLED)
126 #error IKE_DPD_SUPPORT parameter is not valid
130 #ifndef IKE_MAX_RETRIES
131 #define IKE_MAX_RETRIES 5
132 #elif (IKE_MAX_RETRIES < 1)
133 #error IKE_MAX_RETRIES parameter is not valid
137 #ifndef IKE_INIT_TIMEOUT
138 #define IKE_INIT_TIMEOUT 3000
139 #elif (IKE_INIT_TIMEOUT < 1000)
140 #error IKE_INIT_TIMEOUT parameter is not valid
144 #ifndef IKE_MAX_TIMEOUT
145 #define IKE_MAX_TIMEOUT 60000
146 #elif (IKE_MAX_TIMEOUT < 1000)
147 #error IKE_MAX_TIMEOUT parameter is not valid
151 #ifndef IKE_HALF_OPEN_TIMEOUT
152 #define IKE_HALF_OPEN_TIMEOUT 30000
153 #elif (IKE_HALF_OPEN_TIMEOUT < 1000)
154 #error IKE_HALF_OPEN_TIMEOUT parameter is not valid
158 #ifndef IKE_RANDOM_JITTER
159 #define IKE_RANDOM_JITTER 10
160 #elif (IKE_RANDOM_JITTER < 0 || IKE_RANDOM_JITTER > 100)
161 #error IKE_RANDOM_JITTER parameter is not valid
165 #ifndef IKE_MAX_MSG_SIZE
166 #define IKE_MAX_MSG_SIZE 1452
167 #elif (IKE_MAX_MSG_SIZE < 1280)
168 #error IKE_MAX_MSG_SIZE parameter is not valid
172 #ifndef IKE_MIN_COOKIE_SIZE
173 #define IKE_MIN_COOKIE_SIZE 1
174 #elif (IKE_MIN_COOKIE_SIZE < 1)
175 #error IKE_MIN_COOKIE_SIZE parameter is not valid
179 #ifndef IKE_MAX_COOKIE_SIZE
180 #define IKE_MAX_COOKIE_SIZE 64
181 #elif (IKE_MAX_COOKIE_SIZE < 64)
182 #error IKE_MAX_COOKIE_SIZE parameter is not valid
186 #ifndef IKE_MIN_NONCE_SIZE
187 #define IKE_MIN_NONCE_SIZE 16
188 #elif (IKE_MIN_NONCE_SIZE < 16 || IKE_MIN_NONCE_SIZE > 256)
189 #error IKE_MIN_NONCE_SIZE parameter is not valid
193 #ifndef IKE_DEFAULT_NONCE_SIZE
194 #define IKE_DEFAULT_NONCE_SIZE 32
195 #elif (IKE_DEFAULT_NONCE_SIZE < 16 || IKE_DEFAULT_NONCE_SIZE > 256)
196 #error IKE_DEFAULT_NONCE_SIZE parameter is not valid
200 #ifndef IKE_MAX_NONCE_SIZE
201 #define IKE_MAX_NONCE_SIZE 64
202 #elif (IKE_MAX_NONCE_SIZE < 16 || IKE_MAX_NONCE_SIZE > 256)
203 #error IKE_MAX_NONCE_SIZE parameter is not valid
207 #ifndef IKE_MAX_ID_LEN
208 #define IKE_MAX_ID_LEN 64
209 #elif (IKE_MAX_ID_LEN < 0)
210 #error IKE_MAX_ID_LEN is not valid
214 #ifndef IKE_MAX_PSK_LEN
215 #define IKE_MAX_PSK_LEN 64
216 #elif (IKE_MAX_PSK_LEN < 0)
217 #error IKE_MAX_PSK_LEN is not valid
221 #ifndef IKE_MAX_PASSWORD_LEN
222 #define IKE_MAX_PASSWORD_LEN 32
223 #elif (IKE_MAX_PASSWORD_LEN < 0)
224 #error IKE_MAX_PASSWORD_LEN parameter is not valid
228 #ifndef IKE_CBC_SUPPORT
229 #define IKE_CBC_SUPPORT ENABLED
230 #elif (IKE_CBC_SUPPORT != ENABLED && IKE_CBC_SUPPORT != DISABLED)
231 #error IKE_CBC_SUPPORT parameter is not valid
235 #ifndef IKE_CTR_SUPPORT
236 #define IKE_CTR_SUPPORT DISABLED
237 #elif (IKE_CTR_SUPPORT != ENABLED && IKE_CTR_SUPPORT != DISABLED)
238 #error IKE_CTR_SUPPORT parameter is not valid
242 #ifndef IKE_CCM_8_SUPPORT
243 #define IKE_CCM_8_SUPPORT DISABLED
244 #elif (IKE_CCM_8_SUPPORT != ENABLED && IKE_CCM_8_SUPPORT != DISABLED)
245 #error IKE_CCM_8_SUPPORT parameter is not valid
249 #ifndef IKE_CCM_12_SUPPORT
250 #define IKE_CCM_12_SUPPORT DISABLED
251 #elif (IKE_CCM_12_SUPPORT != ENABLED && IKE_CCM_12_SUPPORT != DISABLED)
252 #error IKE_CCM_12_SUPPORT parameter is not valid
256 #ifndef IKE_CCM_16_SUPPORT
257 #define IKE_CCM_16_SUPPORT DISABLED
258 #elif (IKE_CCM_16_SUPPORT != ENABLED && IKE_CCM_16_SUPPORT != DISABLED)
259 #error IKE_CCM_16_SUPPORT parameter is not valid
263 #ifndef IKE_GCM_8_SUPPORT
264 #define IKE_GCM_8_SUPPORT DISABLED
265 #elif (IKE_GCM_8_SUPPORT != ENABLED && IKE_GCM_8_SUPPORT != DISABLED)
266 #error IKE_GCM_8_SUPPORT parameter is not valid
270 #ifndef IKE_GCM_12_SUPPORT
271 #define IKE_GCM_12_SUPPORT DISABLED
272 #elif (IKE_GCM_12_SUPPORT != ENABLED && IKE_GCM_12_SUPPORT != DISABLED)
273 #error IKE_GCM_12_SUPPORT parameter is not valid
277 #ifndef IKE_GCM_16_SUPPORT
278 #define IKE_GCM_16_SUPPORT ENABLED
279 #elif (IKE_GCM_16_SUPPORT != ENABLED && IKE_GCM_16_SUPPORT != DISABLED)
280 #error IKE_GCM_16_SUPPORT parameter is not valid
284 #ifndef IKE_CHACHA20_POLY1305_SUPPORT
285 #define IKE_CHACHA20_POLY1305_SUPPORT ENABLED
286 #elif (IKE_CHACHA20_POLY1305_SUPPORT != ENABLED && IKE_CHACHA20_POLY1305_SUPPORT != DISABLED)
287 #error IKE_CHACHA20_POLY1305_SUPPORT parameter is not valid
291 #ifndef IKE_CMAC_AUTH_SUPPORT
292 #define IKE_CMAC_AUTH_SUPPORT DISABLED
293 #elif (IKE_CMAC_AUTH_SUPPORT != ENABLED && IKE_CMAC_AUTH_SUPPORT != DISABLED)
294 #error IKE_CMAC_AUTH_SUPPORT parameter is not valid
298 #ifndef IKE_HMAC_AUTH_SUPPORT
299 #define IKE_HMAC_AUTH_SUPPORT ENABLED
300 #elif (IKE_HMAC_AUTH_SUPPORT != ENABLED && IKE_HMAC_AUTH_SUPPORT != DISABLED)
301 #error IKE_HMAC_AUTH_SUPPORT parameter is not valid
305 #ifndef IKE_XCBC_MAC_AUTH_SUPPORT
306 #define IKE_XCBC_MAC_AUTH_SUPPORT DISABLED
307 #elif (IKE_XCBC_MAC_AUTH_SUPPORT != ENABLED && IKE_XCBC_MAC_AUTH_SUPPORT != DISABLED)
308 #error IKE_XCBC_MAC_AUTH_SUPPORT parameter is not valid
312 #ifndef IKE_CMAC_PRF_SUPPORT
313 #define IKE_CMAC_PRF_SUPPORT DISABLED
314 #elif (IKE_CMAC_PRF_SUPPORT != ENABLED && IKE_CMAC_PRF_SUPPORT != DISABLED)
315 #error IKE_CMAC_PRF_SUPPORT parameter is not valid
319 #ifndef IKE_HMAC_PRF_SUPPORT
320 #define IKE_HMAC_PRF_SUPPORT ENABLED
321 #elif (IKE_HMAC_PRF_SUPPORT != ENABLED && IKE_HMAC_PRF_SUPPORT != DISABLED)
322 #error IKE_HMAC_PRF_SUPPORT parameter is not valid
326 #ifndef IKE_XCBC_MAC_PRF_SUPPORT
327 #define IKE_XCBC_MAC_PRF_SUPPORT DISABLED
328 #elif (IKE_XCBC_MAC_PRF_SUPPORT != ENABLED && IKE_XCBC_MAC_PRF_SUPPORT != DISABLED)
329 #error IKE_XCBC_MAC_PRF_SUPPORT parameter is not valid
333 #ifndef IKE_IDEA_SUPPORT
334 #define IKE_IDEA_SUPPORT DISABLED
335 #elif (IKE_IDEA_SUPPORT != ENABLED && IKE_IDEA_SUPPORT != DISABLED)
336 #error IKE_IDEA_SUPPORT parameter is not valid
340 #ifndef IKE_DES_SUPPORT
341 #define IKE_DES_SUPPORT DISABLED
342 #elif (IKE_DES_SUPPORT != ENABLED && IKE_DES_SUPPORT != DISABLED)
343 #error IKE_DES_SUPPORT parameter is not valid
347 #ifndef IKE_3DES_SUPPORT
348 #define IKE_3DES_SUPPORT DISABLED
349 #elif (IKE_3DES_SUPPORT != ENABLED && IKE_3DES_SUPPORT != DISABLED)
350 #error IKE_3DES_SUPPORT parameter is not valid
354 #ifndef IKE_AES_128_SUPPORT
355 #define IKE_AES_128_SUPPORT ENABLED
356 #elif (IKE_AES_128_SUPPORT != ENABLED && IKE_AES_128_SUPPORT != DISABLED)
357 #error IKE_AES_128_SUPPORT parameter is not valid
361 #ifndef IKE_AES_192_SUPPORT
362 #define IKE_AES_192_SUPPORT ENABLED
363 #elif (IKE_AES_192_SUPPORT != ENABLED && IKE_AES_192_SUPPORT != DISABLED)
364 #error IKE_AES_192_SUPPORT parameter is not valid
368 #ifndef IKE_AES_256_SUPPORT
369 #define IKE_AES_256_SUPPORT ENABLED
370 #elif (IKE_AES_256_SUPPORT != ENABLED && IKE_AES_256_SUPPORT != DISABLED)
371 #error IKE_AES_256_SUPPORT parameter is not valid
375 #ifndef IKE_CAMELLIA_128_SUPPORT
376 #define IKE_CAMELLIA_128_SUPPORT DISABLED
377 #elif (IKE_CAMELLIA_128_SUPPORT != ENABLED && IKE_CAMELLIA_128_SUPPORT != DISABLED)
378 #error IKE_CAMELLIA_128_SUPPORT parameter is not valid
382 #ifndef IKE_CAMELLIA_192_SUPPORT
383 #define IKE_CAMELLIA_192_SUPPORT DISABLED
384 #elif (IKE_CAMELLIA_192_SUPPORT != ENABLED && IKE_CAMELLIA_192_SUPPORT != DISABLED)
385 #error IKE_CAMELLIA_192_SUPPORT parameter is not valid
389 #ifndef IKE_CAMELLIA_256_SUPPORT
390 #define IKE_CAMELLIA_256_SUPPORT DISABLED
391 #elif (IKE_CAMELLIA_256_SUPPORT != ENABLED && IKE_CAMELLIA_256_SUPPORT != DISABLED)
392 #error IKE_CAMELLIA_256_SUPPORT parameter is not valid
396 #ifndef IKE_MD5_SUPPORT
397 #define IKE_MD5_SUPPORT DISABLED
398 #elif (IKE_MD5_SUPPORT != ENABLED && IKE_MD5_SUPPORT != DISABLED)
399 #error IKE_MD5_SUPPORT parameter is not valid
403 #ifndef IKE_SHA1_SUPPORT
404 #define IKE_SHA1_SUPPORT ENABLED
405 #elif (IKE_SHA1_SUPPORT != ENABLED && IKE_SHA1_SUPPORT != DISABLED)
406 #error IKE_SHA1_SUPPORT parameter is not valid
410 #ifndef IKE_SHA256_SUPPORT
411 #define IKE_SHA256_SUPPORT ENABLED
412 #elif (IKE_SHA256_SUPPORT != ENABLED && IKE_SHA256_SUPPORT != DISABLED)
413 #error IKE_SHA256_SUPPORT parameter is not valid
417 #ifndef IKE_SHA384_SUPPORT
418 #define IKE_SHA384_SUPPORT ENABLED
419 #elif (IKE_SHA384_SUPPORT != ENABLED && IKE_SHA384_SUPPORT != DISABLED)
420 #error IKE_SHA384_SUPPORT parameter is not valid
424 #ifndef IKE_SHA512_SUPPORT
425 #define IKE_SHA512_SUPPORT ENABLED
426 #elif (IKE_SHA512_SUPPORT != ENABLED && IKE_SHA512_SUPPORT != DISABLED)
427 #error IKE_SHA512_SUPPORT parameter is not valid
431 #ifndef IKE_TIGER_SUPPORT
432 #define IKE_TIGER_SUPPORT DISABLED
433 #elif (IKE_TIGER_SUPPORT != ENABLED && IKE_TIGER_SUPPORT != DISABLED)
434 #error IKE_TIGER_SUPPORT parameter is not valid
438 #ifndef IKE_DH_KE_SUPPORT
439 #define IKE_DH_KE_SUPPORT ENABLED
440 #elif (IKE_DH_KE_SUPPORT != ENABLED && IKE_DH_KE_SUPPORT != DISABLED)
441 #error IKE_DH_KE_SUPPORT parameter is not valid
445 #ifndef IKE_ECDH_KE_SUPPORT
446 #define IKE_ECDH_KE_SUPPORT ENABLED
447 #elif (IKE_ECDH_KE_SUPPORT != ENABLED && IKE_ECDH_KE_SUPPORT != DISABLED)
448 #error IKE_ECDH_KE_SUPPORT parameter is not valid
452 #ifndef IKE_RSA_SIGN_SUPPORT
453 #define IKE_RSA_SIGN_SUPPORT ENABLED
454 #elif (IKE_RSA_SIGN_SUPPORT != ENABLED && IKE_RSA_SIGN_SUPPORT != DISABLED)
455 #error IKE_RSA_SIGN_SUPPORT parameter is not valid
459 #ifndef IKE_RSA_PSS_SIGN_SUPPORT
460 #define IKE_RSA_PSS_SIGN_SUPPORT DISABLED
461 #elif (IKE_RSA_PSS_SIGN_SUPPORT != ENABLED && IKE_RSA_PSS_SIGN_SUPPORT != DISABLED)
462 #error IKE_RSA_PSS_SIGN_SUPPORT parameter is not valid
466 #ifndef IKE_DSA_SIGN_SUPPORT
467 #define IKE_DSA_SIGN_SUPPORT DISABLED
468 #elif (IKE_DSA_SIGN_SUPPORT != ENABLED && IKE_DSA_SIGN_SUPPORT != DISABLED)
469 #error IKE_DSA_SIGN_SUPPORT parameter is not valid
473 #ifndef IKE_ECDSA_SIGN_SUPPORT
474 #define IKE_ECDSA_SIGN_SUPPORT ENABLED
475 #elif (IKE_ECDSA_SIGN_SUPPORT != ENABLED && IKE_ECDSA_SIGN_SUPPORT != DISABLED)
476 #error IKE_ECDSA_SIGN_SUPPORT parameter is not valid
480 #ifndef IKE_ED25519_SIGN_SUPPORT
481 #define IKE_ED25519_SIGN_SUPPORT ENABLED
482 #elif (IKE_ED25519_SIGN_SUPPORT != ENABLED && IKE_ED25519_SIGN_SUPPORT != DISABLED)
483 #error IKE_ED25519_SIGN_SUPPORT parameter is not valid
487 #ifndef IKE_ED448_SIGN_SUPPORT
488 #define IKE_ED448_SIGN_SUPPORT DISABLED
489 #elif (IKE_ED448_SIGN_SUPPORT != ENABLED && IKE_ED448_SIGN_SUPPORT != DISABLED)
490 #error IKE_ED448_SIGN_SUPPORT parameter is not valid
494 #ifndef IKE_ECP_192_SUPPORT
495 #define IKE_ECP_192_SUPPORT DISABLED
496 #elif (IKE_ECP_192_SUPPORT != ENABLED && IKE_ECP_192_SUPPORT != DISABLED)
497 #error IKE_ECP_192_SUPPORT parameter is not valid
501 #ifndef IKE_ECP_224_SUPPORT
502 #define IKE_ECP_224_SUPPORT DISABLED
503 #elif (IKE_ECP_224_SUPPORT != ENABLED && IKE_ECP_224_SUPPORT != DISABLED)
504 #error IKE_ECP_224_SUPPORT parameter is not valid
508 #ifndef IKE_ECP_256_SUPPORT
509 #define IKE_ECP_256_SUPPORT ENABLED
510 #elif (IKE_ECP_256_SUPPORT != ENABLED && IKE_ECP_256_SUPPORT != DISABLED)
511 #error IKE_ECP_256_SUPPORT parameter is not valid
515 #ifndef IKE_ECP_384_SUPPORT
516 #define IKE_ECP_384_SUPPORT ENABLED
517 #elif (IKE_ECP_384_SUPPORT != ENABLED && IKE_ECP_384_SUPPORT != DISABLED)
518 #error IKE_ECP_384_SUPPORT parameter is not valid
522 #ifndef IKE_ECP_521_SUPPORT
523 #define IKE_ECP_521_SUPPORT DISABLED
524 #elif (IKE_ECP_521_SUPPORT != ENABLED && IKE_ECP_521_SUPPORT != DISABLED)
525 #error IKE_ECP_521_SUPPORT parameter is not valid
529 #ifndef IKE_BRAINPOOLP224R1_SUPPORT
530 #define IKE_BRAINPOOLP224R1_SUPPORT DISABLED
531 #elif (IKE_BRAINPOOLP224R1_SUPPORT != ENABLED && IKE_BRAINPOOLP224R1_SUPPORT != DISABLED)
532 #error IKE_BRAINPOOLP224R1_SUPPORT parameter is not valid
536 #ifndef IKE_BRAINPOOLP256R1_SUPPORT
537 #define IKE_BRAINPOOLP256R1_SUPPORT DISABLED
538 #elif (IKE_BRAINPOOLP256R1_SUPPORT != ENABLED && IKE_BRAINPOOLP256R1_SUPPORT != DISABLED)
539 #error IKE_BRAINPOOLP256R1_SUPPORT parameter is not valid
543 #ifndef IKE_BRAINPOOLP384R1_SUPPORT
544 #define IKE_BRAINPOOLP384R1_SUPPORT DISABLED
545 #elif (IKE_BRAINPOOLP384R1_SUPPORT != ENABLED && IKE_BRAINPOOLP384R1_SUPPORT != DISABLED)
546 #error IKE_BRAINPOOLP384R1_SUPPORT parameter is not valid
550 #ifndef IKE_BRAINPOOLP512R1_SUPPORT
551 #define IKE_BRAINPOOLP512R1_SUPPORT DISABLED
552 #elif (IKE_BRAINPOOLP512R1_SUPPORT != ENABLED && IKE_BRAINPOOLP512R1_SUPPORT != DISABLED)
553 #error IKE_BRAINPOOLP512R1_SUPPORT parameter is not valid
557 #ifndef IKE_CURVE25519_SUPPORT
558 #define IKE_CURVE25519_SUPPORT ENABLED
559 #elif (IKE_CURVE25519_SUPPORT != ENABLED && IKE_CURVE25519_SUPPORT != DISABLED)
560 #error IKE_CURVE25519_SUPPORT parameter is not valid
564 #ifndef IKE_CURVE448_SUPPORT
565 #define IKE_CURVE448_SUPPORT DISABLED
566 #elif (IKE_CURVE448_SUPPORT != ENABLED && IKE_CURVE448_SUPPORT != DISABLED)
567 #error IKE_CURVE448_SUPPORT parameter is not valid
571 #ifndef IKE_MIN_DH_MODULUS_SIZE
572 #define IKE_MIN_DH_MODULUS_SIZE 1024
573 #elif (IKE_MIN_DH_MODULUS_SIZE < 768)
574 #error IKE_MIN_DH_MODULUS_SIZE parameter is not valid
578 #ifndef IKE_MAX_DH_MODULUS_SIZE
579 #define IKE_MAX_DH_MODULUS_SIZE 2048
580 #elif (IKE_MAX_DH_MODULUS_SIZE < IKE_PREFERRED_DH_MODULUS_SIZE)
581 #error IKE_MAX_DH_MODULUS_SIZE parameter is not valid
585 #ifndef IKE_MIN_RSA_MODULUS_SIZE
586 #define IKE_MIN_RSA_MODULUS_SIZE 1024
587 #elif (IKE_MIN_RSA_MODULUS_SIZE < 512)
588 #error IKE_MIN_RSA_MODULUS_SIZE parameter is not valid
592 #ifndef IKE_MAX_RSA_MODULUS_SIZE
593 #define IKE_MAX_RSA_MODULUS_SIZE 4096
594 #elif (IKE_MAX_RSA_MODULUS_SIZE < IKE_MIN_RSA_MODULUS_SIZE)
595 #error IKE_MAX_RSA_MODULUS_SIZE parameter is not valid
599 #ifndef IKE_MIN_DSA_MODULUS_SIZE
600 #define IKE_MIN_DSA_MODULUS_SIZE 1024
601 #elif (IKE_MIN_DSA_MODULUS_SIZE < 512)
602 #error IKE_MIN_DSA_MODULUS_SIZE parameter is not valid
606 #ifndef IKE_MAX_DSA_MODULUS_SIZE
607 #define IKE_MAX_DSA_MODULUS_SIZE 4096
608 #elif (IKE_MAX_DSA_MODULUS_SIZE < IKE_MIN_DSA_MODULUS_SIZE)
609 #error IKE_MAX_DSA_MODULUS_SIZE parameter is not valid
613 #ifndef IKE_MAX_SA_KEY_MAT_LEN
614 #define IKE_MAX_SA_KEY_MAT_LEN 392
615 #elif (IKE_MAX_SA_KEY_MAT_LEN < 1)
616 #error IKE_MAX_SA_KEY_MAT_LEN parameter is not valid
620 #ifndef IKE_MAX_CHILD_SA_KEY_MAT_LEN
621 #define IKE_MAX_CHILD_SA_KEY_MAT_LEN 200
622 #elif (IKE_MAX_CHILD_SA_KEY_MAT_LEN < 1)
623 #error IKE_MAX_CHILD_SA_KEY_MAT_LEN parameter is not valid
628 #define ikeAllocMem(size) osAllocMem(size)
633 #define ikeFreeMem(p) osFreeMem(p)
637 #if (IKE_DH_KE_SUPPORT == ENABLED)
638 #define IKE_MAX_DH_SHARED_SECRET_LEN ((IKE_MAX_DH_MODULUS_SIZE + 7) / 8)
640 #define IKE_MAX_DH_SHARED_SECRET_LEN 0
644 #if (IKE_ECDH_KE_SUPPORT == ENABLED && IKE_ECP_521_SUPPORT == ENABLED)
645 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 66
646 #elif (IKE_ECDH_KE_SUPPORT == ENABLED && IKE_CURVE448_SUPPORT == ENABLED)
647 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 56
648 #elif (IKE_ECDH_KE_SUPPORT == ENABLED && IKE_ECP_384_SUPPORT == ENABLED)
649 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 48
651 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 32
655 #if (IKE_MAX_DH_SHARED_SECRET_LEN >= IKE_MAX_ECDH_SHARED_SECRET_LEN)
656 #define IKE_MAX_SHARED_SECRET_LEN IKE_MAX_DH_SHARED_SECRET_LEN
658 #define IKE_MAX_SHARED_SECRET_LEN IKE_MAX_ECDH_SHARED_SECRET_LEN
662 #define IKE_MAJOR_VERSION 2
664 #define IKE_MINOR_VERSION 0
669 #define IKE_ALT_PORT 4500
672 #define IKE_SPI_SIZE 8
674 #define IKE_SHA1_DIGEST_SIZE 20
678 #define IkeContext struct _IkeContext
682 #define IkeSaEntry struct _IkeSaEntry
686 #define IkeChildSaEntry struct _IkeChildSaEntry
1239 #if defined(__CCRX__)
1241 #elif defined(__CWCC__) || defined(_WIN32)
1242 #pragma pack(push, 1)
1255 #if defined(_CPU_BIG_ENDIAN) && !defined(__ICCRX__)
1276 #if defined(_CPU_BIG_ENDIAN) && !defined(__ICCRX__)
1304 uint8_t lastSubstruc;
1321 uint8_t lastSubstruc;
1570 #if defined(__CCRX__)
1572 #elif defined(__CWCC__) || defined(_WIN32)
1591 size_t nonceLen, uint8_t *
cookie,
size_t *cookieLen);
1600 size_t nonceLen,
const uint8_t *
cookie,
size_t cookieLen);
1634 #if (IKE_DPD_SUPPORT == ENABLED)
1693 #if (IKE_DH_KE_SUPPORT == ENABLED)
1696 #if (IKE_ECDH_KE_SUPPORT == ENABLED)
1716 #if (IKE_INITIAL_CONTACT_SUPPORT == ENABLED)
1719 #if (IKE_SIGN_HASH_ALGOS_SUPPORT == ENABLED)
1796 #if (IKE_DPD_SUPPORT == ENABLED)
1799 #if (IKE_COOKIE_SUPPORT == ENABLED)
1803 #if (IKE_CERT_AUTH_SUPPORT == ENABLED)
1826 #if (IKE_DPD_SUPPORT == ENABLED)
1853 #if (IKE_CMAC_AUTH_SUPPORT == ENABLED || IKE_CMAC_PRF_SUPPORT == ENABLED)
1856 #if (IKE_HMAC_AUTH_SUPPORT == ENABLED || IKE_HMAC_PRF_SUPPORT == ENABLED)
1859 #if (IKE_XCBC_MAC_AUTH_SUPPORT == ENABLED || IKE_XCBC_MAC_PRF_SUPPORT == ENABLED)
1863 #if (IKE_COOKIE_SUPPORT == ENABLED)
1867 #if (IKE_CERT_AUTH_SUPPORT == ENABLED)
1888 size_t certChainLen,
const char_t *privateKey,
size_t privateKeyLen,
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_ADDRESS
IkeSaState
IKE Security Association state.
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_8
DhContext dhContext
Diffie-Hellman context.
@ IKE_CHILD_SA_STATE_DELETE
@ IKE_TRANSFORM_ID_AUTH_AES_CMAC_96
@ IKE_TRANSFORM_ID_ENCR_RESERVED
@ IKE_NOTIFY_MSG_TYPE_PSK_CONFIRM
@ IKE_TRANSFORM_ID_DH_GROUP_CURVE448
Curve448.
size_t encKeyLen
Size of the encryption key, in bytes.
IkeCertType
Certificate types.
IkeTransformIdEncr
Transform IDs (Encryption Algorithm)
X.509 common definitions.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_NETMASK
IkeCookieVerifyCallback cookieVerifyCallback
Cookie verification callback function.
XCBC-MAC algorithm context.
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_384_192
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_1024
1024-bit MODP Group
Collection of key exchange algorithms.
size_t responderNonceLen
Length of the responder nonce.
@ IKE_TRANSFORM_ID_DH_GROUP_ECP_192
192-bit Random ECP Group
size_t saltLen
Length of the salt, in bytes.
@ IKE_NOTIFY_MSG_TYPE_CLONE_IKE_SA
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA1_96
@ IKE_TS_TYPE_IPV4_ADDR_RANGE
uint8_t initiatorNonce[IKE_MAX_NONCE_SIZE]
IpsecMode
IPsec protocol modes.
@ IKE_TRANSFORM_ID_PRF_AES128_CMAC
IkeContext * context
IKE context.
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_16
@ IKE_NOTIFY_MSG_TYPE_IPCOMP_SUPPORTED
@ IKE_TRANSFORM_ID_ENCR_KUZNYECHIK_MGM_KTREE
@ IKE_NOTIFY_MSG_TYPE_INVALID_MESSAGE_ID
@ IKE_TRANSFORM_ID_ENCR_AES_CTR
@ IKE_CERT_TYPE_ECDSA_BRAINPOOLP384R1
@ IKE_NOTIFY_MSG_TYPE_ERX_SUPPORTED
@ IKE_TRANSFORM_ID_DH_GROUP_NONE
None.
@ IKE_NOTIFY_MSG_TYPE_IKEV2_FRAGMENTATION_SUPPORTED
@ IKE_NOTIFY_MSG_TYPE_INVALID_SPI
@ IKE_CERT_ENCODING_RAW_RSA_KEY
Raw RSA key (deprecated)
@ IKE_NOTIFY_MSG_TYPE_SET_WINDOW_SIZE
@ IKE_IP_PROTOCOL_ID_ICMP
error_t(* IkeCookieVerifyCallback)(IkeContext *context, const IpAddr *ipAddr, const uint8_t *spi, const uint8_t *nonce, size_t nonceLen, const uint8_t *cookie, size_t cookieLen)
Cookie verification callback function.
typedef __packed_struct
IKE header.
IkeCookieGenerateCallback cookieGenerateCallback
Cookie generation callback function.
systime_t saLifetime
Lifetime of IKE SAs.
@ IKE_NOTIFY_MSG_TYPE_REKEY_SA
@ IKE_NOTIFY_MSG_TYPE_CHILD_SA_NOT_FOUND
#define IKE_MAX_SA_KEY_MAT_LEN
uint16_t authAlgoId
Integrity algorithm.
bool_t nonAdditionalSas
NO_ADDITIONAL_SAS notification received.
size_t responseLen
Length of the response message, in bytes.
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA1_160
const HashAlgo * authHashAlgo
Hash algorithm for HMAC-based integrity calculations.
@ IKE_NOTIFY_MSG_TYPE_ADDITIONAL_TS_POSSIBLE
uint8_t keyExchangeData[]
@ IKE_NOTIFY_MSG_TYPE_NO_PROPOSAL_CHOSEN
error_t ikeSetCertificate(IkeContext *context, const char_t *certChain, size_t certChainLen, const char_t *privateKey, size_t privateKeyLen, const char_t *password)
Load entity's certificate.
@ IKE_PAYLOAD_TYPE_CP
Configuration.
@ IKE_NOTIFY_MSG_TYPE_ADDITIONAL_IP6_ADDRESS
NetInterface * interface
Underlying network interface.
const char_t * certChain
Entity's certificate chain (PEM format)
IkeTransformAttrFormat
Transform attribute format.
const CipherAlgo * cipherAlgo
Cipher algorithm.
IkeChildSaEntry * childSa
Child SA.
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CBC
@ IKE_ID_TYPE_DER_ASN1_DN
@ IKE_TRANSFORM_ID_ENCR_IDEA
@ IKE_TRANSFORM_ID_AUTH_AES_128_GMAC
@ IKE_TRANSFORM_ID_AUTH_HMAC_MD5_96
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_4096
4096-bit MODP Group
@ IKE_SA_STATE_DELETE_REQ
@ IKE_CONFIG_TYPE_REQUEST
error_t ikeSetPsk(IkeContext *context, const uint8_t *psk, size_t pskLen)
Set entity's pre-shared key.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_LINK
@ IKE_CERT_ENCODING_DNS_SIGNED_KEY
DNS signed key.
@ IKE_LAST_SUBSTRUC_MORE_TRANSFORMS
More transform substructures.
@ IKE_AUTH_METHOD_ECDSA_P521_SHA512
ECDSA with SHA-512 on the P-521 curve.
Collection of AEAD algorithms.
size_t peerIdLen
Length of the peer ID, in bytes.
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_2048
2048-bit MODP Group
IpsecMode mode
IPsec mode (tunnel or transport)
@ IKE_NOTIFY_MSG_TYPE_PUZZLE
@ IKE_CONFIG_ATTR_TYPE_MIP6_HOME_PREFIX
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_8192
8192-bit MODP Group
int_t inboundSa
Inbound SAD entry.
Generic cipher algorithm context.
uint32_t signHashAlgos
List of hash algorithms supported by the peer.
@ IKE_TRANSFORM_TYPE_DH
Diffie-Hellman Group.
IpsecPacketInfo packetInfo
@ IKE_TRANSFORM_ID_ESN_NO
No Extended Sequence Numbers.
size_t encKeyLen
Length of the encryption key, in bytes.
@ IKE_AUTH_METHOD_GSPAM
Generic Secure Password Authentication Method.
uint_t numChildSaEntries
Number of Child SA entries.
@ IKE_NOTIFY_MSG_TYPE_UPDATE_SA_ADDRESSES
systime_t dpdPeriod
Dead peer detection period.
@ IKE_TRANSFORM_ID_ENCR_CAST
IpAddr remoteIpAddr
Source IP address of the received IKE message.
IkeSaEntry * newSa
New IKE SA.
@ IKE_AUTH_METHOD_RSA
RSA Digital Signature.
@ IKE_PROTOCOL_ID_AH
AH protocol.
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CCM_8
@ IKE_EXCHANGE_TYPE_IKE_SESSION_RESUME
IKE_SESSION_RESUME.
@ IKE_LAST_SUBSTRUC_LAST
Last proposal/transform substructure.
uint8_t keyMaterial[IKE_MAX_CHILD_SA_KEY_MAT_LEN]
Keying material.
@ IKE_NOTIFY_MSG_TYPE_USE_WESP_MODE
size_t icvLen
Length of the ICV tag, in bytes.
IkeNotifyMsgType notifyMsgType
@ IKE_PAYLOAD_TYPE_CERTREQ
Certificate Request.
error_t ikeRekeyChildSa(IkeChildSaEntry *childSa)
IkeContext * context
IKE context.
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CCM_16
IkeIdType peerIdType
Peer ID type.
size_t prfKeyLen
Preferred size of the PRF key, in bytes.
@ IKE_TRANSFORM_ID_ENCR_MAGMA_MGM_MAC_KTREE
systime_t reauthPeriod
Reauthentication period.
@ IKE_NOTIFY_MSG_TYPE_SENDER_REQUEST_ID
@ IKE_TRANSFORM_ID_DH_GROUP_GOST3410_2012_256
GOST3410_2012_256.
IkeSaEntry * sa
IKE SA entries.
@ IKE_TRANSFORM_ID_AUTH_AES_192_GMAC
@ IKE_NOTIFY_MSG_TYPE_IFOM_CAPABILITY
error_t ikeRekeySa(IkeSaEntry *sa)
@ IKE_NOTIFY_MSG_TYPE_ROHC_SUPPORTED
bool_t rekeyRequest
Child SA rekey request.
@ IKE_NOTIFY_MSG_TYPE_TICKET_NACK
@ IKE_TRANSFORM_ID_ENCR_CHACHA20_POLY1305_IIV
uint8_t * initiatorSaInit
Pointer to the IKE_SA_INIT request.
uint8_t iv[8]
Initialization vector.
@ IKE_TRANSFORM_ID_ENCR_DES_IV64
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_16_IIV
IkePayloadType
Payload types.
@ IKE_CERT_ENCODING_HASH_URL_X509_BUNDLE
Hash and URL of X.509 bundle.
error_t ikeCreateSa(IkeContext *context, const IpsecPacketInfo *packet)
const HashAlgo * prfHashAlgo
Hash algorithm for HMAC-based PRF calculations.
uint16_t remotePort
Source port of the received IKE message.
const uint8_t * skd
Key used for deriving new keys for Child SAs.
@ IKE_CERT_TYPE_ECDSA_P384
void ikeTask(IkeContext *context)
IKE task.
@ IKE_AUTH_METHOD_NULL
NULL Authentication.
@ IKE_TRANSFORM_ID_DH_GROUP_CURVE25519
Curve25519.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_DNS_DOMAIN
const uint8_t * skei
Encryption key (initiator)
@ IKE_TRANSFORM_ID_DH_GROUP_BRAINPOOLP224R1
224-bit Brainpool ECP Group
uint8_t response[IKE_MAX_MSG_SIZE]
Response message.
uint8_t initiatorNonce[IKE_MAX_NONCE_SIZE]
Initiator nonce.
@ IKE_NOTIFY_MSG_TYPE_SIGNATURE_HASH_ALGORITHMS
@ IKE_TRANSFORM_ID_ENCR_CHACHA20_POLY1305
IkeCertType certType
Certificate type.
@ IKE_ATTR_FORMAT_TV
shortened Type/Value format
@ IKE_TRANSFORM_ID_AUTH_AES_XCBC_96
CipherMode cipherMode
Cipher mode of operation.
uint8_t responderNonce[IKE_MAX_NONCE_SIZE]
Responder nonce.
EcdhContext ecdhContext
ECDH context.
@ IKE_TRANSFORM_ID_PRF_HMAC_SHA2_384
bool_t initialContact
INITIAL_CONTACT notification received.
@ IKE_CHILD_SA_STATE_REKEY
@ IKE_NOTIFY_MSG_TYPE_USE_AGGFRAG
@ IKE_NOTIFY_MSG_TYPE_NAT_DETECTION_SOURCE_IP
IkeAuthMethod
Authentication methods.
@ IKE_CERT_TYPE_ECDSA_BRAINPOOLP256R1
error_t ikeCreateChildSa(IkeContext *context, const IpsecPacketInfo *packet)
Create a new Child SA.
@ IKE_TRANSFORM_TYPE_ESN
Extended Sequence Numbers.
@ IKE_NOTIFY_MSG_TYPE_TS_UNACCEPTABLE
size_t saltLen
Length of the salt, in bytes.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_DNSSEC_TA
IkeCertVerifyCallback certVerifyCallback
Certificate verification callback function.
#define IKE_MAX_SHARED_SECRET_LEN
IkeCertVerifyCallback certVerifyCallback
Certificate verification callback function.
@ IKE_TRANSFORM_ID_DH_GROUP_ECP_224
224-bit Random ECP Group
@ IKE_NOTIFY_MSG_TYPE_LINK_ID
systime_t dpdPeriod
Dead peer detection period.
IpsecProtocol protocol
Security protocol (AH or ESP)
@ IKE_NOTIFY_MSG_TYPE_NAT_DETECTION_DESTINATION_IP
@ IKE_TRANSFORM_ID_ENCR_AES_CBC
@ IKE_PAYLOAD_TYPE_EAP
Extensible Authentication.
@ IKE_ID_TYPE_DER_ASN1_GN
@ IKE_TRANSFORM_ATTR_TYPE_KEY_LEN
Key Length (in bits)
Traffic selector parameters.
const char_t * privateKey
Entity's private key (PEM format)
const uint8_t * skar
Integrity protection key (responder)
uint_t numSaEntries
Number of IKE SA entries.
@ IKE_NOTIFY_MSG_TYPE_FAILED_CP_REQUIRED
size_t icvLen
Length of the ICV tag, in bytes.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_DHCP
@ IKE_NOTIFY_MSG_TYPE_IPSEC_REPLAY_COUNTER_SYNC
@ IKE_EXCHANGE_TYPE_IKE_AUTH
IKE_AUTH.
@ IKE_SA_STATE_DELETE_CHILD_RESP
OsTaskParameters taskParams
Task parameters.
size_t requestLen
Length of the request message, in bytes.
@ IKE_NOTIFY_MSG_TYPE_CHILDLESS_IKEV2_SUPPORTED
uint8_t psk[IKE_MAX_PSK_LEN]
Pre-shared key.
uint16_t authAlgoId
Integrity algorithm.
@ IKE_NOTIFY_MSG_TYPE_INVALID_SELECTORS
@ IKE_NOTIFY_MSG_TYPE_ANOTHER_AUTH_FOLLOWS
@ IKE_ATTR_FORMAT_TLV
Type/Length/Value format.
systime_t reauthPeriod
Reauthentication period.
IkeHashAlgo
Hash algorithms.
systime_t childSaLifetime
Lifetime of Child SAs.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_SUBNET
@ IKE_NOTIFY_MSG_TYPE_IP4_ALLOWED
uint16_t prfAlgoId
Pseudorandom function.
IkeSaState state
IKE SA state.
systime_t dpdPeriod
Dead peer detection period.
@ IKE_FLAGS_I
Initiator flag.
OsEvent event
Event object used to poll the underlying socket.
IkeChildSaEntry * childSa
Child SA entries.
@ IKE_PAYLOAD_TYPE_SK
Encrypted and Authenticated.
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_768
768-bit MODP Group
@ IKE_SA_STATE_AUTH_FAILURE_RESP
@ IKE_TRANSFORM_ID_PRF_RESERVED
@ IKE_PAYLOAD_TYPE_AUTH
Authentication.
@ IKE_TRANSFORM_ID_ENCR_NULL
bool_t originalInitiator
Original initiator of the IKE SA.
@ IKE_PAYLOAD_TYPE_CERT
Certificate.
bool_t deleteRequest
IKE SA delete request.
@ IKE_SA_STATE_REKEY_CHILD_REQ
size_t ivLen
Length of the initialization vector, in bytes.
@ IKE_AUTH_METHOD_DIGITAL_SIGN
Digital Signature.
bool_t reauthPending
Reauthentication process is on-going.
size_t idLen
Length of the ID, in bytes.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_DHCP
size_t certChainLen
Length of the certificate chain.
@ IKE_EXCHANGE_TYPE_IKE_INTERMEDIATE
IKE_INTERMEDIATE.
IkeLastSubstruc
Last Substruc values.
@ IKE_NOTIFY_MSG_TYPE_NO_NATS_ALLOWED
const CipherAlgo * authCipherAlgo
Cipher algorithm for CMAC-based integrity calculations.
uint16_t encAlgoId
Encryption algorithm.
const PrngAlgo * prngAlgo
Pseudo-random number generator to be used.
const uint8_t * sker
Encryption key (responder)
@ IKE_TRANSFORM_ID_ENCR_KUZNYECHIK_MGM_MAC_KTREE
HmacContext hmacContext
HMAC context.
IkeChildSaState
Child Security Association state.
NetInterface * interface
Underlying network interface.
const PrngAlgo * prngAlgo
Pseudo-random number generator to be used.
@ IKE_PROTOCOL_ID_ESP
ESP protocol.
error_t ikeStart(IkeContext *context)
Start IKE service.
#define IKE_MAX_NONCE_SIZE
size_t ivLen
Length of the initialization vector, in bytes.
@ IKE_NOTIFY_MSG_TYPE_NO_PPK_AUTH
IpAddr remoteIpAddr
IP address of the peer.
@ IKE_TRANSFORM_ID_PRF_HMAC_MD5
@ IKE_NOTIFY_MSG_TYPE_PPK_IDENTITY
@ IKE_NOTIFY_MSG_TYPE_QUICK_CRASH_DETECTION
#define IKE_MAX_PASSWORD_LEN
error_t ikeStop(IkeContext *context)
Stop IKE service.
@ IKE_CERT_ENCODING_PGP_CERT
PGP certificate.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_DNS
const uint8_t * skai
Integrity protection key (initiator)
@ IKE_TRANSFORM_ID_DH_GROUP_BRAINPOOLP512R1
512-bit Brainpool ECP Group
@ IKE_IP_PROTOCOL_ID_ICMPV6
IkeExchangeType
Exchange types.
uint8_t iv[8]
Initialization vector.
@ IKE_TRANSFORM_ID_PRF_HMAC_SHA1
@ IKE_NOTIFY_MSG_TYPE_R_U_THERE
@ IKE_CERT_ENCODING_X509_CERT_ATTR
X.509 certificate - attribute.
@ IKE_NOTIFY_MSG_TYPE_MOBIKE_SUPPORTED
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_12
@ IKE_CHILD_SA_STATE_INIT
@ IKE_CONFIG_ATTR_TYPE_P_CSCF_IP6_ADDRESS
IkeCookieGenerateCallback cookieGenerateCallback
Cookie generation callback function.
@ IKE_CERT_ENCODING_OCSP_CONTENT
OCSP Content.
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_8_IIV
@ IKE_PAYLOAD_TYPE_V
Vendor ID.
@ IKE_TRANSFORM_ID_ENCR_MAGMA_MGM_KTREE
@ IKE_PAYLOAD_TYPE_IDI
Identification - Initiator.
@ IKE_NOTIFY_MSG_TYPE_REDIRECTED_FROM
error_t(* IkeCertVerifyCallback)(IkeSaEntry *sa, const X509CertInfo *certInfo, uint_t pathLen)
Certificate verification callback function.
XcbcMacContext xcbcMacContext
XCBC-MAC context.
void * prngContext
Pseudo-random number generator context.
bool_t initiator
Initiator of the CREATE_CHILD_SA exchange.
@ IKE_TRANSFORM_ID_ENCR_BLOWFISH
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_1536
1536-bit MODP Group
error_t ikeSetPreferredDhGroup(IkeContext *context, uint16_t dhGroupNum)
Specify the preferred Diffie-Hellman group.
@ IKE_TRANSFORM_TYPE_ENCR
Encryption Algorithm.
@ IKE_TRANSFORM_ID_ENCR_DES_IV32
@ IKE_TRANSFORM_ID_PRF_AES128_XCBC
@ IKE_TRANSFORM_ID_AUTH_HMAC_MD5_128
@ IKE_CERT_ENCODING_HASH_URL_X509_CERT
Hash and URL of X.509 certificate.
systime_t lifetime
Lifetime of the IKE SA.
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_2048_224
2048-bit MODP Group with 224-bit Prime Order Subgroup
IkeIpProtocolId
IP protocol IDs.
@ IKE_NOTIFY_MSG_TYPE_USE_PPK
@ IKE_NOTIFY_MSG_TYPE_IP6_ALLOWED
@ IKE_EXCHANGE_TYPE_CREATE_CHILD_SA
CREATE_CHILD_SA.
uint8_t * responderSaInit
Pointer to the IKE_SA_INIT response.
@ IKE_NOTIFY_MSG_TYPE_TICKET_OPAQUE
IkeSaEntry * sa
IKE SA entry.
error_t ikeDeleteSa(IkeSaEntry *sa)
Delete an IKE SA.
CipherMode
Cipher operation modes.
@ IKE_NOTIFY_MSG_TYPE_UNEXPECTED_NAT_DETECTED
@ IKE_AUTH_METHOD_SHARED_KEY
Shared Key Message Integrity Code.
IkeTransformType
Transform types.
@ IKE_NOTIFY_MSG_TYPE_HTTP_CERT_LOOKUP_SUPPORTED
@ IKE_TRANSFORM_ID_DH_GROUP_ECP_384
384-bit Random ECP Group
IkeCertEncoding
Certificate encodings.
@ IKE_CONFIG_ATTR_TYPE_SUPPORTED_ATTRIBUTES
@ IKE_TRANSFORM_ID_PRF_HMAC_SHA2_256
@ IKE_NOTIFY_MSG_TYPE_ESP_TFC_PADDING_NOT_SUPPORTED
@ IKE_CHILD_SA_STATE_CLOSED
error_t(* IkeCookieGenerateCallback)(IkeContext *context, const IpAddr *ipAddr, const uint8_t *spi, const uint8_t *nonce, size_t nonceLen, uint8_t *cookie, size_t *cookieLen)
Cookie generation callback function.
@ IKE_CERT_ENCODING_CRL
Certificate revocation list.
IpsecProtocol
Security protocols.
uint8_t configAttributes[]
@ IKE_NOTIFY_MSG_TYPE_STATE_NOT_FOUND
@ IKE_CONFIG_ATTR_TYPE_APPLICATION_VERSION
@ IKE_NOTIFY_MSG_TYPE_NON_FIRST_FRAGMENTS_ALSO
@ IKE_CERT_TYPE_ECDSA_BRAINPOOLP512R1
@ IKE_TRANSFORM_ID_DH_GROUP_GOST3410_2012_512
GOST3410_2012_512.
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_256_128
size_t authKeyLen
Size of the integrity protection key, in bytes.
#define IKE_MAX_COOKIE_SIZE
uint16_t preferredDhGroupNum
Preferred Diffie-Hellman group number.
uint16_t encAlgoId
Encryption algorithm.
@ IKE_TRANSFORM_ID_ENCR_DES
size_t privateKeyLen
Length of the private key.
bool_t deleteRequest
Child SA delete request.
uint8_t unsupportedCriticalPayload
@ IKE_NOTIFY_MSG_TYPE_AUTHORIZATION_FAILED
uint32_t systime_t
System time.
@ IKE_TRANSFORM_ID_AUTH_KPDK_MD5
@ IKE_TRANSFORM_ID_AUTH_AES_256_GMAC
const uint8_t * skai
Integrity protection key (initiator)
@ IKE_TRANSFORM_ID_ENCR_NULL_AUTH_AES_GMAC
uint8_t message[IKE_MAX_MSG_SIZE]
Incoming IKE message.
@ IKE_SA_STATE_CREATE_CHILD_REQ
@ IKE_CERT_ENCODING_PKCS7_X509_CERT
PKCS #7 wrapped X.509 certificate.
@ IKE_PAYLOAD_TYPE_PS
Puzzle Solution.
@ IKE_EXCHANGE_TYPE_IKE_SA_INIT
IKE_SA_INIT.
@ IKE_PAYLOAD_TYPE_NONCE
Nonce.
@ IKE_NOTIFY_MSG_TYPE_INVALID_KE_PAYLOAD
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_SUBNET
uint8_t initiatorSpi[IKE_SPI_SIZE]
Initiator SPI.
size_t messageLen
Length of the incoming IKE message, in bytes.
@ IKE_TRANSFORM_ID_PRF_HMAC_STREEBOG_512
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_1024_160
1024-bit MODP Group with 160-bit Prime Order Subgroup
bool_t rekeyRequest
IKE SA rekey request.
@ IKE_TRANSFORM_ID_ENCR_3DES
int_t outboundSa
Outbound SAD entry.
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_16
IkeSaEntry * oldSa
Old IKE SA.
@ IKE_NOTIFY_MSG_TYPE_INTERMEDIATE_EXCHANGE_SUPPORTED
@ IKE_NOTIFY_MSG_TYPE_NO_ADDITIONAL_SAS
void ikeDeinit(IkeContext *context)
Release IKE context.
IkeChildSaEntry * oldChildSa
Old Child SA.
@ IKE_NOTIFY_MSG_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD
CipherMode cipherMode
Cipher mode of operation.
systime_t childSaLifetime
Lifetime of Child SAs.
@ IKE_TRANSFORM_ID_PRF_HMAC_TIGER
uint8_t responderSpi[IKE_SPI_SIZE]
@ IKE_NOTIFY_MSG_TYPE_NONE
uint8_t peerId[IKE_MAX_ID_LEN]
Peer ID.
@ IKE_PAYLOAD_TYPE_SKF
Encrypted and Authenticated Fragment.
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_3072
3072-bit MODP Group
CmacContext cmacContext
CMAC context.
uint8_t trafficSelectors[]
@ IKE_SA_STATE_REKEY_CHILD_RESP
error_t ikeInit(IkeContext *context, const IkeSettings *settings)
IKE service initialization.
uint8_t request[IKE_MAX_MSG_SIZE]
Request message.
size_t initiatorSaInitLen
Length of the IKE_SA_INIT request, in bytes.
error_t ikeSetId(IkeContext *context, IkeIdType idType, const void *id, size_t idLen)
Set entity's ID.
IkeChildSaEntry * childSaEntries
Child SA entries.
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_12
OsTaskParameters task
Task parameters.
const uint8_t * skei
Encryption key (initiator)
@ IKE_TRANSFORM_TYPE_PRF
Pseudorandom Function.
@ IKE_TRANSFORM_ID_ESN_YES
Extended Sequence Numbers.
const HashAlgo * authHashAlgo
Hash algorithm for HMAC-based integrity calculations.
@ IKE_NOTIFY_MSG_TYPE_TICKET_LT_OPAQUE
IpAddr localIpAddr
Destination IP address of the received IKE message.
const uint8_t * sker
Encryption key (responder)
const uint8_t * skpr
Key used for generating AUTH payload (responder)
const CipherAlgo * cipherAlgo
Cipher algorithm.
@ IKE_NOTIFY_MSG_TYPE_SECURE_PASSWORD_METHODS
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CTR
@ IKE_CERT_ENCODING_ARL
Authority revocation list.
bool_t reauthRequest
IKE SA reauthentication request.
Socket * socket
Underlying UDP socket.
@ IKE_NOTIFY_MSG_TYPE_USE_ASSIGNED_HOA
uint16_t esn
Extended sequence numbers.
IkeTransformIdDhGroup
Transform IDs (Diffie-Hellman Group)
void ikeGetDefaultSettings(IkeSettings *settings)
Initialize settings with default values.
@ IKE_ID_TYPE_RFC822_ADDR
@ IKE_SA_STATE_DELETE_RESP
#define IKE_MAX_CHILD_SA_KEY_MAT_LEN
@ IKE_PROTOCOL_ID_IKE
IKE protocol.
size_t cookieLen
Length of the cookie, in bytes.
@ IKE_AUTH_METHOD_DSS
DSS Digital Signature.
@ IKE_NOTIFY_MSG_TYPE_AUTH_FAILED
@ IKE_NOTIFY_MSG_TYPE_TEMPORARY_FAILURE
systime_t saLifetime
Lifetime of IKE SAs.
@ IKE_TRANSFORM_ID_ENCR_3IDEA
Common interface for encryption algorithms.
size_t authKeyLen
Length of the integrity protection key, in bytes.
@ IKE_EXCHANGE_TYPE_INFORMATIONAL
INFORMATIONAL.
@ IKE_PAYLOAD_TYPE_LAST
No Next Payload.
uint8_t cookie[IKE_MAX_COOKIE_SIZE]
Cookie.
IkeNotifyMsgType
Notify message types.
@ IKE_LAST_SUBSTRUC_MORE_PROPOSALS
More proposal substructures.
@ IKE_NOTIFY_MSG_TYPE_TICKET_REQUEST
const CipherAlgo * authCipherAlgo
Cipher algorithm for CMAC-based integrity calculations.
IkeCookieVerifyCallback cookieVerifyCallback
Cookie verification callback function.
@ IKE_CERT_ENCODING_SPKI_CERT
SPKI certificate.
@ IKE_NOTIFY_MSG_TYPE_INITIAL_CONTACT
@ IKE_NOTIFY_MSG_TYPE_INTERNAL_ADDRESS_FAILURE
@ IKE_PAYLOAD_TYPE_KE
Key Exchange.
IkeProtocolId
Protocol IDs.
CipherContext cipherContext
Cipher context.
size_t responderSaInitLen
Length of the IKE_SA_INIT response, in bytes.
Child Security Association entry.
@ IKE_NOTIFY_MSG_TYPE_IKEV2_MESSAGE_ID_SYNC_SUPPORTED
@ IKE_SA_STATE_AUTH_FAILURE_REQ
@ IKE_NOTIFY_MSG_TYPE_REDIRECT
@ IKE_NOTIFY_MSG_TYPE_AUTH_LIFETIME
@ IKE_AUTH_METHOD_ECDSA_P256_SHA256
ECDSA with SHA-256 on the P-256 curve.
@ IKE_NOTIFY_MSG_TYPE_COOKIE
systime_t reauthPeriod
Reauthentication period.
@ IKE_NOTIFY_MSG_TYPE_IPSEC_REPLAY_COUNTER_SYNC_SUPPORTED
@ IKE_FLAGS_R
Response flag.
@ IKE_PAYLOAD_TYPE_TSI
Traffic Selector - Initiator.
@ IKE_NOTIFY_MSG_TYPE_USE_TRANSPORT_MODE
@ IKE_SA_STATE_REKEY_RESP
uint8_t sharedSecret[IKE_MAX_SHARED_SECRET_LEN]
Shared secret.
@ IKE_CERT_ENCODING_X509_CERT_SIGN
X.509 certificate - signature.
char_t password[IKE_MAX_PASSWORD_LEN]
Password used to decrypt the private key.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_NBNS
size_t sharedSecretLen
Length of the shared secret, in bytes.
uint8_t keyMaterial[IKE_MAX_SA_KEY_MAT_LEN]
Keying material.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_PREFIX
Common interface for hash algorithms.
@ IKE_NOTIFY_MSG_TYPE_SINGLE_PAIR_REQUIRED
@ IKE_TRANSFORM_ID_AUTH_DES_MAC
@ IKE_SA_STATE_CREATE_CHILD_RESP
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_2048_256
2048-bit MODP Group with 256-bit Prime Order Subgroup
@ IKE_TRANSFORM_ID_DH_GROUP_ECP_256
256-bit Random ECP Group
thread_t * OsTaskId
Task identifier.
@ IKE_CERT_TYPE_ECDSA_P521
@ IKE_NOTIFY_MSG_TYPE_TICKET_ACK
const uint8_t * skpi
Key used for generating AUTH payload (initiator)
@ IKE_NOTIFY_MSG_TYPE_REDIRECT_SUPPORTED
void * prngContext
Pseudo-random number generator context.
bool_t running
Operational state of IKEv2.
@ IKE_NOTIFY_MSG_TYPE_MULTIPLE_AUTH_SUPPORTED
@ IKE_PAYLOAD_TYPE_IDR
Identification - Responder.
OsTaskId taskId
Task identifier.
uint_t numSaEntries
Number of IKE SA entries.
const CipherAlgo * prfCipherAlgo
Cipher algorithm for CMAC-based PRF calculations.
@ IKE_NOTIFY_MSG_TYPE_ADDITIONAL_KEY_EXCHANGE
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_512_256
uint8_t responderNonce[IKE_MAX_NONCE_SIZE]
@ IKE_PAYLOAD_TYPE_D
Delete.
@ IKE_NOTIFY_MSG_TYPE_EAP_ONLY_AUTHENTICATION
@ IKE_NOTIFY_MSG_TYPE_COOKIE2
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_ADDRESS
@ IKE_PAYLOAD_TYPE_SA
Security Association.
@ IKE_NOTIFY_MSG_TYPE_INVALID_GROUP_ID
IKE Security Association entry.
@ IKE_TRANSFORM_ID_AUTH_NONE
IpAddr remoteIpAddr
IP address of the peer.
IkeSaEntry * saEntries
IKE SA entries.
uint8_t responderSpi[IKE_SPI_SIZE]
Responder SPI.
@ IKE_FLAGS_V
Version flag.
@ IKE_NOTIFY_MSG_TYPE_PSK_PERSIST
IkeTransformIdPrf
Transform IDs (Pseudorandom Function)
IkeAttrType
Configuration attribute types.
@ IKE_TRANSFORM_ID_DH_GROUP_BRAINPOOLP384R1
384-bit Brainpool ECP Group
@ IKE_NOTIFY_MSG_TYPE_INVALID_MAJOR_VERSION
@ IKE_CERT_ENCODING_KERBEROS_TOKEN
Kerberos token.
@ IKE_NOTIFY_MSG_TYPE_IKEV2_MESSAGE_ID_SYNC
@ IKE_NOTIFY_MSG_TYPE_NO_ADDITIONAL_ADDRESSES
@ IKE_NOTIFY_MSG_TYPE_INVALID_IKE_SPI
@ IKE_NOTIFY_MSG_TYPE_UNACCEPTABLE_ADDRESSES
IkeTransformIdAuth
Transform IDs (Integrity Algorithm)
@ IKE_TRANSFORM_ID_DH_GROUP_ECP_521
521-bit Random ECP Group
@ IKE_NOTIFY_MSG_TYPE_CLONE_IKE_SA_SUPPORTED
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_DNS
@ IKE_AUTH_METHOD_ECDSA_P384_SHA384
ECDSA with SHA-384 on the P-384 curve.
IkeTransformAttrType
Transform attribute types.
@ IKE_TRANSFORM_ID_ENCR_RC5
@ IKE_NOTIFY_MSG_TYPE_ADDITIONAL_IP4_ADDRESS
size_t initiatorNonceLen
Length of the initiator nonce.
IkeTransformIdEsn
Transform IDs (Extended Sequence Numbers)
@ IKE_PAYLOAD_TYPE_N
Notify.
@ IKE_CHILD_SA_STATE_RESERVED
uint_t numChildSaEntries
Number of Child SA entries.
uint16_t dhGroupNum
Diffie-Hellman group number.
size_t pskLen
Length of the pre-shared key, in bytes.
@ IKE_TRANSFORM_ID_DH_GROUP_BRAINPOOLP256R1
256-bit Brainpool ECP Group
@ IKE_TRANSFORM_ID_PRF_HMAC_SHA2_512
@ IKE_TRANSFORM_ID_DH_GROUP_MODP_6144
6144-bit MODP Group
const uint8_t * skar
Integrity protection key (responder)
@ IKE_TS_TYPE_IPV6_ADDR_RANGE
@ IKE_CONFIG_ATTR_TYPE_P_CSCF_IP4_ADDRESS
IkeConfigType
Configuration types.
@ IKE_NOTIFY_MSG_TYPE_R_U_THERE_ACK
IkeTsType
Traffic selector types.
@ IKE_SA_STATE_DELETE_CHILD_REQ
@ IKE_CERT_ENCODING_RAW_PUBLIC_KEY
Raw Public Key.
@ IKE_PAYLOAD_TYPE_GSPM
Generic Secure Password Method.
@ IKE_PAYLOAD_TYPE_TSR
Traffic Selector - Responder.
error_t ikeDeleteChildSa(IkeChildSaEntry *childSa)
Delete a Child SA.
IkeChildSaState state
Child SA state.
@ IKE_NOTIFY_MSG_TYPE_INVALID_SYNTAX
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CCM_12
@ IKE_CHILD_SA_STATE_OPEN
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_8
@ IKE_CERT_TYPE_ECDSA_P256
@ IKE_TRANSFORM_TYPE_INTEG
Integrity Algorithm.