Added support for Camellia cipher to xcbc

This commit is contained in:
Martin Willi
2010-08-13 17:11:54 +02:00
parent c7776e0aa8
commit c03b0d7e6b
4 changed files with 18 additions and 4 deletions
+8 -4
View File
@@ -36,9 +36,9 @@ METHOD(plugin_t, destroy, void,
private_xcbc_plugin_t *this)
{
lib->crypto->remove_prf(lib->crypto,
(prf_constructor_t)xcbc_prf_create);
(prf_constructor_t)xcbc_prf_create);
lib->crypto->remove_signer(lib->crypto,
(signer_constructor_t)xcbc_signer_create);
(signer_constructor_t)xcbc_signer_create);
free(this);
}
@@ -54,9 +54,13 @@ plugin_t *xcbc_plugin_create()
);
lib->crypto->add_prf(lib->crypto, PRF_AES128_XCBC,
(prf_constructor_t)xcbc_prf_create);
(prf_constructor_t)xcbc_prf_create);
lib->crypto->add_prf(lib->crypto, PRF_CAMELLIA128_XCBC,
(prf_constructor_t)xcbc_prf_create);
lib->crypto->add_signer(lib->crypto, AUTH_AES_XCBC_96,
(signer_constructor_t)xcbc_signer_create);
(signer_constructor_t)xcbc_signer_create);
lib->crypto->add_signer(lib->crypto, AUTH_CAMELLIA_XCBC_96,
(signer_constructor_t)xcbc_signer_create);
return &this->public.plugin;
}
@@ -94,6 +94,9 @@ xcbc_prf_t *xcbc_prf_create(pseudo_random_function_t algo)
case PRF_AES128_XCBC:
xcbc = xcbc_create(ENCR_AES_CBC, 16);
break;
case PRF_CAMELLIA128_XCBC:
xcbc = xcbc_create(ENCR_CAMELLIA_CBC, 16);
break;
default:
return NULL;
}
@@ -131,6 +131,10 @@ xcbc_signer_t *xcbc_signer_create(integrity_algorithm_t algo)
xcbc = xcbc_create(ENCR_AES_CBC, 16);
trunc = 12;
break;
case AUTH_CAMELLIA_XCBC_96:
xcbc = xcbc_create(ENCR_CAMELLIA_CBC, 16);
trunc = 12;
break;
default:
return NULL;
}