diffie-hellman: Add enum names that match proposal keywords
This commit is contained in:
@@ -57,6 +57,45 @@ ENUM_NEXT(diffie_hellman_group_names, MODP_CUSTOM, MODP_CUSTOM, NH_128_BIT,
|
|||||||
"MODP_CUSTOM");
|
"MODP_CUSTOM");
|
||||||
ENUM_END(diffie_hellman_group_names, MODP_CUSTOM);
|
ENUM_END(diffie_hellman_group_names, MODP_CUSTOM);
|
||||||
|
|
||||||
|
ENUM_BEGIN(diffie_hellman_group_names_short, MODP_NONE, MODP_1024_BIT,
|
||||||
|
"modpnone",
|
||||||
|
"modp768",
|
||||||
|
"modp1024");
|
||||||
|
ENUM_NEXT(diffie_hellman_group_names_short, MODP_1536_BIT, MODP_1536_BIT, MODP_1024_BIT,
|
||||||
|
"modp1536");
|
||||||
|
ENUM_NEXT(diffie_hellman_group_names_short, MODP_2048_BIT, ECP_521_BIT, MODP_1536_BIT,
|
||||||
|
"modp2048",
|
||||||
|
"modp3072",
|
||||||
|
"modp4096",
|
||||||
|
"modp6144",
|
||||||
|
"modp8192",
|
||||||
|
"ecp256",
|
||||||
|
"ecp384",
|
||||||
|
"ecp521");
|
||||||
|
ENUM_NEXT(diffie_hellman_group_names_short, MODP_1024_160, CURVE_448, ECP_521_BIT,
|
||||||
|
"modp1024s160",
|
||||||
|
"modp2048s224",
|
||||||
|
"modp2048s256",
|
||||||
|
"ecp192",
|
||||||
|
"ecp224",
|
||||||
|
"ecp224bp",
|
||||||
|
"ecp256bp",
|
||||||
|
"ecp384bp",
|
||||||
|
"ecp512bp",
|
||||||
|
"curve25519",
|
||||||
|
"curve448");
|
||||||
|
ENUM_NEXT(diffie_hellman_group_names_short, MODP_NULL, MODP_NULL, CURVE_448,
|
||||||
|
"modpnull");
|
||||||
|
ENUM_NEXT(diffie_hellman_group_names_short, NTRU_112_BIT, NTRU_256_BIT, MODP_NULL,
|
||||||
|
"ntru112",
|
||||||
|
"ntru128",
|
||||||
|
"ntru192",
|
||||||
|
"ntru256");
|
||||||
|
ENUM_NEXT(diffie_hellman_group_names_short, NH_128_BIT, NH_128_BIT, NTRU_256_BIT,
|
||||||
|
"newhope128");
|
||||||
|
ENUM_NEXT(diffie_hellman_group_names_short, MODP_CUSTOM, MODP_CUSTOM, NH_128_BIT,
|
||||||
|
"modpcustom");
|
||||||
|
ENUM_END(diffie_hellman_group_names_short, MODP_CUSTOM);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of known diffie hellman group parameters.
|
* List of known diffie hellman group parameters.
|
||||||
|
|||||||
@@ -82,6 +82,11 @@ enum diffie_hellman_group_t {
|
|||||||
*/
|
*/
|
||||||
extern enum_name_t *diffie_hellman_group_names;
|
extern enum_name_t *diffie_hellman_group_names;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum names for diffie_hellman_group_t (matching proposal keywords).
|
||||||
|
*/
|
||||||
|
extern enum_name_t *diffie_hellman_group_names_short;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of the Diffie-Hellman algorithm, as in RFC2631.
|
* Implementation of the Diffie-Hellman algorithm, as in RFC2631.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -17,6 +17,32 @@
|
|||||||
|
|
||||||
#include <crypto/proposal/proposal.h>
|
#include <crypto/proposal/proposal.h>
|
||||||
|
|
||||||
|
START_TEST(test_dh_group_mapping)
|
||||||
|
{
|
||||||
|
enum_name_t *e = diffie_hellman_group_names_short;
|
||||||
|
diffie_hellman_group_t group;
|
||||||
|
const proposal_token_t *token;
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
for (group = e->first; group <= e->last; group++)
|
||||||
|
{
|
||||||
|
if (group == MODP_CUSTOM)
|
||||||
|
{ /* can't be configured */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
name = e->names[group - e->first];
|
||||||
|
token = lib->proposal->get_token(lib->proposal, name);
|
||||||
|
ck_assert_msg(token, "%s can't be mapped", name);
|
||||||
|
ck_assert_int_eq(token->type, DIFFIE_HELLMAN_GROUP);
|
||||||
|
ck_assert_int_eq(token->algorithm, group);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while ((e = e->next));
|
||||||
|
}
|
||||||
|
END_TEST
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
protocol_id_t proto;
|
protocol_id_t proto;
|
||||||
char *proposal;
|
char *proposal;
|
||||||
@@ -456,6 +482,10 @@ Suite *proposal_suite_create()
|
|||||||
|
|
||||||
s = suite_create("proposal");
|
s = suite_create("proposal");
|
||||||
|
|
||||||
|
tc = tcase_create("proposal keywords");
|
||||||
|
tcase_add_test(tc, test_dh_group_mapping);
|
||||||
|
suite_add_tcase(s, tc);
|
||||||
|
|
||||||
tc = tcase_create("create_from_string");
|
tc = tcase_create("create_from_string");
|
||||||
tcase_add_loop_test(tc, test_create_from_string, 0, countof(create_data));
|
tcase_add_loop_test(tc, test_create_from_string, 0, countof(create_data));
|
||||||
suite_add_tcase(s, tc);
|
suite_add_tcase(s, tc);
|
||||||
|
|||||||
Reference in New Issue
Block a user