FD.io VPP  v17.07.01-10-g3be13f0
Vector Packet Processing
ikev2_priv.h File Reference
+ Include dependency graph for ikev2_priv.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ikev2_auth_t
 
struct  ikev2_sa_transform_t
 
struct  ikev2_sa_proposal_t
 
struct  ikev2_ts_t
 
struct  ikev2_responder_t
 
struct  ikev2_transforms_set
 
struct  ikev2_id_t
 
struct  ikev2_child_sa_t
 
struct  ikev2_delete_t
 
struct  ikev2_rekey_t
 
struct  ikev2_notify_t
 
struct  ikev2_profile_t
 
struct  ikev2_sa_t
 
struct  ikev2_main_per_thread_data_t
 
struct  ikev2_main_t
 
struct  ikev2_payload_chain_t
 

Macros

#define IKEV2_DEBUG_PAYLOAD   1
 
#define DBG_PLD(my_args...)   clib_warning(my_args)
 
#define ikev2_payload_new_chain(V)   vec_validate (V, 0)
 
#define ikev2_payload_destroy_chain(V)
 

Enumerations

enum  ikev2_state_t {
  IKEV2_STATE_UNKNOWN, IKEV2_STATE_SA_INIT, IKEV2_STATE_DELETED, IKEV2_STATE_AUTH_FAILED,
  IKEV2_STATE_AUTHENTICATED, IKEV2_STATE_NOTIFY_AND_DELETE, IKEV2_STATE_TS_UNACCEPTABLE, IKEV2_STATE_NO_PROPOSAL_CHOSEN
}
 
enum  ikev2_dh_group_t { IKEV2_DH_GROUP_MODP = 0, IKEV2_DH_GROUP_ECP = 1 }
 

Functions

void ikev2_sa_free_proposal_vector (ikev2_sa_proposal_t **v)
 
ikev2_sa_transform_tikev2_sa_get_td_for_type (ikev2_sa_proposal_t *p, ikev2_transform_type_t type)
 
v8ikev2_calc_prf (ikev2_sa_transform_t *tr, v8 *key, v8 *data)
 
u8ikev2_calc_prfplus (ikev2_sa_transform_t *tr, u8 *key, u8 *seed, int len)
 
v8ikev2_calc_integr (ikev2_sa_transform_t *tr, v8 *key, u8 *data, int len)
 
v8ikev2_decrypt_data (ikev2_sa_t *sa, u8 *data, int len)
 
int ikev2_encrypt_data (ikev2_sa_t *sa, v8 *src, u8 *dst)
 
void ikev2_generate_dh (ikev2_sa_t *sa, ikev2_sa_transform_t *t)
 
void ikev2_complete_dh (ikev2_sa_t *sa, ikev2_sa_transform_t *t)
 
int ikev2_verify_sign (EVP_PKEY *pkey, u8 *sigbuf, u8 *data)
 
u8ikev2_calc_sign (EVP_PKEY *pkey, u8 *data)
 
EVP_PKEY * ikev2_load_cert_file (u8 *file)
 
EVP_PKEY * ikev2_load_key_file (u8 *file)
 
void ikev2_crypto_init (ikev2_main_t *km)
 
void ikev2_payload_add_notify (ikev2_payload_chain_t *c, u16 msg_type, u8 *data)
 
void ikev2_payload_add_notify_2 (ikev2_payload_chain_t *c, u16 msg_type, u8 *data, ikev2_notify_t *notify)
 
void ikev2_payload_add_sa (ikev2_payload_chain_t *c, ikev2_sa_proposal_t *proposals)
 
void ikev2_payload_add_ke (ikev2_payload_chain_t *c, u16 dh_group, u8 *dh_data)
 
void ikev2_payload_add_nonce (ikev2_payload_chain_t *c, u8 *nonce)
 
void ikev2_payload_add_id (ikev2_payload_chain_t *c, ikev2_id_t *id, u8 type)
 
void ikev2_payload_add_auth (ikev2_payload_chain_t *c, ikev2_auth_t *auth)
 
void ikev2_payload_add_ts (ikev2_payload_chain_t *c, ikev2_ts_t *ts, u8 type)
 
void ikev2_payload_add_delete (ikev2_payload_chain_t *c, ikev2_delete_t *d)
 
void ikev2_payload_chain_add_padding (ikev2_payload_chain_t *c, int bs)
 
void ikev2_parse_vendor_payload (ike_payload_header_t *ikep)
 
ikev2_sa_proposal_tikev2_parse_sa_payload (ike_payload_header_t *ikep)
 
ikev2_ts_tikev2_parse_ts_payload (ike_payload_header_t *ikep)
 
ikev2_delete_tikev2_parse_delete_payload (ike_payload_header_t *ikep)
 
ikev2_notify_tikev2_parse_notify_payload (ike_payload_header_t *ikep)
 

Variables

ikev2_main_t ikev2_main
 

Macro Definition Documentation

#define DBG_PLD (   my_args...)    clib_warning(my_args)

Definition at line 36 of file ikev2_priv.h.

#define IKEV2_DEBUG_PAYLOAD   1

Definition at line 33 of file ikev2_priv.h.

