}
CDEBUG(D_INFO, "Using crypto hash: %s (%s) speed %d MB/s\n",
- crypto_tfm_alg_name(crypto_hash_tfm(desc->tfm)),
- crypto_tfm_alg_driver_name(crypto_hash_tfm(desc->tfm)),
+ (crypto_hash_tfm(desc->tfm))->__crt_alg->cra_name,
+ (crypto_hash_tfm(desc->tfm))->__crt_alg->cra_driver_name,
cfs_crypto_hash_speeds[alg_id]);
#ifdef HAVE_STRUCT_SHASH_ALG
if (hash_len == NULL) {
crypto_free_hash(((struct hash_desc *)hdesc)->tfm);
+ cfs_free(hdesc);
return 0;
}
if (hash == NULL || *hash_len < size) {
return err;
}
crypto_free_hash(((struct hash_desc *)hdesc)->tfm);
+ cfs_free(hdesc);
return err;
}
EXPORT_SYMBOL(cfs_crypto_hash_final);
static int crc32, adler32;
+#ifdef CONFIG_X86
+static int crc32pclmul;
+#endif
+
int cfs_crypto_register(void)
{
crc32 = cfs_crypto_crc32_register();
adler32 = cfs_crypto_adler32_register();
+#ifdef CONFIG_X86
+ crc32pclmul = cfs_crypto_crc32_pclmul_register();
+#endif
+
/* check all algorithms and do perfermance test */
cfs_crypto_test_hashes();
return 0;
cfs_crypto_crc32_unregister();
if (adler32 == 0)
cfs_crypto_adler32_unregister();
+
+#ifdef CONFIG_X86
+ if (crc32pclmul == 0)
+ cfs_crypto_crc32_pclmul_unregister();
+#endif
+
return;
}