aboutsummaryrefslogtreecommitdiffstats
path: root/security/integrity/evm/evm_main.c
diff options
context:
space:
mode:
authorDmitry Kasatkin <dmitry.kasatkin@nokia.com>2011-03-09 15:07:36 -0500
committerMimi Zohar <zohar@linux.vnet.ibm.com>2011-07-18 12:29:46 -0400
commitd46eb3699502ba221e81e88e6c6594e2a7818532 (patch)
tree4761b63f12ded9ad53e3019c33d62d173b4b07da /security/integrity/evm/evm_main.c
parent823eb1ccd0b310449e99c822412ea8208334d14c (diff)
evm: crypto hash replaced by shash
Using shash is more efficient, because the algorithm is allocated only once. Only the descriptor to store the hash state needs to be allocated for every operation. Changelog v6: - check for crypto_shash_setkey failure Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@nokia.com> Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Diffstat (limited to 'security/integrity/evm/evm_main.c')
-rw-r--r--security/integrity/evm/evm_main.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/security/integrity/evm/evm_main.c b/security/integrity/evm/evm_main.c
index 23486355f443..b65adb5b06c8 100644
--- a/security/integrity/evm/evm_main.c
+++ b/security/integrity/evm/evm_main.c
@@ -19,6 +19,7 @@
19#include <linux/xattr.h> 19#include <linux/xattr.h>
20#include <linux/integrity.h> 20#include <linux/integrity.h>
21#include <linux/evm.h> 21#include <linux/evm.h>
22#include <crypto/hash.h>
22#include "evm.h" 23#include "evm.h"
23 24
24int evm_initialized; 25int evm_initialized;
@@ -283,12 +284,10 @@ out:
283} 284}
284EXPORT_SYMBOL_GPL(evm_inode_init_security); 285EXPORT_SYMBOL_GPL(evm_inode_init_security);
285 286
286static struct crypto_hash *tfm_hmac; /* preload crypto alg */
287static int __init init_evm(void) 287static int __init init_evm(void)
288{ 288{
289 int error; 289 int error;
290 290
291 tfm_hmac = crypto_alloc_hash(evm_hmac, 0, CRYPTO_ALG_ASYNC);
292 error = evm_init_secfs(); 291 error = evm_init_secfs();
293 if (error < 0) { 292 if (error < 0) {
294 printk(KERN_INFO "EVM: Error registering secfs\n"); 293 printk(KERN_INFO "EVM: Error registering secfs\n");
@@ -301,7 +300,8 @@ err:
301static void __exit cleanup_evm(void) 300static void __exit cleanup_evm(void)
302{ 301{
303 evm_cleanup_secfs(); 302 evm_cleanup_secfs();
304 crypto_free_hash(tfm_hmac); 303 if (hmac_tfm)
304 crypto_free_shash(hmac_tfm);
305} 305}
306 306
307/* 307/*