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 | |
Dmitry Kasatkin | 26ddabf | 2015-10-22 21:26:26 +0300 | [diff] [blame] | 24 | #define EVM_INIT_HMAC 0x0001 |
| 25 | #define EVM_INIT_X509 0x0002 |
| 26 | |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 27 | extern int evm_initialized; |
| 28 | extern char *evm_hmac; |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 29 | extern char *evm_hash; |
Dmitry Kasatkin | d3b3367 | 2014-03-28 14:31:04 +0200 | [diff] [blame] | 30 | |
| 31 | #define EVM_ATTR_FSUUID 0x0001 |
| 32 | |
| 33 | extern int evm_hmac_attrs; |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 34 | |
Dmitry Kasatkin | d46eb36 | 2011-03-09 15:07:36 -0500 | [diff] [blame] | 35 | extern struct crypto_shash *hmac_tfm; |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 36 | extern struct crypto_shash *hash_tfm; |
Dmitry Kasatkin | d46eb36 | 2011-03-09 15:07:36 -0500 | [diff] [blame] | 37 | |
Mimi Zohar | 66dbc325 | 2011-03-15 16:12:09 -0400 | [diff] [blame] | 38 | /* List of EVM protected security xattrs */ |
| 39 | extern char *evm_config_xattrnames[]; |
| 40 | |
Dmitry Kasatkin | 2bb930a | 2014-03-04 18:04:20 +0200 | [diff] [blame] | 41 | int evm_init_key(void); |
| 42 | int evm_update_evmxattr(struct dentry *dentry, |
| 43 | const char *req_xattr_name, |
| 44 | const char *req_xattr_value, |
| 45 | size_t req_xattr_value_len); |
| 46 | int evm_calc_hmac(struct dentry *dentry, const char *req_xattr_name, |
| 47 | const char *req_xattr_value, |
| 48 | size_t req_xattr_value_len, char *digest); |
| 49 | int evm_calc_hash(struct dentry *dentry, const char *req_xattr_name, |
| 50 | const char *req_xattr_value, |
| 51 | size_t req_xattr_value_len, char *digest); |
| 52 | int evm_init_hmac(struct inode *inode, const struct xattr *xattr, |
| 53 | char *hmac_val); |
| 54 | int evm_init_secfs(void); |
Dmitry Kasatkin | 15647eb | 2011-09-01 14:41:40 +0300 | [diff] [blame] | 55 | |
| 56 | #endif |