/home/tomh/openhip/hip-0.5/src/protocol/hip_input.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#include <sys/types.h>
#include <asm/types.h>
#include <netinet/ip.h>
#include <sys/time.h>
#include <pthread.h>
#include <unistd.h>
#include <openssl/crypto.h>
#include <openssl/bn.h>
#include <openssl/des.h>
#include <openssl/blowfish.h>
#include <openssl/aes.h>
#include <openssl/dsa.h>
#include <openssl/asn1.h>
#include <openssl/dh.h>
#include <openssl/sha.h>
#include <openssl/rand.h>
#include <linux/pfkeyv2.h>
#include <hip/hip_types.h>
#include <hip/hip_proto.h>
#include <hip/hip_globals.h>
#include <hip/hip_funcs.h>

Functions

int hip_parse_I1 (hip_assoc *hip_a, const __u8 *data, hip_hit *hiti, hip_hit *hitr)
int hip_parse_R1 (const __u8 *data, hip_assoc *hip_a)
int hip_parse_I2 (const __u8 *data, hip_assoc **hip_ar, hi_node *my_host_id, struct sockaddr *src, struct sockaddr *dst)
int hip_parse_R2 (__u8 *data, hip_assoc *hip_a)
int hip_parse_close (const __u8 *data, hip_assoc *hip_a, __u32 *nonce)
int validate_signature (const __u8 *data, int data_len, tlv_head *tlv, DSA *dsa, RSA *rsa)
int validate_hmac (const __u8 *data, int data_len, __u8 *hmac, int hmac_len, __u8 *key, int type)
hi_nodecheck_if_my_hit (hip_hit *hit)
int handle_transforms (hip_assoc *hip_a, __u16 *transforms, int length, int esp)
int handle_dh (hip_assoc *hip_a, const __u8 *data, __u8 *g, DH *dh)
int handle_hi (hi_node **hi_p, const __u8 *data)
int handle_acks (hip_assoc *hip_a, tlv_ack *ack)
int handle_esp_info (tlv_esp_info *ei, __u32 spi_out, struct rekey_info *rk)
int handle_locators (hip_assoc *hip_a, locator **locators, int num, struct sockaddr *src, __u32 new_spi)
void finish_address_check (hip_assoc *hip_a, __u32 nonce, struct sockaddr *src)
int handle_update_rekey (hip_assoc *hip_a)
int handle_update_readdress (hip_assoc *hip_a, struct sockaddr **addrcheck, int use_udp)
void update_peer_list (hip_assoc *hip_a)
void log_sa_info (hip_assoc *hip_a)
int check_tlv_type_length (int type, int length, int last_type, char *p)
int check_tlv_length (int type, int length)
int check_tlv_unknown_critical (int type, int length)
void * set_lifetime_rvs_thread (void *void_hip_reg)
void * set_lifetime_thread (void *void_thread_arg)
int send_udp_esp_tunnel_activation (__u32 spi_out)
int hip_parse_hdr (__u8 *data, int len, struct sockaddr *src, struct sockaddr *dst, __u16 family, hiphdr **hdr, int use_udp)
int hip_handle_I1 (__u8 *buff, hip_assoc *hip_a, struct sockaddr *src, struct sockaddr *dst, __u16 *dst_port, int use_udp)
int hip_handle_R1 (__u8 *buff, hip_assoc *hip_a, struct sockaddr *src, __u16 *dst_port, int use_udp)
int hip_handle_I2 (__u8 *buff, hip_assoc *hip_a_existing, struct sockaddr *src, struct sockaddr *dst, __u16 *dst_port, int use_udp)
int hip_handle_R2 (__u8 *buff, hip_assoc *hip_a, __u16 *dst_port, int use_udp)
int hip_parse_update (const __u8 *data, hip_assoc *hip_a, struct rekey_info *rk, __u32 *nonce, struct sockaddr *src, int use_udp)
int hip_handle_update (__u8 *data, hip_assoc *hip_a, struct sockaddr *src, __u16 *dst_port, int use_udp)
int hip_finish_rekey (hip_assoc *hip_a, int rebuild, int use_udp)
int hip_handle_close (__u8 *buff, hip_assoc *hip_a, __u16 *dst_port, int use_udp)
int hip_parse_notify (__u8 *data, hip_assoc *hip_a, __u16 *code, __u8 *nd, __u16 *nd_len)
int hip_handle_notify (__u8 *buff, hip_assoc *hip_a, __u16 *dst_port, int use_udp)
int hip_handle_BOS (__u8 *data, struct sockaddr *src)
int hip_handle_CER (__u8 *data, hip_assoc *hip_a)
int rebuild_sa (hip_assoc *hip_a, struct sockaddr *newaddr, __u32 newspi, int in, int peer, int use_udp)
void update_lsi_mapping (struct sockaddr *dst, struct sockaddr *lsi, hip_hit hit)

