Main Page | Data Structures | File List | Data Fields | Globals | Related Pages

connector.c File Reference

#include "common.h"
#include <netinet/in.h>
#include <assert.h>
#include <string.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include "payload.h"
#include "message.h"
#include "IKEv2.h"
#include "encr.h"
#include "prf.h"
#include "integ.h"
#include "connector.h"
#include "state.h"
#include "enums.h"
#include "auth.h"

Defines

#define EAP_RESULT_MESSAGE_SIZE   4

Functions

int CertInit (struct ikev2_ctx *i2)
 Cert, private key, crl init.
int IKEv2Init (struct ikev2_ctx *i2)
 Init IKEv2.
void IKEv2Shutdown ()
 shutdown IKEv2
int GenEapKeys (struct IKEv2Session *s, int len)
 Generate MSK (key which is used to protect communication between user and NAS. Function set proper value of s->eapKeyData.
uint32_t CreateIKEv2Message (const struct ikev2_ctx *i2, uint8_t *ikemsg, uint32_t imlen, bool response, uint8_t msgid, struct IKEv2Session *session, uint8_t **out)
 Creating an IKEv2 message.
int ExtractData (const uint8_t *in, uint8_t **data, uint32_t *dlen, uint32_t ilen)
 extract data from a eap message
int ParseIKEv2Message (const uint8_t *in, uint8_t **ikemsg, uint32_t *imlen, struct IKEv2Session *session)
 parse an IKEv2 message
uint32_t CreateResultMessage (bool succ, struct IKEv2Session *session, uint8_t **out)
 Create success and failure messages.
uint16_t CreateFragmentAck (const uint8_t *in, uint8_t **out, struct IKEv2Session *session)
 Create a fragment acknoledge message.
int ParseFragmentAck (const uint8_t *in, struct IKEv2Session *session)
 Parse fragmen acknowledgement message.
IKEv2DataIKEv2Data_new (struct ikev2_ctx *i2, struct IKEv2Session *s)
 Create and init IKEv2Data structure.

Define Documentation

#define EAP_RESULT_MESSAGE_SIZE   4
 


Function Documentation

int CertInit struct ikev2_ctx i2  ) 
 

Cert, private key, crl init.

Parameters:
*i2 ikev2 context structure
Returns:
0 on success, 1 otherwise

uint16_t CreateFragmentAck const uint8_t *  in,
uint8_t **  out,
struct IKEv2Session session
 

Create a fragment acknoledge message.

Parameters:
*in ptr to received message
**out ptr to outcoming message
*session session data
Returns:
length of the created message, or <=0 on failure
Todo:
check error status on return when called

uint32_t CreateIKEv2Message const struct ikev2_ctx i2,
uint8_t *  ikemsg,
uint32_t  imlen,
bool  response,
uint8_t  msgid,
struct IKEv2Session session,
uint8_t **  out
 

Creating an IKEv2 message.

Parameters:
*i2 IKEv2 context data
*ikemsg IKEv2 message to send
imlen length of ikemsg
response create response?
msgid message id
*session session data
**out destination buffer
Returns:
length of outcoming message

uint32_t CreateResultMessage bool  succ,
struct IKEv2Session session,
uint8_t **  out
 

Create success and failure messages.

Parameters:
succ true success message, false failure message
session ptr to current session
out ptr to out message
Returns:
length of the message ( EAP_RESULT_MESSAGE_SIZE ), or 0 if fail

int ExtractData const uint8_t *  in,
uint8_t **  data,
uint32_t *  dlen,
uint32_t  ilen
 

extract data from a eap message

Parameters:
in ptr to message
data ptr to data
dlen length of data
ilen integrity field length
Returns:
0 on success, -1 otherwise

int GenEapKeys struct IKEv2Session s,
int  len
 

Generate MSK (key which is used to protect communication between user and NAS. Function set proper value of s->eapKeyData.

Parameters:
*s IKEv2 session data
len key len
Returns:
1 when keys successfully generated, 0 otherwise.

struct IKEv2Data* IKEv2Data_new struct ikev2_ctx i2,
struct IKEv2Session s
 

Create and init IKEv2Data structure.

Parameters:
*i2 IKEv2 context data
*s session data
Returns:
new allocated IKEv2Data structure

int IKEv2Init struct ikev2_ctx i2  ) 
 

Init IKEv2.

Deprecated:
kwz:Czy ta funkcja naprawde jest nam potrzebna ? Chyba nie bardzo

void IKEv2Shutdown void   ) 
 

shutdown IKEv2

Deprecated:

int ParseFragmentAck const uint8_t *  in,
struct IKEv2Session session
 

Parse fragmen acknowledgement message.

Parameters:
*in ptr to message
*session session data
Returns:
0 on success, 1 otherwise

int ParseIKEv2Message const uint8_t *  in,
uint8_t **  ikemsg,
uint32_t *  imlen,
struct IKEv2Session session
 

parse an IKEv2 message

  • checking eap headers, lenght fields, fragmentation and integration
  • setting ikemsg if received full ikev2 message (all fragments), else NULL

Parameters:
*in ptr to message
**ikemsg IKEv2 message
*imlen length of ikemsg
*session session data
Returns:
0 on success, -1 otherwise


Project hosted by: SourceForge.net Logo