"dm-crypt" is the infrastructure in the linux kernel that deals with block device encryption.
TrueCrypt,VeraCrypt,zuluCrypt,tcplay,cryptsetup among others use this infrastructure to do user data encryption/decryption.
What these project do is parse a volume header on a volume to get crypto properties and then pass them to dm-crypt for it to do everything else.
The difference between a TrueCrypt volume,a VeraCrypt volume and a LUKS volume is in how their crypto properties are stored on the header and dm-crypt is not aware of any of these projects.
Once you know crypto properties of a volume,you can skip all these projects and go straight to dm-crypt and manually create the encryption mapper using dmsetup. All the necessary information about an open encryption mapper looks like below:
Will be interesting to follow the audit.