ApiTest - Runtime sample code in Ada
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Tested with GNAT gnatmake command-line utility 2011 but should work
with other Ada Compilers.

The dris.ads file contains the DRIS structure definition and other useful constants
The apitest.adb file is the main sample code file. You can compile it like this:

gnatmake apitest.adb

The sample code contains 12 functions:

DDProtCheck
DDProtCheckWithAlg
WriteBytes
ReadBytes
EncryptUserData

(There are also encrypted versions of these functions where the parameters passed
to and from our API are encrypted for greater security).

The best approach is to compile the sample code and see how it works and then to take
the appropriate code and apply it to your own project. You should include the dris.ads
file in your project and use/modify which ever functions from apitest.adb you feel are
appropriate. The dris.ads file should not be modified.

You will not need to use all these functions in your code. Just use which ever
functions are most appropriate and customise in your own way. The sample code
is just a guide. You should implement the protection in a stronger way using
the techniques described in the "Increasing your Protection" chapter of the manual.

Code marked with !!!! are places where you should customise the sample code so
that it will work properly:

* Change the MY_SDSN value to the value of your SDSN
* Change the MyAlgorithm code (if you call a user algorithm)
* Change the CryptDRIS code (if you encrypt the DRIS)
* Change the CryptApiData (if you encrypt Data you send to our API)
* Change the MyRWAlgorithm code (if encrypt Data you send to our API using the R/W algorithm)

You will also probably want to replace our error messages with your own.

Note - you should use DinkeyAdd to protect dpwin32.dll and not your program.
Because your program is linked to the DLL it is protected. 

Note - the protected dpwin32.dll should reside in the same folder as your compiled
code. 

Note - because of our strong anti-debug code you may not be able to debug your code
after calling our DLL. 
