1 #ifndef __LINUX_LUKS_FS_H
2 #define __LINUX_LUKS_FS_H
4 /* The basic structures of the luks partition header */
6 #define LUKS_CIPHERNAME_L 32
7 #define LUKS_CIPHERMODE_L 32
8 #define LUKS_HASHSPEC_L 32
9 #define LUKS_UUID_STRING_L 40
11 #define LUKS_MAGIC "LUKS\xBA\xBE"
12 #define LUKS_DIGESTSIZE 20
13 #define LUKS_SALTSIZE 32
14 #define LUKS_NUMKEYS 8
15 #define LUKS_MKD_ITER 10
16 #define LUKS_KEY_DISABLED 0x0000DEAD
17 #define LUKS_KEY_ENABLED 0x00AC71F3
18 #define LUKS_STRIPES 4000
20 /* On-disk "super block" */
21 struct luks_partition_header
{
22 char magic
[LUKS_MAGIC_L
];
24 char cipherName
[LUKS_CIPHERNAME_L
];
25 char cipherMode
[LUKS_CIPHERMODE_L
];
26 char hashSpec
[LUKS_HASHSPEC_L
];
29 char mkDigest
[LUKS_DIGESTSIZE
];
30 char mkDigestSalt
[LUKS_SALTSIZE
];
31 __be32 mkDigestIterations
;
32 char uuid
[LUKS_UUID_STRING_L
];
36 /* Parameters for PBKDF2 processing */
37 __be32 passwordIterations
;
38 char passwordSalt
[LUKS_SALTSIZE
];
39 __be32 keyMaterialOffset
;
41 } keyblock
[LUKS_NUMKEYS
];