9. The password P (after the keyfile pool content has been applied to it) is now passed to the
header key derivation function PBKDF2 (PKCS #5 v2), which processes it (along with salt
and other data) using a cryptographically secure hash algorithm selected by the user (e.g.,
SHA-512). See the section Header Key Derivation, Salt, and Iteration Count for more
information.
The role of the hash function H is merely to perform diffusion [2]. CRC-32 is used as the hash
function H. Note that the output of CRC-32 is subsequently processed using a cryptographically
secure hash algorithm: The keyfile pool content (in addition to being hashed using CRC-32) is
applied to the password, which is then passed to the header key derivation function PBKDF2
(PKCS #5 v2), which processes it (along with salt and other data) using a cryptographically
secure hash algorithm selected by the user (e.g., SHA-512). The resultant values are used to
form the header key and the secondary header key (XTS mode).