1 /* 2 * Copyright (C) 2010 IBM Corporation 3 * Copyright (C) 2010 Politecnico di Torino, Italy 4 * TORSEC group -- http://security.polito.it 5 * 6 * Authors: 7 * Mimi Zohar <zohar@us.ibm.com> 8 * Roberto Sassu <roberto.sassu@polito.it> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License as published by 12 * the Free Software Foundation, version 2 of the License. 13 */ 14 15 #ifndef _KEYS_ENCRYPTED_TYPE_H 16 #define _KEYS_ENCRYPTED_TYPE_H 17 18 #include <linux/key.h> 19 #include <linux/rcupdate.h> 20 21 struct encrypted_key_payload { 22 struct rcu_head rcu; 23 char *format; /* datablob: format */ 24 char *master_desc; /* datablob: master key name */ 25 char *datalen; /* datablob: decrypted key length */ 26 u8 *iv; /* datablob: iv */ 27 u8 *encrypted_data; /* datablob: encrypted data */ 28 unsigned short datablob_len; /* length of datablob */ 29 unsigned short decrypted_datalen; /* decrypted data length */ 30 unsigned short payload_datalen; /* payload data length */ 31 unsigned short encrypted_key_format; /* encrypted key format */ 32 u8 *decrypted_data; /* decrypted data */ 33 u8 payload_data[0]; /* payload data + datablob + hmac */ 34 }; 35 36 extern struct key_type key_type_encrypted; 37 38 #endif /* _KEYS_ENCRYPTED_TYPE_H */ 39