Function Documentation

hi_node * check_if_my_hit ( hip_hit hit  ) 

int check_tlv_length ( int  type,
int  length 
)

int check_tlv_type_length ( int  type,
int  length,
int  last_type,
char *  p 
)

int check_tlv_unknown_critical ( int  type,
int  length 
)

void finish_address_check ( hip_assoc hip_a,
__u32  nonce,
struct sockaddr *  src 
)

int handle_acks ( hip_assoc hip_a,
tlv_ack ack 
)

int handle_dh ( hip_assoc hip_a,
const __u8 data,
__u8 g,
DH *  dh 
)

int handle_esp_info ( tlv_esp_info ei,
__u32  spi_out,
struct rekey_info rk 
)

int handle_hi ( hi_node **  hi_p,
const __u8 data 
)

int handle_locators ( hip_assoc hip_a,
locator **  locators,
int  num,
struct sockaddr *  src,
__u32  new_spi 
)

int handle_transforms ( hip_assoc hip_a,
__u16 transforms,
int  length,
int  esp 
)

int handle_update_readdress ( hip_assoc hip_a,
struct sockaddr **  addrcheck,
int  use_udp 
)

int handle_update_rekey ( hip_assoc hip_a  ) 

int hip_finish_rekey ( hip_assoc hip_a,
int  rebuild,
int  use_udp 
)

int hip_handle_BOS ( __u8 data,
struct sockaddr *  src 
)

int hip_handle_CER ( __u8 data,
hip_assoc hip_a 
)

int hip_handle_close ( __u8 buff,
hip_assoc hip_a,
__u16 dst_port,
int  use_udp 
)

int hip_handle_I1 ( __u8 buff,
hip_assoc hip_a,
struct sockaddr *  src,
struct sockaddr *  dst,
__u16 dst_port,
int  use_udp 
)

int hip_handle_I2 ( __u8 buff,
hip_assoc hip_a_existing,
struct sockaddr *  src,
struct sockaddr *  dst,
__u16 dst_port,
int  use_udp 
)

int hip_handle_notify ( __u8 buff,
hip_assoc hip_a,
__u16 dst_port,
int  use_udp 
)

int hip_handle_R1 ( __u8 buff,
hip_assoc hip_a,
struct sockaddr *  src,
__u16 dst_port,
int  use_udp 
)

int hip_handle_R2 ( __u8 buff,
hip_assoc hip_a,
__u16 dst_port,
int  use_udp 
)

int hip_handle_update ( __u8 data,
hip_assoc hip_a,
struct sockaddr *  src,
__u16 dst_port,
int  use_udp 
)

int hip_parse_close ( const __u8 data,
hip_assoc hip_a,
__u32 nonce 
)

int hip_parse_hdr ( __u8 data,
int  len,
struct sockaddr *  src,
struct sockaddr *  dst,
__u16  family,
hiphdr **  hdr,
int  use_udp 
)

int hip_parse_I1 ( hip_assoc hip_a,
const __u8 data,
hip_hit hiti,
hip_hit hitr 
)

int hip_parse_I2 ( const __u8 data,
hip_assoc **  hip_ar,
hi_node my_host_id,
struct sockaddr *  src,
struct sockaddr *  dst 
)

int hip_parse_notify ( __u8 data,
hip_assoc hip_a,
__u16 code,
__u8 nd,
__u16 nd_len 
)

int hip_parse_R1 ( const __u8 data,
hip_assoc hip_a 
)

int hip_parse_R2 ( __u8 data,
hip_assoc hip_a 
)

int hip_parse_update ( const __u8 data,
hip_assoc hip_a,
struct rekey_info rk,
__u32 nonce,
struct sockaddr *  src,
int  use_udp 
)

void log_sa_info ( hip_assoc hip_a  ) 

int rebuild_sa ( hip_assoc hip_a,
struct sockaddr *  newaddr,
__u32  newspi,
int  in,
int  peer,
int  use_udp 
)

int send_udp_esp_tunnel_activation ( __u32  spi_out  ) 

void * set_lifetime_rvs_thread ( void *  void_hip_reg  ) 

void * set_lifetime_thread ( void *  void_thread_arg  ) 

void update_lsi_mapping ( struct sockaddr *  dst,
struct sockaddr *  lsi,
hip_hit  hit 
)

void update_peer_list ( hip_assoc hip_a  ) 

int validate_hmac ( const __u8 data,
int  data_len,
__u8 hmac,
int  hmac_len,
__u8 key,
int  type 
)

int validate_signature ( const __u8 data,
int  data_len,
tlv_head tlv,
DSA *  dsa,
RSA *  rsa 
)


Generated on Mon Oct 22 11:43:44 2007 for OpenHIP by  doxygen 1.5.1