ike_request_format.c
error_t ikeSendIkeSaInitRequest(IkeSaEntry *sa)
Send IKE_SA_INIT request.
Definition: ike_request_format.c:103
void ikeFreeKeContext(IkeKeContext *keContext)
Release key exchange context.
Definition: ike_key_exchange.c:69
error_t ikeFormatCreateChildSaRequest(IkeSaEntry *sa, uint8_t *p, size_t *length)
Format CREATE_CHILD_SA request.
Definition: ike_request_format.c:695
error_t ikeFormatIkeSaRekeyRequest(IkeSaEntry *sa, uint8_t *p, size_t *length, uint8_t **nextPayload)
Format IKE SA rekeying request.
Definition: ike_request_format.c:1035
Diffie-Hellman key exchange.
void ikeInitKeContext(IkeKeContext *keContext)
Initialize key exchange context.
Definition: ike_key_exchange.c:50
error_t ikeFormatNoncePayload(IkeSaEntry *sa, IkeChildSaEntry *childSa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Nonce payload.
Definition: ike_payload_format.c:951
error_t ikeFormatInfoRequest(IkeSaEntry *sa, uint8_t *p, size_t *length)
Format INFORMATIONAL request.
Definition: ike_request_format.c:784
Helper functions for IKEv2.
error_t ikeComputeSharedSecret(IkeKeContext *keContext, uint8_t *output, size_t *outputLen)
Compute shared secret.
Definition: ike_key_exchange.c:166
IKE payload formatting.
IKE message encryption.
error_t ikeFormatChildSaPayload(IkeChildSaEntry *childSa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Security Association payload (AH or ESP protocol)
Definition: ike_payload_format.c:242
error_t ikeFormatAuthPayload(IkeSaEntry *sa, const IkeIdPayload *idPayload, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Authentication payload.
Definition: ike_payload_format.c:898
IKEv2 finite state machine.
@ IKE_NOTIFY_MSG_TYPE_SIGNATURE_HASH_ALGORITHMS
Definition: ike.h:1255
error_t ikeFormatDeletePayload(IkeSaEntry *sa, IkeChildSaEntry *childSa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Delete payload.
Definition: ike_payload_format.c:1430
@ IKE_NOTIFY_MSG_TYPE_NAT_DETECTION_SOURCE_IP
Definition: ike.h:1212
error_t ikeSendNatKeepalive(IkeSaEntry *sa)
Send NAT-keepalive packet.
Definition: ike_request_format.c:379
error_t ikeFormatSaPayload(IkeSaEntry *sa, const uint8_t *spi, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Security Association payload (IKE protocol)
Definition: ike_payload_format.c:61
error_t ikeFormatIkeSaInitRequest(IkeSaEntry *sa, uint8_t *p, size_t *length)
Format IKE_SA_INIT request.
Definition: ike_request_format.c:421
@ IKE_NOTIFY_MSG_TYPE_NAT_DETECTION_DESTINATION_IP
Definition: ike.h:1213
void ikeChangeSaState(IkeSaEntry *sa, IkeSaState newState)
Update IKE SA state.
Definition: ike_fsm.c:53
Data logging functions for debugging purpose (IKEv2)
Key material generation.
error_t ikeSendInfoRequest(IkeSaEntry *sa)
Send INFORMATIONAL request.
Definition: ike_request_format.c:311
error_t ikeFormatNotifyPayload(IkeSaEntry *sa, IkeChildSaEntry *childSa, IkeNotifyMsgType notifyMsgType, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Notify payload.
Definition: ike_payload_format.c:1039
error_t ikeSendIkeAuthRequest(IkeSaEntry *sa)
Send IKE_AUTH request.
Definition: ike_request_format.c:147
error_t ikeFormatKePayload(IkeKeContext *keContext, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Key Exchange payload.
Definition: ike_payload_format.c:488
error_t ikeFormatTsiPayload(IkeChildSaEntry *childSa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Traffic Selector payload (initiator)
Definition: ike_payload_format.c:1493
error_t ikeFormatIdPayload(IkeSaEntry *sa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Identification payload.
Definition: ike_payload_format.c:543
error_t ikeFormatCertPayloads(IkeSaEntry *sa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Certificate payloads.
Definition: ike_payload_format.c:646
error_t ikeSendCreateChildSaRequest(IkeSaEntry *sa)
Send CREATE_CHILD_SA request.
Definition: ike_request_format.c:241
error_t ikeFormatIkeAuthRequest(IkeSaEntry *sa, uint8_t *p, size_t *length)
Format IKE_AUTH request.
Definition: ike_request_format.c:568
IKEv2 (Internet Key Exchange Protocol)
error_t ikeEncryptMessage(IkeSaEntry *sa, uint8_t *message, size_t *messageLen)
Encrypt an outgoing IKE message.
Definition: ike_message_encrypt.c:55
error_t ikeGenerateSaKeyMaterial(IkeSaEntry *sa, IkeSaEntry *oldSa)
Generate keying material for the IKE SA.
Definition: ike_key_material.c:54
error_t ikeGenerateChildSaSpi(IkeChildSaEntry *childSa, uint8_t *spi)
Generate a new Child SA SPI.
Definition: ike_misc.c:718
error_t socketSendTo(Socket *socket, const IpAddr *destIpAddr, uint16_t destPort, const void *data, size_t length, size_t *written, uint_t flags)
Send a datagram to a specific destination.
Definition: socket.c:1532
bool_t ikeIsInitialContact(IkeSaEntry *sa)
Test if the IKE SA is the only currently active with a given peer.
Definition: ike_misc.c:1625
@ IKE_NOTIFY_MSG_TYPE_USE_TRANSPORT_MODE
Definition: ike.h:1215
error_t ikeFormatChildSaCreateRequest(IkeSaEntry *sa, uint8_t *p, size_t *length, uint8_t **nextPayload)
Format Child SA creation/rekeying request.
Definition: ike_request_format.c:882
void ikeDumpMessage(const uint8_t *message, size_t length)
Dump IKE message.
Definition: ike_debug.c:425
error_t ikeFormatCertReqPayload(IkeSaEntry *sa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Certificate Request payload.
Definition: ike_payload_format.c:800
error_t ikeFormatTsrPayload(IkeChildSaEntry *childSa, uint8_t *p, size_t *written, uint8_t **nextPayload)
Format Traffic Selector payload (responder)
Definition: ike_payload_format.c:1631
Debugging facilities.
IKE request formatting.
