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_CHILD_SA_PFS_SUPPORT
124 #define IKE_CHILD_SA_PFS_SUPPORT DISABLED
125 #elif (IKE_CHILD_SA_PFS_SUPPORT != ENABLED && IKE_CHILD_SA_PFS_SUPPORT != DISABLED)
126 #error IKE_CHILD_SA_PFS_SUPPORT parameter is not valid
130 #if (IKE_CREATE_CHILD_SA_SUPPORT == DISABLED)
131 #define IKE_REAUTH_SUPPORT ENABLED
133 #define IKE_REAUTH_SUPPORT DISABLED
137 #ifndef IKE_DPD_SUPPORT
138 #define IKE_DPD_SUPPORT ENABLED
139 #elif (IKE_DPD_SUPPORT != ENABLED && IKE_DPD_SUPPORT != DISABLED)
140 #error IKE_DPD_SUPPORT parameter is not valid
144 #ifndef IKE_NAT_TRAVERSAL_SUPPORT
145 #define IKE_NAT_TRAVERSAL_SUPPORT DISABLED
146 #elif (IKE_NAT_TRAVERSAL_SUPPORT != ENABLED && IKE_NAT_TRAVERSAL_SUPPORT != DISABLED)
147 #error IKE_NAT_TRAVERSAL_SUPPORT parameter is not valid
151 #ifndef IKE_DEFAULT_NAT_KEEPALIVE_INTERVAL
152 #define IKE_DEFAULT_NAT_KEEPALIVE_INTERVAL 20000
153 #elif (IKE_DEFAULT_NAT_KEEPALIVE_INTERVAL < 0)
154 #error IKE_DEFAULT_NAT_KEEPALIVE_INTERVAL parameter is not valid
158 #ifndef IKE_SPECIFIC_TS_SUPPORT
159 #define IKE_SPECIFIC_TS_SUPPORT ENABLED
160 #elif (IKE_SPECIFIC_TS_SUPPORT != ENABLED && IKE_SPECIFIC_TS_SUPPORT != DISABLED)
161 #error IKE_SPECIFIC_TS_SUPPORT parameter is not valid
165 #ifndef IKE_MAX_RETRIES
166 #define IKE_MAX_RETRIES 5
167 #elif (IKE_MAX_RETRIES < 1)
168 #error IKE_MAX_RETRIES parameter is not valid
172 #ifndef IKE_INIT_TIMEOUT
173 #define IKE_INIT_TIMEOUT 3000
174 #elif (IKE_INIT_TIMEOUT < 1000)
175 #error IKE_INIT_TIMEOUT parameter is not valid
179 #ifndef IKE_MAX_TIMEOUT
180 #define IKE_MAX_TIMEOUT 60000
181 #elif (IKE_MAX_TIMEOUT < 1000)
182 #error IKE_MAX_TIMEOUT parameter is not valid
186 #ifndef IKE_HALF_OPEN_TIMEOUT
187 #define IKE_HALF_OPEN_TIMEOUT 30000
188 #elif (IKE_HALF_OPEN_TIMEOUT < 1000)
189 #error IKE_HALF_OPEN_TIMEOUT parameter is not valid
193 #ifndef IKE_RANDOM_JITTER
194 #define IKE_RANDOM_JITTER 10
195 #elif (IKE_RANDOM_JITTER < 0 || IKE_RANDOM_JITTER > 100)
196 #error IKE_RANDOM_JITTER parameter is not valid
200 #ifndef IKE_MAX_MSG_SIZE
201 #define IKE_MAX_MSG_SIZE 1452
202 #elif (IKE_MAX_MSG_SIZE < 1280)
203 #error IKE_MAX_MSG_SIZE parameter is not valid
207 #ifndef IKE_MIN_COOKIE_SIZE
208 #define IKE_MIN_COOKIE_SIZE 1
209 #elif (IKE_MIN_COOKIE_SIZE < 1)
210 #error IKE_MIN_COOKIE_SIZE parameter is not valid
214 #ifndef IKE_MAX_COOKIE_SIZE
215 #define IKE_MAX_COOKIE_SIZE 64
216 #elif (IKE_MAX_COOKIE_SIZE < 64)
217 #error IKE_MAX_COOKIE_SIZE parameter is not valid
221 #ifndef IKE_MIN_NONCE_SIZE
222 #define IKE_MIN_NONCE_SIZE 16
223 #elif (IKE_MIN_NONCE_SIZE < 16 || IKE_MIN_NONCE_SIZE > 256)
224 #error IKE_MIN_NONCE_SIZE parameter is not valid
228 #ifndef IKE_DEFAULT_NONCE_SIZE
229 #define IKE_DEFAULT_NONCE_SIZE 32
230 #elif (IKE_DEFAULT_NONCE_SIZE < 16 || IKE_DEFAULT_NONCE_SIZE > 256)
231 #error IKE_DEFAULT_NONCE_SIZE parameter is not valid
235 #ifndef IKE_MAX_NONCE_SIZE
236 #define IKE_MAX_NONCE_SIZE 64
237 #elif (IKE_MAX_NONCE_SIZE < 16 || IKE_MAX_NONCE_SIZE > 256)
238 #error IKE_MAX_NONCE_SIZE parameter is not valid
242 #ifndef IKE_MAX_ID_LEN
243 #define IKE_MAX_ID_LEN 64
244 #elif (IKE_MAX_ID_LEN < 0)
245 #error IKE_MAX_ID_LEN is not valid
249 #ifndef IKE_MAX_PSK_LEN
250 #define IKE_MAX_PSK_LEN 64
251 #elif (IKE_MAX_PSK_LEN < 0)
252 #error IKE_MAX_PSK_LEN is not valid
256 #ifndef IKE_MAX_PASSWORD_LEN
257 #define IKE_MAX_PASSWORD_LEN 32
258 #elif (IKE_MAX_PASSWORD_LEN < 0)
259 #error IKE_MAX_PASSWORD_LEN parameter is not valid
263 #ifndef IKE_CBC_SUPPORT
264 #define IKE_CBC_SUPPORT ENABLED
265 #elif (IKE_CBC_SUPPORT != ENABLED && IKE_CBC_SUPPORT != DISABLED)
266 #error IKE_CBC_SUPPORT parameter is not valid
270 #ifndef IKE_CTR_SUPPORT
271 #define IKE_CTR_SUPPORT DISABLED
272 #elif (IKE_CTR_SUPPORT != ENABLED && IKE_CTR_SUPPORT != DISABLED)
273 #error IKE_CTR_SUPPORT parameter is not valid
277 #ifndef IKE_CCM_8_SUPPORT
278 #define IKE_CCM_8_SUPPORT DISABLED
279 #elif (IKE_CCM_8_SUPPORT != ENABLED && IKE_CCM_8_SUPPORT != DISABLED)
280 #error IKE_CCM_8_SUPPORT parameter is not valid
284 #ifndef IKE_CCM_12_SUPPORT
285 #define IKE_CCM_12_SUPPORT DISABLED
286 #elif (IKE_CCM_12_SUPPORT != ENABLED && IKE_CCM_12_SUPPORT != DISABLED)
287 #error IKE_CCM_12_SUPPORT parameter is not valid
291 #ifndef IKE_CCM_16_SUPPORT
292 #define IKE_CCM_16_SUPPORT DISABLED
293 #elif (IKE_CCM_16_SUPPORT != ENABLED && IKE_CCM_16_SUPPORT != DISABLED)
294 #error IKE_CCM_16_SUPPORT parameter is not valid
298 #ifndef IKE_GCM_8_SUPPORT
299 #define IKE_GCM_8_SUPPORT DISABLED
300 #elif (IKE_GCM_8_SUPPORT != ENABLED && IKE_GCM_8_SUPPORT != DISABLED)
301 #error IKE_GCM_8_SUPPORT parameter is not valid
305 #ifndef IKE_GCM_12_SUPPORT
306 #define IKE_GCM_12_SUPPORT DISABLED
307 #elif (IKE_GCM_12_SUPPORT != ENABLED && IKE_GCM_12_SUPPORT != DISABLED)
308 #error IKE_GCM_12_SUPPORT parameter is not valid
312 #ifndef IKE_GCM_16_SUPPORT
313 #define IKE_GCM_16_SUPPORT ENABLED
314 #elif (IKE_GCM_16_SUPPORT != ENABLED && IKE_GCM_16_SUPPORT != DISABLED)
315 #error IKE_GCM_16_SUPPORT parameter is not valid
319 #ifndef IKE_CHACHA20_POLY1305_SUPPORT
320 #define IKE_CHACHA20_POLY1305_SUPPORT ENABLED
321 #elif (IKE_CHACHA20_POLY1305_SUPPORT != ENABLED && IKE_CHACHA20_POLY1305_SUPPORT != DISABLED)
322 #error IKE_CHACHA20_POLY1305_SUPPORT parameter is not valid
326 #ifndef IKE_CMAC_AUTH_SUPPORT
327 #define IKE_CMAC_AUTH_SUPPORT DISABLED
328 #elif (IKE_CMAC_AUTH_SUPPORT != ENABLED && IKE_CMAC_AUTH_SUPPORT != DISABLED)
329 #error IKE_CMAC_AUTH_SUPPORT parameter is not valid
333 #ifndef IKE_HMAC_AUTH_SUPPORT
334 #define IKE_HMAC_AUTH_SUPPORT ENABLED
335 #elif (IKE_HMAC_AUTH_SUPPORT != ENABLED && IKE_HMAC_AUTH_SUPPORT != DISABLED)
336 #error IKE_HMAC_AUTH_SUPPORT parameter is not valid
340 #ifndef IKE_KMAC128_AUTH_SUPPORT
341 #define IKE_KMAC128_AUTH_SUPPORT DISABLED
342 #elif (IKE_KMAC128_AUTH_SUPPORT != ENABLED && IKE_KMAC128_AUTH_SUPPORT != DISABLED)
343 #error IKE_KMAC128_AUTH_SUPPORT parameter is not valid
347 #ifndef IKE_KMAC256_AUTH_SUPPORT
348 #define IKE_KMAC256_AUTH_SUPPORT DISABLED
349 #elif (IKE_KMAC256_AUTH_SUPPORT != ENABLED && IKE_KMAC256_AUTH_SUPPORT != DISABLED)
350 #error IKE_KMAC256_AUTH_SUPPORT parameter is not valid
354 #ifndef IKE_XCBC_MAC_AUTH_SUPPORT
355 #define IKE_XCBC_MAC_AUTH_SUPPORT DISABLED
356 #elif (IKE_XCBC_MAC_AUTH_SUPPORT != ENABLED && IKE_XCBC_MAC_AUTH_SUPPORT != DISABLED)
357 #error IKE_XCBC_MAC_AUTH_SUPPORT parameter is not valid
361 #ifndef IKE_CMAC_PRF_SUPPORT
362 #define IKE_CMAC_PRF_SUPPORT DISABLED
363 #elif (IKE_CMAC_PRF_SUPPORT != ENABLED && IKE_CMAC_PRF_SUPPORT != DISABLED)
364 #error IKE_CMAC_PRF_SUPPORT parameter is not valid
368 #ifndef IKE_HMAC_PRF_SUPPORT
369 #define IKE_HMAC_PRF_SUPPORT ENABLED
370 #elif (IKE_HMAC_PRF_SUPPORT != ENABLED && IKE_HMAC_PRF_SUPPORT != DISABLED)
371 #error IKE_HMAC_PRF_SUPPORT parameter is not valid
375 #ifndef IKE_KMAC128_PRF_SUPPORT
376 #define IKE_KMAC128_PRF_SUPPORT DISABLED
377 #elif (IKE_KMAC128_PRF_SUPPORT != ENABLED && IKE_KMAC128_PRF_SUPPORT != DISABLED)
378 #error IKE_KMAC128_PRF_SUPPORT parameter is not valid
382 #ifndef IKE_KMAC256_PRF_SUPPORT
383 #define IKE_KMAC256_PRF_SUPPORT DISABLED
384 #elif (IKE_KMAC256_PRF_SUPPORT != ENABLED && IKE_KMAC256_PRF_SUPPORT != DISABLED)
385 #error IKE_KMAC256_PRF_SUPPORT parameter is not valid
389 #ifndef IKE_XCBC_MAC_PRF_SUPPORT
390 #define IKE_XCBC_MAC_PRF_SUPPORT DISABLED
391 #elif (IKE_XCBC_MAC_PRF_SUPPORT != ENABLED && IKE_XCBC_MAC_PRF_SUPPORT != DISABLED)
392 #error IKE_XCBC_MAC_PRF_SUPPORT parameter is not valid
396 #ifndef IKE_IDEA_SUPPORT
397 #define IKE_IDEA_SUPPORT DISABLED
398 #elif (IKE_IDEA_SUPPORT != ENABLED && IKE_IDEA_SUPPORT != DISABLED)
399 #error IKE_IDEA_SUPPORT parameter is not valid
403 #ifndef IKE_DES_SUPPORT
404 #define IKE_DES_SUPPORT DISABLED
405 #elif (IKE_DES_SUPPORT != ENABLED && IKE_DES_SUPPORT != DISABLED)
406 #error IKE_DES_SUPPORT parameter is not valid
410 #ifndef IKE_3DES_SUPPORT
411 #define IKE_3DES_SUPPORT DISABLED
412 #elif (IKE_3DES_SUPPORT != ENABLED && IKE_3DES_SUPPORT != DISABLED)
413 #error IKE_3DES_SUPPORT parameter is not valid
417 #ifndef IKE_AES_128_SUPPORT
418 #define IKE_AES_128_SUPPORT ENABLED
419 #elif (IKE_AES_128_SUPPORT != ENABLED && IKE_AES_128_SUPPORT != DISABLED)
420 #error IKE_AES_128_SUPPORT parameter is not valid
424 #ifndef IKE_AES_192_SUPPORT
425 #define IKE_AES_192_SUPPORT ENABLED
426 #elif (IKE_AES_192_SUPPORT != ENABLED && IKE_AES_192_SUPPORT != DISABLED)
427 #error IKE_AES_192_SUPPORT parameter is not valid
431 #ifndef IKE_AES_256_SUPPORT
432 #define IKE_AES_256_SUPPORT ENABLED
433 #elif (IKE_AES_256_SUPPORT != ENABLED && IKE_AES_256_SUPPORT != DISABLED)
434 #error IKE_AES_256_SUPPORT parameter is not valid
438 #ifndef IKE_CAMELLIA_128_SUPPORT
439 #define IKE_CAMELLIA_128_SUPPORT DISABLED
440 #elif (IKE_CAMELLIA_128_SUPPORT != ENABLED && IKE_CAMELLIA_128_SUPPORT != DISABLED)
441 #error IKE_CAMELLIA_128_SUPPORT parameter is not valid
445 #ifndef IKE_CAMELLIA_192_SUPPORT
446 #define IKE_CAMELLIA_192_SUPPORT DISABLED
447 #elif (IKE_CAMELLIA_192_SUPPORT != ENABLED && IKE_CAMELLIA_192_SUPPORT != DISABLED)
448 #error IKE_CAMELLIA_192_SUPPORT parameter is not valid
452 #ifndef IKE_CAMELLIA_256_SUPPORT
453 #define IKE_CAMELLIA_256_SUPPORT DISABLED
454 #elif (IKE_CAMELLIA_256_SUPPORT != ENABLED && IKE_CAMELLIA_256_SUPPORT != DISABLED)
455 #error IKE_CAMELLIA_256_SUPPORT parameter is not valid
459 #ifndef IKE_SM4_SUPPORT
460 #define IKE_SM4_SUPPORT DISABLED
461 #elif (IKE_SM4_SUPPORT != ENABLED && IKE_SM4_SUPPORT != DISABLED)
462 #error IKE_SM4_SUPPORT parameter is not valid
466 #ifndef IKE_MD5_SUPPORT
467 #define IKE_MD5_SUPPORT DISABLED
468 #elif (IKE_MD5_SUPPORT != ENABLED && IKE_MD5_SUPPORT != DISABLED)
469 #error IKE_MD5_SUPPORT parameter is not valid
473 #ifndef IKE_SHA1_SUPPORT
474 #define IKE_SHA1_SUPPORT ENABLED
475 #elif (IKE_SHA1_SUPPORT != ENABLED && IKE_SHA1_SUPPORT != DISABLED)
476 #error IKE_SHA1_SUPPORT parameter is not valid
480 #ifndef IKE_SHA256_SUPPORT
481 #define IKE_SHA256_SUPPORT ENABLED
482 #elif (IKE_SHA256_SUPPORT != ENABLED && IKE_SHA256_SUPPORT != DISABLED)
483 #error IKE_SHA256_SUPPORT parameter is not valid
487 #ifndef IKE_SHA384_SUPPORT
488 #define IKE_SHA384_SUPPORT ENABLED
489 #elif (IKE_SHA384_SUPPORT != ENABLED && IKE_SHA384_SUPPORT != DISABLED)
490 #error IKE_SHA384_SUPPORT parameter is not valid
494 #ifndef IKE_SHA512_SUPPORT
495 #define IKE_SHA512_SUPPORT ENABLED
496 #elif (IKE_SHA512_SUPPORT != ENABLED && IKE_SHA512_SUPPORT != DISABLED)
497 #error IKE_SHA512_SUPPORT parameter is not valid
501 #ifndef IKE_SHAKE128_SUPPORT
502 #define IKE_SHAKE128_SUPPORT DISABLED
503 #elif (IKE_SHAKE128_SUPPORT != ENABLED && IKE_SHAKE128_SUPPORT != DISABLED)
504 #error IKE_SHAKE128_SUPPORT parameter is not valid
508 #ifndef IKE_SHAKE256_SUPPORT
509 #define IKE_SHAKE256_SUPPORT DISABLED
510 #elif (IKE_SHAKE256_SUPPORT != ENABLED && IKE_SHAKE256_SUPPORT != DISABLED)
511 #error IKE_SHAKE256_SUPPORT parameter is not valid
515 #ifndef IKE_SM3_SUPPORT
516 #define IKE_SM3_SUPPORT DISABLED
517 #elif (IKE_SM3_SUPPORT != ENABLED && IKE_SM3_SUPPORT != DISABLED)
518 #error IKE_SM3_SUPPORT parameter is not valid
522 #ifndef IKE_TIGER_SUPPORT
523 #define IKE_TIGER_SUPPORT DISABLED
524 #elif (IKE_TIGER_SUPPORT != ENABLED && IKE_TIGER_SUPPORT != DISABLED)
525 #error IKE_TIGER_SUPPORT parameter is not valid
529 #ifndef IKE_DH_KE_SUPPORT
530 #define IKE_DH_KE_SUPPORT ENABLED
531 #elif (IKE_DH_KE_SUPPORT != ENABLED && IKE_DH_KE_SUPPORT != DISABLED)
532 #error IKE_DH_KE_SUPPORT parameter is not valid
536 #ifndef IKE_ECDH_KE_SUPPORT
537 #define IKE_ECDH_KE_SUPPORT ENABLED
538 #elif (IKE_ECDH_KE_SUPPORT != ENABLED && IKE_ECDH_KE_SUPPORT != DISABLED)
539 #error IKE_ECDH_KE_SUPPORT parameter is not valid
543 #ifndef IKE_RSA_SIGN_SUPPORT
544 #define IKE_RSA_SIGN_SUPPORT ENABLED
545 #elif (IKE_RSA_SIGN_SUPPORT != ENABLED && IKE_RSA_SIGN_SUPPORT != DISABLED)
546 #error IKE_RSA_SIGN_SUPPORT parameter is not valid
550 #ifndef IKE_RSA_PSS_SIGN_SUPPORT
551 #define IKE_RSA_PSS_SIGN_SUPPORT DISABLED
552 #elif (IKE_RSA_PSS_SIGN_SUPPORT != ENABLED && IKE_RSA_PSS_SIGN_SUPPORT != DISABLED)
553 #error IKE_RSA_PSS_SIGN_SUPPORT parameter is not valid
557 #ifndef IKE_DSA_SIGN_SUPPORT
558 #define IKE_DSA_SIGN_SUPPORT DISABLED
559 #elif (IKE_DSA_SIGN_SUPPORT != ENABLED && IKE_DSA_SIGN_SUPPORT != DISABLED)
560 #error IKE_DSA_SIGN_SUPPORT parameter is not valid
564 #ifndef IKE_ECDSA_SIGN_SUPPORT
565 #define IKE_ECDSA_SIGN_SUPPORT ENABLED
566 #elif (IKE_ECDSA_SIGN_SUPPORT != ENABLED && IKE_ECDSA_SIGN_SUPPORT != DISABLED)
567 #error IKE_ECDSA_SIGN_SUPPORT parameter is not valid
571 #ifndef IKE_SM2_SIGN_SUPPORT
572 #define IKE_SM2_SIGN_SUPPORT DISABLED
573 #elif (IKE_SM2_SIGN_SUPPORT != ENABLED && IKE_SM2_SIGN_SUPPORT != DISABLED)
574 #error IKE_SM2_SIGN_SUPPORT parameter is not valid
578 #ifndef IKE_ED25519_SIGN_SUPPORT
579 #define IKE_ED25519_SIGN_SUPPORT ENABLED
580 #elif (IKE_ED25519_SIGN_SUPPORT != ENABLED && IKE_ED25519_SIGN_SUPPORT != DISABLED)
581 #error IKE_ED25519_SIGN_SUPPORT parameter is not valid
585 #ifndef IKE_ED448_SIGN_SUPPORT
586 #define IKE_ED448_SIGN_SUPPORT DISABLED
587 #elif (IKE_ED448_SIGN_SUPPORT != ENABLED && IKE_ED448_SIGN_SUPPORT != DISABLED)
588 #error IKE_ED448_SIGN_SUPPORT parameter is not valid
592 #ifndef IKE_ECP_192_SUPPORT
593 #define IKE_ECP_192_SUPPORT DISABLED
594 #elif (IKE_ECP_192_SUPPORT != ENABLED && IKE_ECP_192_SUPPORT != DISABLED)
595 #error IKE_ECP_192_SUPPORT parameter is not valid
599 #ifndef IKE_ECP_224_SUPPORT
600 #define IKE_ECP_224_SUPPORT DISABLED
601 #elif (IKE_ECP_224_SUPPORT != ENABLED && IKE_ECP_224_SUPPORT != DISABLED)
602 #error IKE_ECP_224_SUPPORT parameter is not valid
606 #ifndef IKE_ECP_256_SUPPORT
607 #define IKE_ECP_256_SUPPORT ENABLED
608 #elif (IKE_ECP_256_SUPPORT != ENABLED && IKE_ECP_256_SUPPORT != DISABLED)
609 #error IKE_ECP_256_SUPPORT parameter is not valid
613 #ifndef IKE_ECP_384_SUPPORT
614 #define IKE_ECP_384_SUPPORT ENABLED
615 #elif (IKE_ECP_384_SUPPORT != ENABLED && IKE_ECP_384_SUPPORT != DISABLED)
616 #error IKE_ECP_384_SUPPORT parameter is not valid
620 #ifndef IKE_ECP_521_SUPPORT
621 #define IKE_ECP_521_SUPPORT DISABLED
622 #elif (IKE_ECP_521_SUPPORT != ENABLED && IKE_ECP_521_SUPPORT != DISABLED)
623 #error IKE_ECP_521_SUPPORT parameter is not valid
627 #ifndef IKE_BRAINPOOLP224R1_SUPPORT
628 #define IKE_BRAINPOOLP224R1_SUPPORT DISABLED
629 #elif (IKE_BRAINPOOLP224R1_SUPPORT != ENABLED && IKE_BRAINPOOLP224R1_SUPPORT != DISABLED)
630 #error IKE_BRAINPOOLP224R1_SUPPORT parameter is not valid
634 #ifndef IKE_BRAINPOOLP256R1_SUPPORT
635 #define IKE_BRAINPOOLP256R1_SUPPORT DISABLED
636 #elif (IKE_BRAINPOOLP256R1_SUPPORT != ENABLED && IKE_BRAINPOOLP256R1_SUPPORT != DISABLED)
637 #error IKE_BRAINPOOLP256R1_SUPPORT parameter is not valid
641 #ifndef IKE_BRAINPOOLP384R1_SUPPORT
642 #define IKE_BRAINPOOLP384R1_SUPPORT DISABLED
643 #elif (IKE_BRAINPOOLP384R1_SUPPORT != ENABLED && IKE_BRAINPOOLP384R1_SUPPORT != DISABLED)
644 #error IKE_BRAINPOOLP384R1_SUPPORT parameter is not valid
648 #ifndef IKE_BRAINPOOLP512R1_SUPPORT
649 #define IKE_BRAINPOOLP512R1_SUPPORT DISABLED
650 #elif (IKE_BRAINPOOLP512R1_SUPPORT != ENABLED && IKE_BRAINPOOLP512R1_SUPPORT != DISABLED)
651 #error IKE_BRAINPOOLP512R1_SUPPORT parameter is not valid
655 #ifndef IKE_SM2_SUPPORT
656 #define IKE_SM2_SUPPORT DISABLED
657 #elif (IKE_SM2_SUPPORT != ENABLED && IKE_SM2_SUPPORT != DISABLED)
658 #error IKE_SM2_SUPPORT parameter is not valid
662 #ifndef IKE_CURVE25519_SUPPORT
663 #define IKE_CURVE25519_SUPPORT ENABLED
664 #elif (IKE_CURVE25519_SUPPORT != ENABLED && IKE_CURVE25519_SUPPORT != DISABLED)
665 #error IKE_CURVE25519_SUPPORT parameter is not valid
669 #ifndef IKE_CURVE448_SUPPORT
670 #define IKE_CURVE448_SUPPORT DISABLED
671 #elif (IKE_CURVE448_SUPPORT != ENABLED && IKE_CURVE448_SUPPORT != DISABLED)
672 #error IKE_CURVE448_SUPPORT parameter is not valid
676 #ifndef IKE_MLKEM512_SUPPORT
677 #define IKE_MLKEM512_SUPPORT DISABLED
678 #elif (IKE_MLKEM512_SUPPORT != ENABLED && IKE_MLKEM512_SUPPORT != DISABLED)
679 #error IKE_MLKEM512_SUPPORT parameter is not valid
683 #ifndef IKE_MLKEM768_SUPPORT
684 #define IKE_MLKEM768_SUPPORT DISABLED
685 #elif (IKE_MLKEM768_SUPPORT != ENABLED && IKE_MLKEM768_SUPPORT != DISABLED)
686 #error IKE_MLKEM768_SUPPORT parameter is not valid
690 #ifndef IKE_MLKEM1024_SUPPORT
691 #define IKE_MLKEM1024_SUPPORT DISABLED
692 #elif (IKE_MLKEM1024_SUPPORT != ENABLED && IKE_MLKEM1024_SUPPORT != DISABLED)
693 #error IKE_MLKEM1024_SUPPORT parameter is not valid
697 #ifndef IKE_MIN_DH_MODULUS_SIZE
698 #define IKE_MIN_DH_MODULUS_SIZE 1024
699 #elif (IKE_MIN_DH_MODULUS_SIZE < 768)
700 #error IKE_MIN_DH_MODULUS_SIZE parameter is not valid
704 #ifndef IKE_MAX_DH_MODULUS_SIZE
705 #define IKE_MAX_DH_MODULUS_SIZE 2048
706 #elif (IKE_MAX_DH_MODULUS_SIZE < IKE_PREFERRED_DH_MODULUS_SIZE)
707 #error IKE_MAX_DH_MODULUS_SIZE parameter is not valid
711 #ifndef IKE_MIN_RSA_MODULUS_SIZE
712 #define IKE_MIN_RSA_MODULUS_SIZE 1024
713 #elif (IKE_MIN_RSA_MODULUS_SIZE < 1024)
714 #error IKE_MIN_RSA_MODULUS_SIZE parameter is not valid
718 #ifndef IKE_MAX_RSA_MODULUS_SIZE
719 #define IKE_MAX_RSA_MODULUS_SIZE 4096
720 #elif (IKE_MAX_RSA_MODULUS_SIZE < IKE_MIN_RSA_MODULUS_SIZE)
721 #error IKE_MAX_RSA_MODULUS_SIZE parameter is not valid
725 #ifndef IKE_MIN_DSA_MODULUS_SIZE
726 #define IKE_MIN_DSA_MODULUS_SIZE 1024
727 #elif (IKE_MIN_DSA_MODULUS_SIZE < 1024)
728 #error IKE_MIN_DSA_MODULUS_SIZE parameter is not valid
732 #ifndef IKE_MAX_DSA_MODULUS_SIZE
733 #define IKE_MAX_DSA_MODULUS_SIZE 4096
734 #elif (IKE_MAX_DSA_MODULUS_SIZE < IKE_MIN_DSA_MODULUS_SIZE)
735 #error IKE_MAX_DSA_MODULUS_SIZE parameter is not valid
739 #ifndef IKE_MAX_SA_KEY_MAT_LEN
740 #define IKE_MAX_SA_KEY_MAT_LEN 392
741 #elif (IKE_MAX_SA_KEY_MAT_LEN < 1)
742 #error IKE_MAX_SA_KEY_MAT_LEN parameter is not valid
746 #ifndef IKE_MAX_CHILD_SA_KEY_MAT_LEN
747 #define IKE_MAX_CHILD_SA_KEY_MAT_LEN 200
748 #elif (IKE_MAX_CHILD_SA_KEY_MAT_LEN < 1)
749 #error IKE_MAX_CHILD_SA_KEY_MAT_LEN parameter is not valid
754 #define ikeAllocMem(size) osAllocMem(size)
759 #define ikeFreeMem(p) osFreeMem(p)
763 #if (IKE_SHA512_SUPPORT == ENABLED)
764 #define IKE_MAX_DIGEST_SIZE 64
765 #elif (IKE_SHA384_SUPPORT == ENABLED)
766 #define IKE_MAX_DIGEST_SIZE 48
768 #define IKE_MAX_DIGEST_SIZE 32
772 #if (IKE_HMAC_AUTH_SUPPORT == ENABLED && IKE_SHA512_SUPPORT == ENABLED)
773 #define IKE_MAX_ICV_SIZE 32
774 #elif (IKE_HMAC_AUTH_SUPPORT == ENABLED && IKE_SHA384_SUPPORT == ENABLED)
775 #define IKE_MAX_ICV_SIZE 24
776 #elif (IKE_HMAC_AUTH_SUPPORT == ENABLED && IKE_SHA256_SUPPORT == ENABLED)
777 #define IKE_MAX_ICV_SIZE 16
779 #define IKE_MAX_ICV_SIZE 12
783 #if (IKE_DH_KE_SUPPORT == ENABLED)
784 #define IKE_MAX_DH_SHARED_SECRET_LEN ((IKE_MAX_DH_MODULUS_SIZE + 7) / 8)
786 #define IKE_MAX_DH_SHARED_SECRET_LEN 0
790 #if (IKE_ECDH_KE_SUPPORT == ENABLED && IKE_ECP_521_SUPPORT == ENABLED)
791 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 66
792 #elif (IKE_ECDH_KE_SUPPORT == ENABLED && IKE_CURVE448_SUPPORT == ENABLED)
793 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 56
794 #elif (IKE_ECDH_KE_SUPPORT == ENABLED && IKE_ECP_384_SUPPORT == ENABLED)
795 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 48
797 #define IKE_MAX_ECDH_SHARED_SECRET_LEN 32
801 #if (IKE_MAX_DH_SHARED_SECRET_LEN >= IKE_MAX_ECDH_SHARED_SECRET_LEN)
802 #define IKE_MAX_SHARED_SECRET_LEN IKE_MAX_DH_SHARED_SECRET_LEN
804 #define IKE_MAX_SHARED_SECRET_LEN IKE_MAX_ECDH_SHARED_SECRET_LEN
808 #define IKE_MAJOR_VERSION 2
810 #define IKE_MINOR_VERSION 0
816 #define IKE_PREFIX_SIZE 4
818 #define IKE_PREFIX_VALUE 0
821 #define IKE_NAT_KEEPALIVE_PACKET_SIZE 1
823 #define IKE_NAT_KEEPALIVE_PACKET_VALUE 0xFF
826 #define IKE_SPI_SIZE 8
828 #define IKE_SHA1_DIGEST_SIZE 20
832 #define IkeContext struct _IkeContext
836 #define IkeSaEntry struct _IkeSaEntry
840 #define IkeChildSaEntry struct _IkeChildSaEntry
1432 #if defined(__CCRX__)
1434 #elif defined(__CWCC__) || defined(_WIN32)
1435 #pragma pack(push, 1)
1448 #if defined(_CPU_BIG_ENDIAN) && !defined(__ICCRX__)
1469 #if defined(_CPU_BIG_ENDIAN) && !defined(__ICCRX__)
1497 uint8_t lastSubstruc;
1514 uint8_t lastSubstruc;
1763 #if defined(__CCRX__)
1765 #elif defined(__CWCC__) || defined(_WIN32)
1784 size_t nonceLen, uint8_t *
cookie,
size_t *cookieLen);
1793 size_t nonceLen,
const uint8_t *
cookie,
size_t cookieLen);
1817 #if (IKE_DH_KE_SUPPORT == ENABLED)
1820 #if (IKE_ECDH_KE_SUPPORT == ENABLED)
1836 #if (IKE_CREATE_CHILD_SA_SUPPORT == ENABLED)
1840 #if (IKE_REAUTH_SUPPORT == ENABLED)
1847 #if (IKE_REAUTH_SUPPORT == ENABLED)
1850 #if (IKE_DPD_SUPPORT == ENABLED)
1925 #if (IKE_CREATE_CHILD_SA_SUPPORT == ENABLED)
1928 #if (IKE_REAUTH_SUPPORT == ENABLED)
1935 #if (IKE_INITIAL_CONTACT_SUPPORT == ENABLED)
1938 #if (IKE_SIGN_HASH_ALGOS_SUPPORT == ENABLED)
1941 #if (IKE_NAT_TRAVERSAL_SUPPORT == ENABLED)
1980 #if (IKE_CHILD_SA_PFS_SUPPORT == ENABLED)
2008 #if (IKE_CREATE_CHILD_SA_SUPPORT == ENABLED)
2036 #if (IKE_REAUTH_SUPPORT == ENABLED)
2039 #if (IKE_DPD_SUPPORT == ENABLED)
2042 #if (IKE_NAT_TRAVERSAL_SUPPORT == ENABLED)
2045 #if (IKE_COOKIE_SUPPORT == ENABLED)
2049 #if (IKE_CERT_AUTH_SUPPORT == ENABLED)
2072 #if (IKE_REAUTH_SUPPORT == ENABLED)
2075 #if (IKE_DPD_SUPPORT == ENABLED)
2092 #if (IKE_NAT_TRAVERSAL_SUPPORT == ENABLED)
2110 #if (IKE_COOKIE_SUPPORT == ENABLED)
2114 #if (IKE_CERT_AUTH_SUPPORT == ENABLED)
2135 size_t certChainLen,
const char_t *privateKey,
size_t privateKeyLen,
IkeSaState
IKE Security Association state.
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_8
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_DNSSEC_TA
@ IKE_CHILD_SA_STATE_DELETE
@ IKE_TRANSFORM_ID_AUTH_AES_CMAC_96
@ IKE_TRANSFORM_ID_ENCR_RESERVED
@ IKE_NOTIFY_MSG_TYPE_PSK_CONFIRM
size_t encKeyLen
Size of the encryption key, in bytes.
@ IKE_TRANSFORM_ID_KE_MODP_1024
1024-bit MODP Group
IkeCertType
Certificate types.
IkeTransformIdEncr
Transform IDs (Encryption Algorithm)
X.509 common definitions.
IkeCookieVerifyCallback cookieVerifyCallback
Cookie verification callback function.
@ IKE_CONFIG_ATTR_TYPE_HOME_AGENT_ADDRESS
uint16_t localPort
Destination port of the received IKE message.
IpsecSelector selector
Selector parameters.
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_384_192
Collection of key exchange algorithms.
size_t responderNonceLen
Length of the responder nonce.
uint8_t acceptedProposalNum
Number of the accepted proposal.
size_t saltLen
Length of the salt, in bytes.
@ IKE_NOTIFY_MSG_TYPE_CLONE_IKE_SA
@ IKE_NOTIFY_MSG_TYPE_PPK_IDENTITY_KEY
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA1_96
@ IKE_TS_TYPE_IPV4_ADDR_RANGE
TS_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_CONFIG_ATTR_TYPE_INTERNAL_IP4_SUBNET
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_16
@ IKE_TRANSFORM_ID_KE_ML_KEM_1024
ML-KEM-1024.
@ IKE_NOTIFY_MSG_TYPE_IPCOMP_SUPPORTED
@ IKE_TRANSFORM_ID_ENCR_KUZNYECHIK_MGM_KTREE
MacContext macContext
MAC context.
@ 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_NOTIFY_MSG_TYPE_REGISTRATION_FAILED
@ 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.
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.
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CBC
@ IKE_ID_TYPE_DER_ASN1_DN
@ IKE_HASH_ALGO_STREEBOG_256
@ IKE_TRANSFORM_ID_ENCR_IDEA
@ IKE_TRANSFORM_ID_AUTH_AES_128_GMAC
@ IKE_TRANSFORM_ID_AUTH_HMAC_MD5_96
@ 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_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 cipher algorithms.
size_t peerIdLen
Length of the peer ID, in bytes.
@ IKE_NOTIFY_MSG_TYPE_USE_PPK_INT
IpsecMode mode
IPsec mode (tunnel or transport)
@ IKE_NOTIFY_MSG_TYPE_PUZZLE
IkeKeContext keContext
Key exchange context.
@ IKE_CONFIG_ATTR_TYPE_SUPPORTED_ATTRIBUTES
int_t inboundSa
Inbound SAD entry.
Generic cipher algorithm context.
uint32_t signHashAlgos
List of hash algorithms supported by the peer.
@ IKE_TRANSFORM_ID_KE_MODP_2048_224
2048-bit MODP Group with 224-bit Prime Order Subgroup
@ IKE_NOTIFY_MSG_TYPE_SA_RESOURCE_INFO
IpsecPacketInfo packetInfo
Triggering packet.
@ IKE_TRANSFORM_ID_ESN_NO
No Extended Sequence Numbers.
size_t encKeyLen
Length of the encryption key, in bytes.
@ IKE_TRANSFORM_TYPE_ADDKE2
Additional Key Exchange 2.
@ 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
@ IKE_TRANSFORM_ID_KE_ML_KEM_512
ML-KEM-512.
IpAddr remoteIpAddr
Source IP address of the received IKE message.
@ IKE_AUTH_METHOD_RSA
RSA Digital Signature.
@ IKE_TRANSFORM_ID_KE_BRAINPOOLP256R1
256-bit Brainpool ECP Group
@ IKE_TRANSFORM_ID_KE_ECP_192
192-bit Random ECP Group
@ IKE_CONFIG_ATTR_TYPE_ENCDNS_DIGEST_INFO
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CCM_8
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_LINK
@ 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_EXCHANGE_TYPE_GSA_INBAND_REKEY
GSA_INBAND_REKEY.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_ADDRESS
@ IKE_NOTIFY_MSG_TYPE_USE_WESP_MODE
size_t icvLen
Length of the ICV tag, in bytes.
@ IKE_TRANSFORM_ID_KE_MODP_768
768-bit MODP Group
@ IKE_CONFIG_ATTR_TYPE_P_CSCF_IP4_ADDRESS
IkeNotifyMsgType notifyMsgType
@ IKE_PAYLOAD_TYPE_CERTREQ
Certificate Request.
error_t ikeRekeyChildSa(IkeChildSaEntry *childSa)
Rekey a Child SA.
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.
IkeSaEntry * sa
IKE SA entries.
@ IKE_TRANSFORM_ID_AUTH_AES_192_GMAC
@ IKE_NOTIFY_MSG_TYPE_IFOM_CAPABILITY
error_t ikeRekeySa(IkeSaEntry *sa)
Rekey an IKE SA.
@ IKE_TRANSFORM_TYPE_GCAUTH
Group Controller Authentication Method.
@ IKE_NOTIFY_MSG_TYPE_ROHC_SUPPORTED
bool_t remoteNat
The remote host is behind a NAT.
bool_t rekeyRequest
Child SA rekey request.
@ IKE_NOTIFY_MSG_TYPE_TICKET_NACK
@ IKE_TRANSFORM_ID_KE_MODP_2048_256
2048-bit MODP Group with 256-bit Prime Order Subgroup
@ IKE_TRANSFORM_ID_ENCR_CHACHA20_POLY1305_IIV
uint8_t iv[8]
Initialization vector.
error_t ikeSetPreferredGroup(IkeContext *context, uint16_t groupNum)
Specify the preferred key exchange method.
@ 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.
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_TRANSFORM_ID_KE_ECP_224
224-bit Random ECP Group
@ IKE_TRANSFORM_TYPE_KWA
Key Wrap Algorithm.
@ IKE_AUTH_METHOD_NULL
NULL Authentication.
const uint8_t * skei
Encryption key (initiator)
uint8_t response[IKE_MAX_MSG_SIZE]
Response message.
@ IKE_TS_TYPE_SECLABEL
TS_SECLABEL.
uint8_t initiatorNonce[IKE_MAX_NONCE_SIZE]
Initiator nonce.
char_t password[IKE_MAX_PASSWORD_LEN+1]
Password used to decrypt the private key.
@ IKE_NOTIFY_MSG_TYPE_SIGNATURE_HASH_ALGORITHMS
@ IKE_TRANSFORM_ID_ENCR_CHACHA20_POLY1305
@ IKE_TRANSFORM_ID_KE_ECP_384
384-bit Random ECP Group
@ IKE_TRANSFORM_TYPE_ADDKE7
Additional Key Exchange 7.
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.
IkeChildSaEntry * childSa2
Child SA (created by the peer)
uint8_t responderNonce[IKE_MAX_NONCE_SIZE]
Responder nonce.
bool_t noAdditionalSas
NO_ADDITIONAL_SAS notification received.
@ IKE_CONFIG_ATTR_TYPE_ENCDNS_IP6
@ 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
@ IKE_TRANSFORM_ID_KE_MODP_3072
3072-bit MODP Group
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.
IkeCertVerifyCallback certVerifyCallback
Certificate verification callback function.
size_t sharedSecretLen
Length of the shared secret, in bytes.
#define IKE_MAX_SHARED_SECRET_LEN
IkeCertVerifyCallback certVerifyCallback
Certificate verification callback function.
@ 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_CONFIG_ATTR_TYPE_EXTERNAL_SOURCE_IP4_NAT_INFO
@ IKE_TRANSFORM_ATTR_TYPE_KEY_LEN
Key Length (in bits)
const char_t * privateKey
Entity's private key (PEM format)
const uint8_t * skar
Integrity protection key (responder)
bool_t pfs
Perfect forward secrecy.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_NETMASK
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_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.
IkeConfigAttrType
Configuration attribute types.
uint16_t authAlgoId
Integrity algorithm.
@ IKE_NOTIFY_MSG_TYPE_INVALID_SELECTORS
@ IKE_TRANSFORM_ID_KE_BRAINPOOLP224R1
224-bit Brainpool ECP Group
@ IKE_NOTIFY_MSG_TYPE_ANOTHER_AUTH_FOLLOWS
@ IKE_ATTR_FORMAT_TLV
Type/Length/Value format.
systime_t reauthPeriod
Reauthentication period.
@ IKE_CONFIG_ATTR_TYPE_FTT_KAT
IkeHashAlgo
Hash algorithms.
@ IKE_TRANSFORM_ID_KE_MODP_6144
6144-bit MODP Group
systime_t childSaLifetime
Lifetime of Child SAs.
bool_t natDetectSrcIp
NAT_DETECTION_SOURCE_IP notification received.
@ IKE_NOTIFY_MSG_TYPE_IP4_ALLOWED
@ IKE_TRANSFORM_ID_KE_BRAINPOOLP384R1
384-bit Brainpool ECP Group
uint16_t prfAlgoId
Pseudorandom function.
@ IKE_TRANSFORM_TYPE_ADDKE3
Additional Key Exchange 3.
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.
@ IKE_EXCHANGE_TYPE_IKE_FOLLOWUP_KE
IKE_FOLLOWUP_KE.
IkeChildSaEntry * childSa
Child SA entries.
@ IKE_PAYLOAD_TYPE_SK
Encrypted and Authenticated.
DhContext dhContext
Diffie-Hellman context.
@ 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
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_PREFIX
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_TS_TYPE_FC_ADDR_RANGE
TS_FC_ADDR_RANGE.
@ IKE_TRANSFORM_ID_KE_MODP_1536
1536-bit MODP Group
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_SUBNET
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
@ IKE_TRANSFORM_ID_KE_MODP_4096
4096-bit MODP Group
const CipherAlgo * authCipherAlgo
Cipher algorithm for CMAC-based integrity calculations.
@ IKE_CONFIG_ATTR_TYPE_MIP6_HOME_PREFIX
@ IKE_TRANSFORM_TYPE_ADDKE5
Additional Key Exchange 5.
systime_t natKeepaliveInterval
NAT keepalive interval.
uint16_t encAlgoId
Encryption algorithm.
const PrngAlgo * prngAlgo
Pseudo-random number generator to be used.
const uint8_t * sker
Encryption key (responder)
bool_t natDetectDestIp
NAT_DETECTION_DESTINATION_IP notification received.
@ IKE_TRANSFORM_ID_ENCR_KUZNYECHIK_MGM_MAC_KTREE
IkeChildSaState
Child Security Association state.
NetInterface * interface
Underlying network interface.
const PrngAlgo * prngAlgo
Pseudo-random number generator to be used.
systime_t natKeepaliveInterval
NAT keepalive interval.
@ IKE_PROTOCOL_ID_ESP
ESP.
IkeSaEntry * newSa2
New IKE SA (created by the peer)
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_DNS
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
Remote IP address.
@ 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.
uint8_t localSpi[4]
Initiator SPI.
@ IKE_TRANSFORM_ID_KE_ECP_256
256-bit Random ECP Group
@ IKE_CERT_ENCODING_PGP_CERT
PGP certificate.
const uint8_t * skai
Integrity protection key (initiator)
@ IKE_IP_PROTOCOL_ID_ICMPV6
IkeExchangeType
Exchange types.
uint8_t iv[8]
Initialization vector.
@ IKE_TRANSFORM_ID_PRF_HMAC_SHA1
error_t ikeCreateSa(IkeContext *context, const IpAddr *remoteIpAddr)
Create a new IKE SA.
@ 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
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_TYPE_ADDKE1
Additional Key Exchange 1.
@ 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.
void * prngContext
Pseudo-random number generator context.
bool_t initiator
Initiator of the CREATE_CHILD_SA exchange.
uint8_t sharedSecret[IKE_MAX_SHARED_SECRET_LEN]
Shared secret.
@ IKE_TRANSFORM_ID_ENCR_BLOWFISH
@ IKE_TRANSFORM_TYPE_ENCR
Encryption Algorithm.
@ IKE_TRANSFORM_ID_ENCR_DES_IV32
@ IKE_TRANSFORM_ID_KE_MODP_1024_160
1024-bit MODP Group with 160-bit Prime Order Subgroup
@ 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_CONFIG_ATTR_TYPE_INTERNAL_IP4_DNS
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.
@ IKE_NOTIFY_MSG_TYPE_TICKET_OPAQUE
IkeSaEntry * sa
IKE SA entry.
error_t ikeDeleteSa(IkeSaEntry *sa)
Delete an IKE SA.
@ 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
IkeCertEncoding
Certificate encodings.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_NBNS
@ 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.
Socket * altSocket
Underlying UDP socket (port 4500)
IpsecProtocol
Security protocols.
uint8_t configAttributes[]
@ IKE_NOTIFY_MSG_TYPE_STATE_NOT_FOUND
NetContext * netContext
TCP/IP stack context.
@ IKE_NOTIFY_MSG_TYPE_GROUP_SENDER
@ IKE_NOTIFY_MSG_TYPE_NON_FIRST_FRAGMENTS_ALSO
@ IKE_CERT_TYPE_ECDSA_BRAINPOOLP512R1
@ IKE_EXCHANGE_TYPE_GSA_AUTH
GSA_AUTH.
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_256_128
size_t authKeyLen
Size of the integrity protection key, in bytes.
#define IKE_MAX_COOKIE_SIZE
@ IKE_NOTIFY_MSG_TYPE_TS_MAX_QUEUE
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
IkeKeContext keContext
Key exchange context.
@ IKE_NOTIFY_MSG_TYPE_AUTHORIZATION_FAILED
uint32_t systime_t
System time.
@ IKE_TRANSFORM_ID_AUTH_KPDK_MD5
@ IKE_TRANSFORM_ID_KE_NONE
None.
@ IKE_TRANSFORM_ID_AUTH_AES_256_GMAC
const uint8_t * skai
Integrity protection key (initiator)
MacAlgo prfMacAlgo
MAC algorithm for PRF calculations.
@ IKE_TRANSFORM_ID_ENCR_NULL_AUTH_AES_GMAC
uint8_t message[IKE_MAX_MSG_SIZE]
Incoming IKE message.
@ IKE_TRANSFORM_ID_KE_MODP_2048
2048-bit MODP Group
@ IKE_TRANSFORM_ID_KE_ECP_521
521-bit Random ECP Group
@ IKE_SA_STATE_CREATE_CHILD_REQ
@ IKE_CONFIG_ATTR_TYPE_P_CSCF_IP6_ADDRESS
@ IKE_HASH_ALGO_STREEBOG_512
@ IKE_CERT_ENCODING_PKCS7_X509_CERT
PKCS #7 wrapped X.509 certificate.
@ IKE_PAYLOAD_TYPE_PS
Puzzle Solution.
uint16_t preferredGroupNum
Preferred key exchange method.
@ IKE_TRANSFORM_TYPE_KE
Key Exchange Method.
@ IKE_EXCHANGE_TYPE_IKE_SA_INIT
IKE_SA_INIT.
@ IKE_PAYLOAD_TYPE_NONCE
Nonce.
@ IKE_NOTIFY_MSG_TYPE_INVALID_KE_PAYLOAD
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
bool_t rekeyRequest
IKE SA rekey request.
uint16_t keyExchangeMethod
EcdhContext ecdhContext
ECDH context.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_ADDRESS
@ 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.
@ IKE_NOTIFY_MSG_TYPE_SUPPORTED_AUTH_METHODS
@ IKE_TRANSFORM_ID_KE_CURVE25519
curve25519
@ IKE_PAYLOAD_TYPE_IDG
Group Identification.
systime_t childSaLifetime
Lifetime of Child SAs.
@ IKE_CONFIG_ATTR_TYPE_ENCDNS_IP4
@ 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.
uint8_t trafficSelectors[]
@ IKE_TRANSFORM_ID_KE_ML_KEM_768
ML-KEM-768.
@ 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_CONFIG_ATTR_TYPE_APPLICATION_VERSION
@ 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_PAYLOAD_TYPE_KD
Key Download.
@ IKE_NOTIFY_MSG_TYPE_TICKET_LT_OPAQUE
IpAddr localIpAddr
Destination IP address of the received IKE message.
const uint8_t * sker
Encryption key (responder)
MacAlgo authMacAlgo
MAC algorithm for integrity calculations.
const uint8_t * skpr
Key used for generating AUTH payload (responder)
MacAlgo authMacAlgo
MAC algorithm for integrity calculations.
const CipherAlgo * cipherAlgo
Cipher algorithm.
const uint8_t * initiatorSaInit
Pointer to the IKE_SA_INIT request.
@ IKE_NOTIFY_MSG_TYPE_SECURE_PASSWORD_METHODS
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CTR
@ IKE_TRANSFORM_ID_KE_GOST3410_2012_256
GOST3410_2012_256.
@ IKE_CERT_ENCODING_ARL
Authority revocation list.
bool_t reauthRequest
IKE SA reauthentication request.
Socket * socket
Underlying UDP socket (port 500)
@ IKE_NOTIFY_MSG_TYPE_USE_ASSIGNED_HOA
uint16_t esn
Extended sequence numbers.
@ IKE_PROTOCOL_ID_FC_CT_AUTHENTICATION
FC_CT_AUTHENTICATION.
IkeTransformIdDhGroup
Transform IDs (Key Exchange Methods)
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.
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
IkeSaEntry * newSa1
New IKE SA (created by the host)
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
uint8_t acceptedProposalNum
Number of the accepted proposal.
@ 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
NetInterface * localInterface
Network interface the IKE message was received on.
@ 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_PROTOCOL_ID_FC_ESP_HEADER
FC_ESP_HEADER.
@ 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.
@ IKE_TRANSFORM_TYPE_ADDKE6
Additional Key Exchange 6.
size_t sharedSecretLen
Length of the shared secret, in bytes.
uint8_t keyMaterial[IKE_MAX_SA_KEY_MAT_LEN]
Keying material.
Common interface for hash algorithms.
IkeChildSaEntry * childSa1
Child SA (created by the host)
@ IKE_NOTIFY_MSG_TYPE_SINGLE_PAIR_REQUIRED
@ IKE_TRANSFORM_ID_AUTH_DES_MAC
@ IKE_SA_STATE_CREATE_CHILD_RESP
@ IKE_TRANSFORM_ID_KE_MODP_8192
8192-bit MODP 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
@ IKE_EXCHANGE_TYPE_GSA_REKEY
GSA_REKEY.
void * prngContext
Pseudo-random number generator context.
bool_t running
Operational state of IKEv2.
@ IKE_TRANSFORM_ID_KE_BRAINPOOLP512R1
512-bit Brainpool ECP Group
@ IKE_EXCHANGE_TYPE_GSA_REGISTRATION
GSA_REGISTRATION.
@ IKE_NOTIFY_MSG_TYPE_MULTIPLE_AUTH_SUPPORTED
uint16_t groupNum
Key exchange method.
@ IKE_PAYLOAD_TYPE_IDR
Identification - Responder.
const uint8_t * responderSaInit
Pointer to the IKE_SA_INIT response.
@ IKE_PROTOCOL_ID_GIKE_UPDATE
GIKE_UPDATE.
OsTaskId taskId
Task identifier.
uint_t numSaEntries
Number of IKE SA entries.
systime_t dpdTimestamp
Timestamp to manage dead peer detection.
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_TRANSFORM_ID_KE_GOST3410_2012_512
GOST3410_2012_512.
@ IKE_PAYLOAD_TYPE_SA
Security Association.
@ IKE_NOTIFY_MSG_TYPE_INVALID_GROUP_ID
@ IKE_TRANSFORM_TYPE_ADDKE4
Additional Key Exchange 4.
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)
@ 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)
systime_t natKeepAliveTimestamp
Timestamp to manage NAT keepalive transmission.
@ IKE_NOTIFY_MSG_TYPE_CLONE_IKE_SA_SUPPORTED
@ IKE_AUTH_METHOD_ECDSA_P384_SHA384
ECDSA with SHA-384 on the P-384 curve.
uint8_t remoteSpi[4]
Responder SPI.
IkeTransformAttrType
Transform attribute types.
@ IKE_TRANSFORM_ID_ENCR_RC5
@ IKE_NOTIFY_MSG_TYPE_ADDITIONAL_IP4_ADDRESS
NetContext * netContext
TCP/IP stack context.
size_t initiatorNonceLen
Length of the initiator nonce.
Generic MAC algorithm context.
IkeTransformIdEsn
Transform IDs (Extended Sequence Numbers)
@ IKE_PAYLOAD_TYPE_N
Notify.
@ IKE_CHILD_SA_STATE_RESERVED
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_DNS_DOMAIN
uint_t numChildSaEntries
Number of Child SA entries.
@ IKE_CONFIG_ATTR_TYPE_TIMEOUT_PERIOD_FOR_LIVENESS_CHECK
size_t pskLen
Length of the pre-shared key, in bytes.
@ IKE_TRANSFORM_ID_PRF_HMAC_SHA2_512
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP4_DHCP
const uint8_t * skar
Integrity protection key (responder)
uint16_t preferredGroupNum
Preferred key exchange method.
@ IKE_TS_TYPE_IPV6_ADDR_RANGE
TS_IPV6_ADDR_RANGE.
IkeConfigType
Configuration types.
IkeTsType
Traffic selector types.
@ IKE_SA_STATE_DELETE_CHILD_REQ
@ IKE_CERT_ENCODING_RAW_PUBLIC_KEY
Raw Public Key.
@ IKE_CONFIG_ATTR_TYPE_INTERNAL_IP6_DHCP
@ IKE_PAYLOAD_TYPE_GSA
Group Security Association.
@ IKE_PAYLOAD_TYPE_GSPM
Generic Secure Password Method.
@ IKE_TRANSFORM_ID_KE_CURVE448
curve448
@ 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
CipherMode
Cipher operation modes.
@ IKE_TRANSFORM_TYPE_INTEG
Integrity Algorithm.
bool_t localNat
The local host is behind a NAT.