A Windows Dll implementing a deciphering function is needed.
## Deliverables
**Context:**
A sender S sends data to a receiver R.
The data consists of a value V (24 bytes) and an authentication code A (48 bytes).
The authentication code A is the ciphering of V using the Elliptic Curve Cryptography algorithm (ECC).
The parameters of the ECC are defined by the curve secp192r1.
Public key and test vectors are provided as a separate file
The authentication code (r,s) is formed as follows:
r: bytes 0-23 of A, s: bytes 24-47 of A.
The receiver R, has to check the authentication code A of the received data.
**We need:**
For the authentication code checking we need a Windows Dll with the following function:
BOOL ECCCheck(char *PublicKey, int PublicKeyLength,
char *Value, int ValueLength, char *AuthenticationCode, int AuthenticationCodeLength);
All the char* parameters are pointers to binary octet strings, ordered as byte 0, byte 1, etc...
All the length parameters are the quantity of octets of their corresponding char* parameter.
ECCCheck will return TRUE if the AuthenticationCode deciphered using the PublicKey yields the Value, and FALSE otherwise.
**Other requirements:**
The dll must be written in C and/or C++
The usage of open source code is allowed but we have to be informed about the license of the open source code before approving the project.
The dll must be compilable using Microsoft Visual studio 8
The deliverable are:
1) A MS Visual studio 8 solution for the dll with all source files.
2) A compiled version of the dll.
3) A simple client test application for the dll, as a MS Visual studio 8 solution with all source files.
Any point can be discussed.