1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2010 IBM Corporation 4 * Copyright (C) 2010 Politecnico di Torino, Italy 5 * TORSEC group -- http://security.polito.it 6 * 7 * Authors: 8 * Mimi Zohar <zohar@us.ibm.com> 9 * Roberto Sassu <roberto.sassu@polito.it> 10 */ 11 12 #ifndef _KEYS_ENCRYPTED_TYPE_H 13 #define _KEYS_ENCRYPTED_TYPE_H 14 15 #include <linux/key.h> 16 #include <linux/rcupdate.h> 17 18 struct encrypted_key_payload { 19 struct rcu_head rcu; 20 char *format; /* datablob: format */ 21 char *master_desc; /* datablob: master key name */ 22 char *datalen; /* datablob: decrypted key length */ 23 u8 *iv; /* datablob: iv */ 24 u8 *encrypted_data; /* datablob: encrypted data */ 25 unsigned short datablob_len; /* length of datablob */ 26 unsigned short decrypted_datalen; /* decrypted data length */ 27 unsigned short payload_datalen; /* payload data length */ 28 unsigned short encrypted_key_format; /* encrypted key format */ 29 u8 *decrypted_data; /* decrypted data */ 30 u8 payload_data[0]; /* payload data + datablob + hmac */ 31 }; 32 33 extern struct key_type key_type_encrypted; 34 35 #endif /* _KEYS_ENCRYPTED_TYPE_H */ 36