transform: Add a getter for the enum_names for a specific transform type

This commit is contained in:
Martin Willi
2015-04-15 14:38:43 +02:00
parent de1c492a0f
commit 1d55e0756a
2 changed files with 40 additions and 0 deletions
+32
View File
@@ -14,6 +14,8 @@
*/
#include <crypto/transform.h>
#include <crypto/hashers/hasher.h>
#include <crypto/rngs/rng.h>
ENUM_BEGIN(transform_type_names, UNDEFINED_TRANSFORM_TYPE, COMPRESSION_ALGORITHM,
"UNDEFINED_TRANSFORM_TYPE",
@@ -34,3 +36,33 @@ ENUM(extended_sequence_numbers_names, NO_EXT_SEQ_NUMBERS, EXT_SEQ_NUMBERS,
"NO_EXT_SEQ",
"EXT_SEQ",
);
/**
* See header
*/
enum_name_t* transform_get_enum_names(transform_type_t type)
{
switch (type)
{
case HASH_ALGORITHM:
return hash_algorithm_names;
case RANDOM_NUMBER_GENERATOR:
return rng_quality_names;
case AEAD_ALGORITHM:
case ENCRYPTION_ALGORITHM:
return encryption_algorithm_names;
case PSEUDO_RANDOM_FUNCTION:
return pseudo_random_function_names;
case INTEGRITY_ALGORITHM:
return integrity_algorithm_names;
case DIFFIE_HELLMAN_GROUP:
return diffie_hellman_group_names;
case EXTENDED_SEQUENCE_NUMBERS:
return extended_sequence_numbers_names;
case UNDEFINED_TRANSFORM_TYPE:
case COMPRESSION_ALGORITHM:
break;
}
return NULL;
}
+8
View File
@@ -46,6 +46,14 @@ enum transform_type_t {
*/
extern enum_name_t *transform_type_names;
/**
* Get the enum names for a specific transform type.
*
* @param type type of transform to get enum names for
* @return enum names
*/
enum_name_t *transform_get_enum_names(transform_type_t type);
/**
* Extended sequence numbers, as in IKEv2 RFC 3.3.2.
*/