Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2005-2010 IBM Corporation |
| 3 | * |
| 4 | * Authors: |
| 5 | * Mimi Zohar <zohar@us.ibm.com> |
| 6 | * Kylene Hall <kjhall@us.ibm.com> |
| 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License as published by |
| 10 | * the Free Software Foundation, version 2 of the License. |
| 11 | * |
| 12 | * File: evm.h |
| 13 | * |
| 14 | */ |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 15 | |
| 16 | #ifndef __INTEGRITY_EVM_H |
| 17 | #define __INTEGRITY_EVM_H |
| 18 | |
Mimi Zohar | cb72318 | 2011-03-09 14:40:44 -0500 | [diff] [blame] | 19 | #include <linux/xattr.h> |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 20 | #include <linux/security.h> |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 21 | |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 22 | #include "../integrity.h" |
| 23 | |
| 24 | extern int evm_initialized; |
| 25 | extern char *evm_hmac; |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 26 | extern char *evm_hash; |
Dmitry Kasatkin | 74de668 | 2012-09-10 10:37:20 +0300 | [diff] [blame] | 27 | extern int evm_hmac_version; |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 28 | |
Dmitry Kasatkin | d46eb36 | 2011-03-09 15:07:36 -0500 | [diff] [blame] | 29 | extern struct crypto_shash *hmac_tfm; |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 30 | extern struct crypto_shash *hash_tfm; |
Dmitry Kasatkin | d46eb36 | 2011-03-09 15:07:36 -0500 | [diff] [blame] | 31 | |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 32 | /* List of EVM protected security xattrs */ |
| 33 | extern char *evm_config_xattrnames[]; |
| 34 | |
| 35 | extern int evm_init_key(void); |
| 36 | extern int evm_update_evmxattr(struct dentry *dentry, |
| 37 | const char *req_xattr_name, |
| 38 | const char *req_xattr_value, |
| 39 | size_t req_xattr_value_len); |
| 40 | extern int evm_calc_hmac(struct dentry *dentry, const char *req_xattr_name, |
| 41 | const char *req_xattr_value, |
| 42 | size_t req_xattr_value_len, char *digest); |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 43 | extern int evm_calc_hash(struct dentry *dentry, const char *req_xattr_name, |
| 44 | const char *req_xattr_value, |
| 45 | size_t req_xattr_value_len, char *digest); |
Mimi Zohar | cb72318 | 2011-03-09 14:40:44 -0500 | [diff] [blame] | 46 | extern int evm_init_hmac(struct inode *inode, const struct xattr *xattr, |
| 47 | char *hmac_val); |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 48 | extern int evm_init_secfs(void); |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 49 | |
| 50 | #endif |