Enigma has a lot of API's if you don't read the manual and don't know how to look up an API then you could take a look at the checked uses in the getEnigma() method of the Enigma class.That lists all API calls made by Enigma as you can see it's not always obvious.
The main problem with Enigma is not the API's nor the checks and the UI, but rather that the security concept is not that well explained, that means you have to take a lot of time to find out how it works.
So let's do the same with BitLocker, I'll keep the protection concept simple for now and just use AES256 for encryption, that's fast but not the best, but for this kind of demo it won't matter.Here is an explanation of how BitLocker works.
First let's look at the user's context, that's the.TPM, for BitLocker that's called a Trusted Platform Module, a special chip which is in your computer, next to the motherboard and usually not directly visible to the user. Then there is the bootloader which is also a special application, I won't go into the details here, but if you ever had an encrypted bootloader, then it's the same.This bootloader application is installed in a small computer, the Trusted Platform Module in your motherboards BIOS chip, and the operating system will then start it, like the bootloader for Windows, but before it does that it asks for a password.
Now this is the secret you will be asked for which you can change after you booted. The first thing you do when you boot your computer is to enter a password. BitLocker will check that password and if it is right then the bootloader will hand over control to the kernel.In Windows' case the bootloader in the TPM decrypts the encryption key, puts it in the RAM or maybe also in the harddrive key hidden by the operating system, as this is the password that you must enter in order to access the operating system.
Now the operating system starts, it loads the kernel which can be seen in the task manager as the kernel of the operating system, that's a small module, the BitLocker module. 827ec27edc