fscrypt_private.h (d4e0045c4ed300781d2d4cbab57d05ed5e665a37) fscrypt_private.h (b7e7cf7a66a27e62c5f873a0068cee34094bf5d7)
1/*
2 * fscrypt_private.h
3 *
4 * Copyright (C) 2015, Google, Inc.
5 *
6 * This contains encryption key functions.
7 *
8 * Written by Michael Halcrow, Ildar Muslukhov, and Uday Savagaonkar, 2015.
9 */
10
11#ifndef _FSCRYPT_PRIVATE_H
12#define _FSCRYPT_PRIVATE_H
13
14#include <linux/fscrypt_supp.h>
1/*
2 * fscrypt_private.h
3 *
4 * Copyright (C) 2015, Google, Inc.
5 *
6 * This contains encryption key functions.
7 *
8 * Written by Michael Halcrow, Ildar Muslukhov, and Uday Savagaonkar, 2015.
9 */
10
11#ifndef _FSCRYPT_PRIVATE_H
12#define _FSCRYPT_PRIVATE_H
13
14#include <linux/fscrypt_supp.h>
15#include <crypto/hash.h>
15
16/* Encryption parameters */
16
17/* Encryption parameters */
17#define FS_XTS_TWEAK_SIZE 16
18#define FS_IV_SIZE 16
18#define FS_AES_128_ECB_KEY_SIZE 16
19#define FS_AES_128_ECB_KEY_SIZE 16
20#define FS_AES_128_CBC_KEY_SIZE 16
21#define FS_AES_128_CTS_KEY_SIZE 16
19#define FS_AES_256_GCM_KEY_SIZE 32
20#define FS_AES_256_CBC_KEY_SIZE 32
21#define FS_AES_256_CTS_KEY_SIZE 32
22#define FS_AES_256_XTS_KEY_SIZE 64
23
24#define FS_KEY_DERIVATION_NONCE_SIZE 16
25
26/**

--- 22 unchanged lines hidden (view full) ---

49 * A pointer to this structure is stored in the file system's in-core
50 * representation of an inode.
51 */
52struct fscrypt_info {
53 u8 ci_data_mode;
54 u8 ci_filename_mode;
55 u8 ci_flags;
56 struct crypto_skcipher *ci_ctfm;
22#define FS_AES_256_GCM_KEY_SIZE 32
23#define FS_AES_256_CBC_KEY_SIZE 32
24#define FS_AES_256_CTS_KEY_SIZE 32
25#define FS_AES_256_XTS_KEY_SIZE 64
26
27#define FS_KEY_DERIVATION_NONCE_SIZE 16
28
29/**

--- 22 unchanged lines hidden (view full) ---

52 * A pointer to this structure is stored in the file system's in-core
53 * representation of an inode.
54 */
55struct fscrypt_info {
56 u8 ci_data_mode;
57 u8 ci_filename_mode;
58 u8 ci_flags;
59 struct crypto_skcipher *ci_ctfm;
60 struct crypto_cipher *ci_essiv_tfm;
57 u8 ci_master_key[FS_KEY_DESCRIPTOR_SIZE];
58};
59
60typedef enum {
61 FS_DECRYPT = 0,
62 FS_ENCRYPT,
63} fscrypt_direction_t;
64

--- 17 unchanged lines hidden (view full) ---

82 fscrypt_direction_t rw, u64 lblk_num,
83 struct page *src_page,
84 struct page *dest_page,
85 unsigned int len, unsigned int offs,
86 gfp_t gfp_flags);
87extern struct page *fscrypt_alloc_bounce_page(struct fscrypt_ctx *ctx,
88 gfp_t gfp_flags);
89
61 u8 ci_master_key[FS_KEY_DESCRIPTOR_SIZE];
62};
63
64typedef enum {
65 FS_DECRYPT = 0,
66 FS_ENCRYPT,
67} fscrypt_direction_t;
68

--- 17 unchanged lines hidden (view full) ---

86 fscrypt_direction_t rw, u64 lblk_num,
87 struct page *src_page,
88 struct page *dest_page,
89 unsigned int len, unsigned int offs,
90 gfp_t gfp_flags);
91extern struct page *fscrypt_alloc_bounce_page(struct fscrypt_ctx *ctx,
92 gfp_t gfp_flags);
93
94/* keyinfo.c */
95extern void __exit fscrypt_essiv_cleanup(void);
96
90#endif /* _FSCRYPT_PRIVATE_H */
97#endif /* _FSCRYPT_PRIVATE_H */