ike_payload_parse.c
AH algorithm negotiation.
error_t ikeParseIdPayload(IkeSaEntry *sa, const IkeIdPayload *idPayload)
Parse Identification payload.
Definition: ike_payload_parse.c:456
Diffie-Hellman key exchange.
Authentication of the IKE SA.
Helper functions for IKEv2.
error_t ikeParseTsEntry(const IkeTs *ts, size_t length, IkeTsEntry *tsEntry)
Parse Traffic Selector substructure.
Definition: ike_payload_parse.c:1055
const IkeNotifyPayload * initialContactNotify
Definition: ike_payload_parse.h:65
error_t ikeParseCookieNotification(IkeSaEntry *sa, const IkeNotifyPayload *notifyPayload)
Parse COOKIE notification.
Definition: ike_payload_parse.c:602
void sha1Update(Sha1Context *context, const void *data, size_t length)
Update the SHA-1 context with a portion of the message being hashed.
Definition: apm32f4xx_crypto_hash.c:230
const IkeNotifyPayload * natDetectSrcIpNotify
Definition: ike_payload_parse.h:71
const IkeNotifyPayload * errorNotify
Definition: ike_payload_parse.h:74
error_t ikeCheckCriticalPayloads(const uint8_t *message, size_t length, uint8_t *unsupportedCriticalPayload)
Check whether the message contains an unsupported critical payload.
Definition: ike_payload_parse.c:1406
const IkeNotifyPayload * cookieNotify
Definition: ike_payload_parse.h:62
const IkePayloadHeader * ikeGetPayload(const uint8_t *message, size_t length, uint8_t type, uint_t index)
Search an IKE message for a given payload type.
Definition: ike_payload_parse.c:1161
error_t ikeParseNoncePayload(const IkeNoncePayload *noncePayload, uint8_t *nonce, size_t *nonceLen)
Parse Nonce payload.
Definition: ike_payload_parse.c:525
const IkeNotifyPayload * ikeGetErrorNotifyPayload(const uint8_t *message, size_t length)
Search an IKE message for an error Notify payload.
Definition: ike_payload_parse.c:1233
bool_t ikeIsHashAlgoSupported(uint16_t hashAlgoId)
Check whether a given signature hash algorithm is supported.
Definition: ike_algorithms.c:2382
error_t ikeParseSignHashAlgosNotification(IkeSaEntry *sa, const IkeNotifyPayload *notifyPayload)
Parse SIGNATURE_HASH_ALGORITHMS notification.
Definition: ike_payload_parse.c:636
@ IKE_NOTIFY_MSG_TYPE_SIGNATURE_HASH_ALGORITHMS
Definition: ike.h:1255
@ IKE_NOTIFY_MSG_TYPE_NAT_DETECTION_SOURCE_IP
Definition: ike.h:1212
error_t ikeParseKePayload(IkeKeContext *keContext, const IkeKePayload *kePayload)
Parse Key Exchange payload.
Definition: ike_payload_parse.c:416
@ IKE_NOTIFY_MSG_TYPE_NAT_DETECTION_DESTINATION_IP
Definition: ike.h:1213
PEM file import functions.
error_t ikeParseNatDetectDestIpNotification(IkeSaEntry *sa, const IkeNotifyPayload *notifyPayload)
Parse NAT_DETECTION_DESTINATION_IP notification.
Definition: ike_payload_parse.c:784
void sha1Init(Sha1Context *context)
Initialize SHA-1 message digest context.
Definition: esp32_c3_crypto_hash.c:186
Helper functions for signature generation and verification.
bool_t ikeIsGroupSupported(uint16_t groupNum)
Check whether a given key exchange method is supported.
Definition: ike_algorithms.c:2352
Key material generation.
const IkeNotifyPayload * natDetectDestIpNotify
Definition: ike_payload_parse.h:72
IkeChildSaEntry * ikeFindChildSaEntry(IkeSaEntry *sa, uint8_t protocolId, const uint8_t *spi)
Find an Child SA that matches the specified SPI.
Definition: ike_misc.c:518
error_t ikeParseNatDetectSrcIpNotification(IkeSaEntry *sa, const uint8_t *message, size_t length)
Parse NAT_DETECTION_SOURCE_IP notification.
Definition: ike_payload_parse.c:690
void ikeDeleteChildSaEntry(IkeChildSaEntry *childSa)
Delete a Child Security Association.
Definition: ike_misc.c:560
error_t ikeParseInvalidKePayloadNotification(IkeKeContext *keContext, const IkeNotifyPayload *notifyPayload)
Parse INVALID_KE_PAYLOAD notification.
Definition: ike_payload_parse.c:561
error_t ikeParseSaPayload(const IkeSaPayload *saPayload)
Parse Security Association payload.
Definition: ike_payload_parse.c:165
error_t ikeParseTsPayload(const IkeTsPayload *tsPayload, uint_t index, IkeTsEntry *tsEntry)
Parse Traffic Selector payload.
Definition: ike_payload_parse.c:974
IKEv2 (Internet Key Exchange Protocol)
IKE payload parsing.
void ikeParseIkeMessagePayloads(const uint8_t *message, size_t length, IkeMessagePayloads *payloads)
Parse IKE message payloads.
Definition: ike_payload_parse.c:59
error_t ikeParseTransform(const IkeTransform *transform, size_t length)
Parse Transform substructure.
Definition: ike_payload_parse.c:312
const IkeNotifyPayload * signHashAlgosNotify
Definition: ike_payload_parse.h:68
error_t ikeParseCertReqPayload(IkeSaEntry *sa, const IkeCertReqPayload *certReqPayload)
Parse Certificate Request payload.
Definition: ike_payload_parse.c:491
X.509 certificate handling.
const IkeNotifyPayload * useTransportModeNotify
Definition: ike_payload_parse.h:59
@ IKE_NOTIFY_MSG_TYPE_USE_TRANSPORT_MODE
Definition: ike.h:1215
error_t ikeParseProposal(const IkeProposal *proposal, size_t length)
Parse Proposal substructure.
Definition: ike_payload_parse.c:238
error_t ikeParseDeletePayload(IkeSaEntry *sa, const IkeDeletePayload *deletePayload, bool_t response)
Parse Delete payload.
Definition: ike_payload_parse.c:856
error_t ikeParsePublicKey(IkeKeContext *keContext, const uint8_t *p, size_t length)
Parse peer's public key.
Definition: ike_key_exchange.c:263
const IkeNotifyPayload * rekeySaNotify
Definition: ike_payload_parse.h:60
error_t ikeParseTransformAttr(const IkeTransformAttr *attr, size_t length, size_t *consumed)
Parse transform attribute.
Definition: ike_payload_parse.c:375
void sha1Final(Sha1Context *context, uint8_t *digest)
Finish the SHA-1 message digest.
Definition: esp32_c3_crypto_hash.c:269
IKEv2 algorithm negotiation.
Debugging facilities.
const IkeNotifyPayload * ikeGetStatusNotifyPayload(const uint8_t *message, size_t length, uint16_t type, uint_t index)
Search an IKE message for a given status Notify payload.
Definition: ike_payload_parse.c:1316
