Make function to test if an encryption algorithm is an AEAD alg public

This commit is contained in:
Martin Willi
2010-08-19 19:02:16 +02:00
parent df8d0d8703
commit 7fc4b0814f
3 changed files with 32 additions and 25 deletions
+2 -24
View File
@@ -253,28 +253,6 @@ static void strip_dh(private_proposal_t *this)
}
}
/**
* Returns true if the given alg is an authenticated encryption algorithm
*/
static bool is_authenticated_encryption(u_int16_t alg)
{
switch(alg)
{
case ENCR_AES_CCM_ICV8:
case ENCR_AES_CCM_ICV12:
case ENCR_AES_CCM_ICV16:
case ENCR_AES_GCM_ICV8:
case ENCR_AES_GCM_ICV12:
case ENCR_AES_GCM_ICV16:
case ENCR_CAMELLIA_CCM_ICV8:
case ENCR_CAMELLIA_CCM_ICV12:
case ENCR_CAMELLIA_CCM_ICV16:
case ENCR_NULL_AUTH_AES_GMAC:
return TRUE;
}
return FALSE;
}
/**
* Find a matching alg/keysize in two linked lists
*/
@@ -366,7 +344,7 @@ static proposal_t *select_proposal(private_proposal_t *this,
return NULL;
}
/* select integrity algorithm */
if (!is_authenticated_encryption(algo))
if (!encryption_algorithm_is_aead(algo))
{
if (select_algo(this->integrity_algos, other->integrity_algos, private,
&add, &algo, &key_size))
@@ -565,7 +543,7 @@ static void check_proposal(private_proposal_t *this)
e = this->encryption_algos->create_enumerator(this->encryption_algos);
while (e->enumerate(e, &alg))
{
if (!is_authenticated_encryption(alg->algorithm))
if (!encryption_algorithm_is_aead(alg->algorithm))
{
all_aead = FALSE;
break;
+22 -1
View File
@@ -159,4 +159,25 @@ int encryption_algorithm_to_oid(encryption_algorithm_t alg, size_t key_size)
return oid;
}
/*
* Described in header.
*/
bool encryption_algorithm_is_aead(encryption_algorithm_t alg)
{
switch (alg)
{
case ENCR_AES_CCM_ICV8:
case ENCR_AES_CCM_ICV12:
case ENCR_AES_CCM_ICV16:
case ENCR_AES_GCM_ICV8:
case ENCR_AES_GCM_ICV12:
case ENCR_AES_GCM_ICV16:
case ENCR_NULL_AUTH_AES_GMAC:
case ENCR_CAMELLIA_CCM_ICV8:
case ENCR_CAMELLIA_CCM_ICV12:
case ENCR_CAMELLIA_CCM_ICV16:
return TRUE;
default:
return FALSE;
}
}
@@ -170,4 +170,12 @@ encryption_algorithm_t encryption_algorithm_from_oid(int oid, size_t *key_size);
*/
int encryption_algorithm_to_oid(encryption_algorithm_t alg, size_t key_size);
/**
* Check if an encryption algorithm identifier is an AEAD algorithm.
*
* @param alg algorithm identifier
* @return TRUE if it is an AEAD algorithm
*/
bool encryption_algorithm_is_aead(encryption_algorithm_t alg);
#endif /** CRYPTER_H_ @}*/