Make function to test if an encryption algorithm is an AEAD alg public
This commit is contained in:
@@ -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
|
* Find a matching alg/keysize in two linked lists
|
||||||
*/
|
*/
|
||||||
@@ -366,7 +344,7 @@ static proposal_t *select_proposal(private_proposal_t *this,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* select integrity algorithm */
|
/* select integrity algorithm */
|
||||||
if (!is_authenticated_encryption(algo))
|
if (!encryption_algorithm_is_aead(algo))
|
||||||
{
|
{
|
||||||
if (select_algo(this->integrity_algos, other->integrity_algos, private,
|
if (select_algo(this->integrity_algos, other->integrity_algos, private,
|
||||||
&add, &algo, &key_size))
|
&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);
|
e = this->encryption_algos->create_enumerator(this->encryption_algos);
|
||||||
while (e->enumerate(e, &alg))
|
while (e->enumerate(e, &alg))
|
||||||
{
|
{
|
||||||
if (!is_authenticated_encryption(alg->algorithm))
|
if (!encryption_algorithm_is_aead(alg->algorithm))
|
||||||
{
|
{
|
||||||
all_aead = FALSE;
|
all_aead = FALSE;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -159,4 +159,25 @@ int encryption_algorithm_to_oid(encryption_algorithm_t alg, size_t key_size)
|
|||||||
return oid;
|
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);
|
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_ @}*/
|
#endif /** CRYPTER_H_ @}*/
|
||||||
|
|||||||
Reference in New Issue
Block a user