integrity.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright (C) 2009-2010 IBM Corporation
  3. *
  4. * Authors:
  5. * Mimi Zohar <zohar@us.ibm.com>
  6. *
  7. * This program is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU General Public License as
  9. * published by the Free Software Foundation, version 2 of the
  10. * License.
  11. *
  12. */
  13. #include <linux/types.h>
  14. #include <linux/integrity.h>
  15. #include <crypto/sha.h>
  16. /* iint cache flags */
  17. #define IMA_MEASURED 0x01
  18. /* integrity data associated with an inode */
  19. struct integrity_iint_cache {
  20. struct rb_node rb_node; /* rooted in integrity_iint_tree */
  21. struct inode *inode; /* back pointer to inode in question */
  22. u64 version; /* track inode changes */
  23. unsigned char flags;
  24. u8 digest[SHA1_DIGEST_SIZE];
  25. struct mutex mutex; /* protects: version, flags, digest */
  26. };
  27. /* rbtree tree calls to lookup, insert, delete
  28. * integrity data associated with an inode.
  29. */
  30. struct integrity_iint_cache *integrity_iint_insert(struct inode *inode);
  31. struct integrity_iint_cache *integrity_iint_find(struct inode *inode);