What is the difference between Key Data and Key Values?

Key Data
When you use the KeyCheck API, the application is enforced to detect the Key at run-time. In the Key structure, there is a 64-byte space called 'Key Data' where you can save anything you want such as configuration, username, password, or a signature that can help you to verify the valid Key.
Key Values
Key Values is another part in the Key structure that stores 10 key-value pairs. It provides a mechanism to protect against DLL emulation. In other words, a cracker may attempt to intercept the interface between the protected application and the ElecKey's DLLs, e.g. Ekc6420.dll, Ekg20nt.exe, and then create an emulated DLL to bypass the licensing mechanism. Key Values allows you to create a series of random challenges/responses between the protected application and the Key. As a result, the emulated DLL would not always be able to follow the random challenges/responses correctly. Whenever the DLL returns a wrong value, the application can detect the emulated DLL and terminates itself.
Both Key Data and Key Values do not have any impact on generating or validating a license. They are optional. If you don't use them, everything still works. Key Values helps to increase security to your application.