Go to the documentation of this file.
32 #define TRACE_LEVEL ESP_TRACE_LEVEL
44 #if (ESP_SUPPORT == ENABLED)
51 static const IkeEncAlgo espSupportedEncAlgos[] =
53 #if (ESP_CHACHA20_POLY1305_SUPPORT == ENABLED)
56 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_GCM_16_SUPPORT == ENABLED)
59 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_GCM_16_SUPPORT == ENABLED)
62 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_GCM_16_SUPPORT == ENABLED)
65 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_GCM_12_SUPPORT == ENABLED)
68 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_GCM_12_SUPPORT == ENABLED)
71 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_GCM_12_SUPPORT == ENABLED)
74 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_GCM_8_SUPPORT == ENABLED)
77 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_GCM_8_SUPPORT == ENABLED)
80 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_GCM_8_SUPPORT == ENABLED)
83 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
86 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
89 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
92 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
95 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
98 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
101 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
104 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
107 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
110 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
113 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
116 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
119 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
122 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
125 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
128 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
131 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
134 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
137 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
140 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
143 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
146 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
149 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
152 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
155 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
158 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
161 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
164 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
167 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
170 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
173 #if (ESP_3DES_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
176 #if (ESP_DES_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
179 #if (ESP_IDEA_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
189 static const uint16_t espSupportedAuthAlgos[] =
191 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA256_SUPPORT == ENABLED)
194 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA384_SUPPORT == ENABLED)
197 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA512_SUPPORT == ENABLED)
200 #if (ESP_CMAC_SUPPORT == ENABLED && ESP_AES_128_SUPPORT == ENABLED)
203 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA1_SUPPORT == ENABLED)
206 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_MD5_SUPPORT == ENABLED)
217 static const uint16_t espSupportedEsnTranforms[] =
219 #if (ESP_ESN_SUPPORT == ENABLED)
242 #if (ESP_IDEA_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
248 childSa->encKeyLen = 16;
253 #if (ESP_DES_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
259 childSa->encKeyLen = 8;
264 #if (ESP_3DES_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
270 childSa->encKeyLen = 24;
275 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
281 childSa->encKeyLen = 16;
286 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
292 childSa->encKeyLen = 24;
297 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
303 childSa->encKeyLen = 32;
308 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
314 childSa->encKeyLen = 16;
315 childSa->saltLen = 4;
320 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
326 childSa->encKeyLen = 24;
327 childSa->saltLen = 4;
332 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
338 childSa->encKeyLen = 32;
339 childSa->saltLen = 4;
344 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
350 childSa->encKeyLen = 16;
351 childSa->authKeyLen = 0;
352 childSa->saltLen = 3;
358 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
364 childSa->encKeyLen = 24;
365 childSa->authKeyLen = 0;
366 childSa->saltLen = 3;
372 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
378 childSa->encKeyLen = 32;
379 childSa->authKeyLen = 0;
380 childSa->saltLen = 3;
386 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
392 childSa->encKeyLen = 16;
393 childSa->authKeyLen = 0;
394 childSa->saltLen = 3;
396 childSa->icvLen = 12;
400 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
406 childSa->encKeyLen = 24;
407 childSa->authKeyLen = 0;
408 childSa->saltLen = 3;
410 childSa->icvLen = 12;
414 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
420 childSa->encKeyLen = 32;
421 childSa->authKeyLen = 0;
422 childSa->saltLen = 3;
424 childSa->icvLen = 12;
428 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
434 childSa->encKeyLen = 16;
435 childSa->authKeyLen = 0;
436 childSa->saltLen = 3;
438 childSa->icvLen = 16;
442 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
448 childSa->encKeyLen = 24;
449 childSa->authKeyLen = 0;
450 childSa->saltLen = 3;
452 childSa->icvLen = 16;
456 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
462 childSa->encKeyLen = 32;
463 childSa->authKeyLen = 0;
464 childSa->saltLen = 3;
466 childSa->icvLen = 16;
470 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_GCM_8_SUPPORT == ENABLED)
476 childSa->encKeyLen = 16;
477 childSa->authKeyLen = 0;
478 childSa->saltLen = 4;
484 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_GCM_8_SUPPORT == ENABLED)
490 childSa->encKeyLen = 24;
491 childSa->authKeyLen = 0;
492 childSa->saltLen = 4;
498 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_GCM_8_SUPPORT == ENABLED)
504 childSa->encKeyLen = 32;
505 childSa->authKeyLen = 0;
506 childSa->saltLen = 4;
512 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_GCM_12_SUPPORT == ENABLED)
518 childSa->encKeyLen = 16;
519 childSa->authKeyLen = 0;
520 childSa->saltLen = 4;
522 childSa->icvLen = 12;
526 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_GCM_12_SUPPORT == ENABLED)
532 childSa->encKeyLen = 24;
533 childSa->authKeyLen = 0;
534 childSa->saltLen = 4;
536 childSa->icvLen = 12;
540 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_GCM_12_SUPPORT == ENABLED)
546 childSa->encKeyLen = 32;
547 childSa->authKeyLen = 0;
548 childSa->saltLen = 4;
550 childSa->icvLen = 12;
554 #if (ESP_AES_128_SUPPORT == ENABLED && ESP_GCM_16_SUPPORT == ENABLED)
560 childSa->encKeyLen = 16;
561 childSa->authKeyLen = 0;
562 childSa->saltLen = 4;
564 childSa->icvLen = 16;
568 #if (ESP_AES_192_SUPPORT == ENABLED && ESP_GCM_16_SUPPORT == ENABLED)
574 childSa->encKeyLen = 24;
575 childSa->authKeyLen = 0;
576 childSa->saltLen = 4;
578 childSa->icvLen = 16;
582 #if (ESP_AES_256_SUPPORT == ENABLED && ESP_GCM_16_SUPPORT == ENABLED)
588 childSa->encKeyLen = 32;
589 childSa->authKeyLen = 0;
590 childSa->saltLen = 4;
592 childSa->icvLen = 16;
596 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
602 childSa->encKeyLen = 16;
607 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
613 childSa->encKeyLen = 24;
618 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CBC_SUPPORT == ENABLED)
624 childSa->encKeyLen = 32;
629 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
635 childSa->encKeyLen = 16;
636 childSa->saltLen = 4;
641 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
647 childSa->encKeyLen = 24;
648 childSa->saltLen = 4;
653 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CTR_SUPPORT == ENABLED)
659 childSa->encKeyLen = 32;
660 childSa->saltLen = 4;
665 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
671 childSa->encKeyLen = 16;
672 childSa->authKeyLen = 0;
673 childSa->saltLen = 3;
679 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
685 childSa->encKeyLen = 24;
686 childSa->authKeyLen = 0;
687 childSa->saltLen = 3;
693 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CCM_8_SUPPORT == ENABLED)
699 childSa->encKeyLen = 32;
700 childSa->authKeyLen = 0;
701 childSa->saltLen = 3;
707 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
713 childSa->encKeyLen = 16;
714 childSa->authKeyLen = 0;
715 childSa->saltLen = 3;
717 childSa->icvLen = 12;
721 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
727 childSa->encKeyLen = 24;
728 childSa->authKeyLen = 0;
729 childSa->saltLen = 3;
731 childSa->icvLen = 12;
735 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CCM_12_SUPPORT == ENABLED)
741 childSa->encKeyLen = 32;
742 childSa->authKeyLen = 0;
743 childSa->saltLen = 3;
745 childSa->icvLen = 12;
749 #if (ESP_CAMELLIA_128_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
755 childSa->encKeyLen = 16;
756 childSa->authKeyLen = 0;
757 childSa->saltLen = 3;
759 childSa->icvLen = 16;
763 #if (ESP_CAMELLIA_192_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
769 childSa->encKeyLen = 24;
770 childSa->authKeyLen = 0;
771 childSa->saltLen = 3;
773 childSa->icvLen = 16;
777 #if (ESP_CAMELLIA_256_SUPPORT == ENABLED && ESP_CCM_16_SUPPORT == ENABLED)
783 childSa->encKeyLen = 32;
784 childSa->authKeyLen = 0;
785 childSa->saltLen = 3;
787 childSa->icvLen = 16;
791 #if (ESP_CHACHA20_POLY1305_SUPPORT == ENABLED)
796 childSa->cipherAlgo = NULL;
797 childSa->encKeyLen = 32;
798 childSa->authKeyLen = 0;
799 childSa->saltLen = 4;
801 childSa->icvLen = 16;
830 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_MD5_SUPPORT == ENABLED)
835 childSa->authCipherAlgo = NULL;
837 childSa->icvLen = 12;
841 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA1_SUPPORT == ENABLED)
846 childSa->authCipherAlgo = NULL;
848 childSa->icvLen = 12;
852 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA256_SUPPORT == ENABLED)
857 childSa->authCipherAlgo = NULL;
859 childSa->icvLen = 16;
863 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA384_SUPPORT == ENABLED)
868 childSa->authCipherAlgo = NULL;
870 childSa->icvLen = 24;
874 #if (ESP_HMAC_SUPPORT == ENABLED && ESP_SHA512_SUPPORT == ENABLED)
879 childSa->authCipherAlgo = NULL;
881 childSa->icvLen = 32;
885 #if (ESP_CMAC_SUPPORT == ENABLED && ESP_AES_128_SUPPORT == ENABLED)
889 childSa->authHashAlgo = NULL;
891 childSa->authKeyLen = 16;
892 childSa->icvLen = 12;
916 uint8_t **lastSubstruc)
962 for(i = 0; i <
arraysize(espSupportedEncAlgos) && !error; i++)
966 espSupportedEncAlgos[i].
id, espSupportedEncAlgos[i].keyLen,
967 proposal, lastSubstruc);
993 for(i = 0; i < (
arraysize(espSupportedAuthAlgos) - 1) && !error; i++)
997 espSupportedAuthAlgos[i], 0, proposal, lastSubstruc);
1023 for(i = 0; i <
arraysize(espSupportedEsnTranforms) && !error; i++)
1027 espSupportedEsnTranforms[i], 0, proposal, lastSubstruc);
1057 selectedAlgo = NULL;
1061 proposalLen >= (
sizeof(
IkeProposal) + proposal->spiSize))
1064 for(i = 0; i <
arraysize(espSupportedEncAlgos) && selectedAlgo == NULL; i++)
1069 p = (uint8_t *) proposal +
sizeof(
IkeProposal) + proposal->spiSize;
1072 for(j = 0; j < proposal->
numTransforms && selectedAlgo == NULL; j++)
1083 n =
ntohs(transform->transformLength);
1112 ntohs(attr->length) == (espSupportedEncAlgos[i].
keyLen * 8))
1114 selectedAlgo = &espSupportedEncAlgos[i];
1128 selectedAlgo = &espSupportedEncAlgos[i];
1147 return selectedAlgo;
1164 arraysize(espSupportedAuthAlgos) - 1, proposal, proposalLen);
1181 arraysize(espSupportedEsnTranforms), proposal, proposalLen);
1204 childSa->encKeyLen = 0;
1240 n =
ntohs(proposal->proposalLength);
1263 childSa->encAlgoId = encAlgo->
id;
1264 childSa->encKeyLen = encAlgo->
keyLen;
1295 osMemcpy(childSa->remoteSpi, proposal->spi, proposal->spiSize);
1331 childSa->encKeyLen = 0;
1356 n =
ntohs(proposal->proposalLength);
1378 osMemcpy(childSa->remoteSpi, proposal->spi, proposal->spiSize);
1394 childSa->encAlgoId = encAlgo->
id;
1395 childSa->encKeyLen = encAlgo->
keyLen;
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_8
@ IKE_TRANSFORM_ID_AUTH_AES_CMAC_96
uint_t ikeGetNumTransforms(IkeTransformType transformType, const IkeProposal *proposal, size_t proposalLen)
Get the number of transforms that match a given transform type.
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_384_192
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA1_96
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_16
@ IKE_TRANSFORM_ID_ENCR_AES_CTR
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CBC
@ IKE_TRANSFORM_ID_ENCR_IDEA
@ IKE_TRANSFORM_ID_AUTH_HMAC_MD5_96
error_t ikeAddTransform(IkeTransformType transformType, uint16_t transformId, uint16_t keyLen, IkeProposal *proposal, uint8_t **lastSubstruc)
Add the supported transforms to the proposal.
@ IKE_TRANSFORM_ID_ESN_NO
No Extended Sequence Numbers.
ESP algorithm negotiation.
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CCM_8
const uint8_t IPSEC_INVALID_SPI[4]
@ IKE_LAST_SUBSTRUC_LAST
Last proposal/transform substructure.
#define osMemcmp(p1, p2, length)
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CCM_16
uint16_t ikeSelectTransform(IkeTransformType transformType, const uint16_t *algoList, uint_t algoListLen, const IkeProposal *proposal, size_t proposalLen)
Transform negotiation.
@ IKE_TRANSFORM_ID_ENCR_CHACHA20_POLY1305
@ IKE_ATTR_FORMAT_TV
shortened Type/Value format
error_t espSelectSaProposal(IkeChildSaEntry *childSa, const IkeSaPayload *payload)
Select a single proposal.
@ IKE_TRANSFORM_TYPE_ESN
Extended Sequence Numbers.
#define IKE_TRANSFORM_ID_INVALID
@ IKE_TRANSFORM_ID_ENCR_AES_CBC
@ IKE_TRANSFORM_ATTR_TYPE_KEY_LEN
Key Length (in bits)
uint16_t espSelectAuthTransform(IkeContext *context, const IkeProposal *proposal, size_t proposalLen)
Integrity transform negotiation.
ESP (IP Encapsulating Security Payload)
#define osMemcpy(dest, src, length)
error_t espAddSupportedEncTransforms(IkeContext *context, IkeProposal *proposal, uint8_t **lastSubstruc)
Add the supported encryption transforms to the proposal.
error_t espAddSupportedTransforms(IkeContext *context, IkeProposal *proposal, uint8_t **lastSubstruc)
Add the supported ESP transforms to the proposal.
Helper routines for IPsec.
@ IKE_PROTOCOL_ID_ESP
ESP protocol.
error_t espSelectEncAlgo(IkeChildSaEntry *childSa, uint16_t encAlgoId, size_t encKeyLen)
Select the relevant encryption algorithm.
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_12
#define CAMELLIA_CIPHER_ALGO
uint16_t espSelectEsnTransform(IkeContext *context, const IkeProposal *proposal, size_t proposalLen)
ESN transform negotiation.
uint16_t ikeSelectAuthTransform(IkeContext *context, const IkeProposal *proposal, size_t proposalLen)
Integrity transform negotiation.
error_t espCheckSaProposal(IkeChildSaEntry *childSa, const IkeSaPayload *payload)
Check whether the selected proposal is acceptable.
@ IKE_TRANSFORM_TYPE_ENCR
Encryption Algorithm.
const IkeEncAlgo * espSelectEncTransform(IkeContext *context, const IkeProposal *proposal, size_t proposalLen)
Encryption transform negotiation.
bool_t ikeIsAeadEncAlgo(uint16_t encAlgoId)
Test if the transform ID identifies an AEAD encryption algorithm.
#define SHA384_DIGEST_SIZE
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_256_128
@ IKE_TRANSFORM_ID_ENCR_DES
Collection of hash algorithms.
error_t espAddSupportedAuthTransforms(IkeContext *context, IkeProposal *proposal, uint8_t **lastSubstruc)
Add the supported integrity transforms to the proposal.
@ IKE_TRANSFORM_ID_ENCR_3DES
@ IKE_TRANSFORM_ID_ENCR_AES_GCM_16
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_12
@ IKE_TRANSFORM_ID_ESN_YES
Extended Sequence Numbers.
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CTR
#define CAMELLIA_BLOCK_SIZE
error_t espAddSupportedEsnTransforms(IkeContext *context, IkeProposal *proposal, uint8_t **lastSubstruc)
Add the supported ESN transforms to the proposal.
bool_t ikeIsVariableLengthKeyEncAlgo(uint16_t encAlgoId)
Test if the transform ID identifies a variable-length key encryption algorithm.
@ CIPHER_MODE_CHACHA20_POLY1305
error_t espSelectAuthAlgo(IkeChildSaEntry *childSa, uint16_t authAlgoId)
Select the relevant MAC algorithm.
@ IKE_TRANSFORM_ID_AUTH_HMAC_SHA2_512_256
@ IKE_TRANSFORM_ID_AUTH_NONE
#define SHA256_DIGEST_SIZE
#define SHA512_DIGEST_SIZE
IKEv2 algorithm negotiation.
@ IKE_TRANSFORM_ID_ENCR_CAMELLIA_CCM_12
@ IKE_TRANSFORM_ID_ENCR_AES_CCM_8
@ IKE_TRANSFORM_TYPE_INTEG
Integrity Algorithm.