#define ikev2_payload_destroy_chain (   V)
Value:
do { \
vec_free((V)->data); \
vec_free(V); \
} while (0)
#define vec_free(V)
Free vector's memory (no header).
Definition: vec.h:340

Definition at line 326 of file ikev2_priv.h.

#define ikev2_payload_new_chain (   V)    vec_validate (V, 0)

Definition at line 325 of file ikev2_priv.h.

Enumeration Type Documentation

Enumerator
IKEV2_DH_GROUP_MODP 
IKEV2_DH_GROUP_ECP 

Definition at line 61 of file ikev2_priv.h.

Enumerator
IKEV2_STATE_UNKNOWN 
IKEV2_STATE_SA_INIT 
IKEV2_STATE_DELETED 
IKEV2_STATE_AUTH_FAILED 
IKEV2_STATE_AUTHENTICATED 
IKEV2_STATE_NOTIFY_AND_DELETE 
IKEV2_STATE_TS_UNACCEPTABLE 
IKEV2_STATE_NO_PROPOSAL_CHOSEN 

Definition at line 41 of file ikev2_priv.h.

Function Documentation

v8* ikev2_calc_integr ( ikev2_sa_transform_t tr,
v8 key,
u8 data,
int  len 
)

Definition at line 317 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

v8* ikev2_calc_prf ( ikev2_sa_transform_t tr,
v8 key,
v8 data 
)

Definition at line 256 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

u8* ikev2_calc_prfplus ( ikev2_sa_transform_t tr,
u8 key,
u8 seed,
int  len 
)

Definition at line 275 of file ikev2_crypto.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* ikev2_calc_sign ( EVP_PKEY *  pkey,
u8 data 
)

Definition at line 594 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

void ikev2_complete_dh ( ikev2_sa_t sa,
ikev2_sa_transform_t t 
)

Definition at line 509 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

void ikev2_crypto_init ( ikev2_main_t km)

Definition at line 664 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

v8* ikev2_decrypt_data ( ikev2_sa_t sa,
u8 data,
int  len 
)

Definition at line 340 of file ikev2_crypto.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ikev2_encrypt_data ( ikev2_sa_t sa,
v8 src,
u8 dst 
)

Definition at line 373 of file ikev2_crypto.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_generate_dh ( ikev2_sa_t sa,
ikev2_sa_transform_t t 
)

Definition at line 401 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

EVP_PKEY* ikev2_load_cert_file ( u8 file)

Definition at line 612 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

EVP_PKEY* ikev2_load_key_file ( u8 file)

Definition at line 642 of file ikev2_crypto.c.

+ Here is the caller graph for this function:

ikev2_delete_t* ikev2_parse_delete_payload ( ike_payload_header_t *  ikep)

Definition at line 513 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ikev2_notify_t* ikev2_parse_notify_payload ( ike_payload_header_t *  ikep)

Definition at line 454 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ikev2_sa_proposal_t* ikev2_parse_sa_payload ( ike_payload_header_t *  ikep)

Definition at line 343 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ikev2_ts_t* ikev2_parse_ts_payload ( ike_payload_header_t *  ikep)

Definition at line 428 of file ikev2_payload.c.

+ Here is the caller graph for this function:

void ikev2_parse_vendor_payload ( ike_payload_header_t *  ikep)

Definition at line 495 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_auth ( ikev2_payload_chain_t c,
ikev2_auth_t auth 
)

Definition at line 290 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_delete ( ikev2_payload_chain_t c,
ikev2_delete_t d 
)

Definition at line 259 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_id ( ikev2_payload_chain_t c,
ikev2_id_t id,
u8  type 
)

Definition at line 247 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_ke ( ikev2_payload_chain_t c,
u16  dh_group,
u8 dh_data 
)

Definition at line 228 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_nonce ( ikev2_payload_chain_t c,
u8 nonce 
)

Definition at line 239 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_notify ( ikev2_payload_chain_t c,
u16  msg_type,
u8 data 
)

Definition at line 134 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_notify_2 ( ikev2_payload_chain_t c,
u16  msg_type,
u8 data,
ikev2_notify_t notify 
)

Definition at line 140 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_sa ( ikev2_payload_chain_t c,
ikev2_sa_proposal_t proposals 
)

Definition at line 162 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_add_ts ( ikev2_payload_chain_t c,
ikev2_ts_t ts,
u8  type 
)

Definition at line 303 of file ikev2_payload.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ikev2_payload_chain_add_padding ( ikev2_payload_chain_t c,
int  bs 
)

Definition at line 334 of file ikev2_payload.c.

+ Here is the caller graph for this function:

void ikev2_sa_free_proposal_vector ( ikev2_sa_proposal_t **  v)

Definition at line 222 of file ikev2.c.

+ Here is the caller graph for this function:

ikev2_sa_transform_t* ikev2_sa_get_td_for_type ( ikev2_sa_proposal_t p,
ikev2_transform_type_t  type 
)

Definition at line 189 of file ikev2.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ikev2_verify_sign ( EVP_PKEY *  pkey,
u8 sigbuf,
u8 data 
)

Definition at line 583 of file ikev2_crypto.c.

Variable Documentation

ikev2_main_t ikev2_main

Definition at line 295 of file ikev2_priv.h.