| #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 |