blob: fd8de315ee8eca1ce89c4859f2abae171012fa17 [file] [log] [blame]
#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