Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: John Johansen <john.johansen@canonical.com>
Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+Acked-by: Stefan Bader <stefan.bader@canonical.com>
+Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/ecryptfs/crypto.c | 68 +++++++++++++++++++++++++++++++++++++-----
- fs/ecryptfs/ecryptfs_kernel.h | 6 +++
+ fs/ecryptfs/ecryptfs_kernel.h | 11 ++++++
fs/ecryptfs/keystore.c | 9 +----
fs/ecryptfs/super.c | 14 ++++++++
- 4 files changed, 83 insertions(+), 14 deletions(-)
+ 4 files changed, 88 insertions(+), 14 deletions(-)
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
+}
--- a/fs/ecryptfs/ecryptfs_kernel.h
+++ b/fs/ecryptfs/ecryptfs_kernel.h
-@@ -227,6 +227,10 @@ ecryptfs_get_key_payload_data(struct key
+@@ -221,12 +221,21 @@ ecryptfs_get_key_payload_data(struct key
+ * dentry name */
+ #define ECRYPTFS_TAG_73_PACKET_TYPE 0x49 /* FEK-encrypted filename as
+ * metadata */
++#define ECRYPTFS_MIN_PKT_LEN_SIZE 1 /* Min size to specify packet length */
++#define ECRYPTFS_MAX_PKT_LEN_SIZE 2 /* Pass at least this many bytes to
++ * ecryptfs_parse_packet_length() and
++ * ecryptfs_write_packet_length()
++ */
+ /* Constraint: ECRYPTFS_FILENAME_MIN_RANDOM_PREPEND_BYTES >=
+ * ECRYPTFS_MAX_IV_BYTES */
+ #define ECRYPTFS_FILENAME_MIN_RANDOM_PREPEND_BYTES 16
#define ECRYPTFS_NON_NULL 0x42 /* A reasonable substitute for NULL */
#define MD5_DIGEST_SIZE 16
#define ECRYPTFS_TAG_70_DIGEST_SIZE MD5_DIGEST_SIZE
#define ECRYPTFS_FEK_ENCRYPTED_FILENAME_PREFIX "ECRYPTFS_FEK_ENCRYPTED."
#define ECRYPTFS_FEK_ENCRYPTED_FILENAME_PREFIX_SIZE 23
#define ECRYPTFS_FNEK_ENCRYPTED_FILENAME_PREFIX "ECRYPTFS_FNEK_ENCRYPTED."
-@@ -765,6 +769,8 @@ ecryptfs_parse_tag_70_packet(char **file
+@@ -765,6 +774,8 @@ ecryptfs_parse_tag_70_packet(char **file
size_t *packet_size,
struct ecryptfs_mount_crypt_stat *mount_crypt_stat,
char *data, size_t max_packet_size);