blob: fd8de315ee8eca1ce89c4859f2abae171012fa17 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#ifndef __LINUX_LUKS_FS_H
#define __LINUX_LUKS_FS_H
/* The basic structures of the luks partition header */
#define LUKS_MAGIC_L 6
#define LUKS_CIPHERNAME_L 32
#define LUKS_CIPHERMODE_L 32
#define LUKS_HASHSPEC_L 32
#define LUKS_UUID_STRING_L 40
#define LUKS_MAGIC "LUKS\xBA\xBE"
#define LUKS_DIGESTSIZE 20
#define LUKS_SALTSIZE 32
#define LUKS_NUMKEYS 8
#define LUKS_MKD_ITER 10
#define LUKS_KEY_DISABLED 0x0000DEAD
#define LUKS_KEY_ENABLED 0x00AC71F3
#define LUKS_STRIPES 4000
/* On-disk "super block" */
struct luks_partition_header {
char magic[LUKS_MAGIC_L];
__be16 version;
char cipherName[LUKS_CIPHERNAME_L];
char cipherMode[LUKS_CIPHERMODE_L];
char hashSpec[LUKS_HASHSPEC_L];
__be32 payloadOffset;
__be32 keyBytes;
char mkDigest[LUKS_DIGESTSIZE];
char mkDigestSalt[LUKS_SALTSIZE];
__be32 mkDigestIterations;
char uuid[LUKS_UUID_STRING_L];
struct {
__be32 active;
/* Parameters for PBKDF2 processing */
__be32 passwordIterations;
char passwordSalt[LUKS_SALTSIZE];
__be32 keyMaterialOffset;
__be32 stripes;
} keyblock[LUKS_NUMKEYS];
};
#endif
|