- added definitions from IKEv2 draft

This commit is contained in:
Martin Willi
2005-11-16 16:12:31 +00:00
parent 02d3cba7ce
commit 7eeeaf4e4f
4 changed files with 293 additions and 8 deletions
@@ -26,7 +26,9 @@
#define TRANSFORM_SUBSTRUCTURE_H_
#include "../types.h"
#include "../definitions.h"
#include "payload.h"
#include "../definitions.h"
#include "../utils/linked_list.h"
#include "transform_attribute.h"
@@ -40,6 +42,128 @@
*/
#define TRANSFORM_SUBSTRUCTURE_HEADER_LENGTH 8
/**
* Type of a transform, as in IKEv2 draft 3.3.2
*/
typedef enum transform_type_e transform_type_t;
enum transform_type_e {
UNDEFINED_TRANSFORM_TYPE = 241,
ENCRYPTION_ALGORITHM = 1,
PSEUDO_RANDOM_FUNCTION = 2,
INTEGRITIY_ALGORITHM = 3,
DIFFIE_HELLMAN_GROUP = 4,
EXTENDED_SEQUENCE_NUNBERS = 5
};
/**
* string mappings for transform_type_t
*/
extern mapping_t transform_type_m[];
/**
* Encryption algorithm, as in IKEv2 draft 3.3.2
*/
typedef enum encryption_algorithm_e encryption_algorithm_t;
enum encryption_algorithm_e {
ENCR_UNDEFINED = 1024,
ENCR_DES_IV64 = 1,
ENCR_DES = 2,
ENCR_3DES = 3,
ENCR_RC5 = 4,
ENCR_IDEA = 5,
ENCR_CAST = 6,
ENCR_BLOWFISH = 7,
ENCR_3IDEA = 8,
ENCR_DES_IV32 = 9,
RESERVED = 10,
ENCR_NULL = 11,
ENCR_AES_CBC = 12,
ENCR_AES_CTR = 13
};
/**
* string mappings for encryption_algorithm_t
*/
extern mapping_t encryption_algorithm_m[];
/**
* Pseudo random function, as in IKEv2 draft 3.3.2
*/
typedef enum pseudo_random_function_e pseudo_random_function_t;
enum pseudo_random_function_e {
PRF_UNDEFINED = 1024,
PRF_HMAC_MD5 = 1,
PRF_HMAC_SHA1 = 2,
PRF_HMAC_TIGER = 3,
PRF_AES128_CBC = 4
};
/**
* string mappings for encryption_algorithm_t
*/
extern mapping_t pseudo_random_function_m[];
/**
* Integrity algorithm, as in IKEv2 draft 3.3.2
*/
typedef enum integrity_algorithm_e integrity_algorithm_t;
enum integrity_algorithm_e {
AUTH_UNDEFINED = 1024,
AUTH_HMAC_MD5_96 = 1,
AUTH_HMAC_SHA1_96 = 2,
AUTH_DES_MAC = 3,
AUTH_KPDK_MD5 = 4,
AUTH_AES_XCBC_96 = 5
};
/**
* string mappings for integrity_algorithm_t
*/
extern mapping_t integrity_algorithm_m[];
/**
* Diffie-Hellman group, as in IKEv2 draft 3.3.2 and RFC 3526
*/
typedef enum diffie_hellman_group_e diffie_hellman_group_t;
enum diffie_hellman_group_e {
MODP_UNDEFINED = 1024,
MODP_768_BIT = 1,
MODP_1024_BIT = 2,
MODP_1536_BIT = 5,
MODP_2048_BIT = 14,
MODP_3072_BIT = 15,
MODP_4096_BIT = 16,
MODP_6144_BIT = 17,
MODP_8192_BIT = 18
};
/**
* string mappings for diffie_hellman_group_t
*/
extern mapping_t diffie_hellman_group_m[];
/**
* Extended sequence numbers, as in IKEv2 draft 3.3.2
*/
typedef enum extended_sequence_numbers_e extended_sequence_numbers_t;
enum extended_sequence_numbers_e {
NO_EXT_SEQ_NUMBERS = 0,
EXT_SEQ_NUMBERS = 1
};
/**
* string mappings for extended_sequence_numbers_t
*/
extern mapping_t extended_sequence_numbers_m[];
/**
* Object representing an IKEv2- TRANSFORM SUBSTRUCTURE
*