ACVP Parser
This parser implements the ACVP protocol used by NIST for the automated CAVP testing (Automated Cryptographic Validation Program - ACVP).
This parser processes JSON files that are already downloaded from the NIST ACVP server. It invokes the cryptographic implementation and generates the test response JSON data as defined by the ACVP protocol.
The entire ACVP server interaction including download of test vectors and upload of test responses must be handled with a separate tool, like the ACVP Proxy.
The following crypto implementations were successfully linked with and tested using the ACVP Parser:
-
Linux /dev/random replacement implementation (LRNG) conditioning function
-
BouncyCastle Java implementation accessed via the JNA interface
-
Linux kernel crypto API using a kernel module written for the testing
In addition, the ACVP Parser is used to implement the following converters:
-
Conversion of ACVP test vectors into CAVS format
-
Conversion of CAVS test responses into ACVP test response format
No Runtime-Dependencies
The ACVP Parser is written in a clean C99 code and only requires the presence of a POSIX environment. It does not require any additional libraries or support functions and is therefore intended to be usable a large array of environments. For example, the ACVP Parser is successfully ported to iOS without requiring any code changes. Only a UI was required to be added to allow the application to be deployed.
GitHub Link
A public git repository is provided at Github.
ACVP Protocol Specification
The ACVP Parser implements the entire test vector JSON parsing of the ACVP Protocol Specification. It implements all aspects of the protocol.
Historic Releases
For older releases, see the ACVP Parser historic page.