This cryptoc library has been pulled from open source Chromium repo: git clone https://chromium.googlesource.com/chromiumos/third_party/cryptoc
This directory contains the following stand-alone crypto implementations: sha, sha256 and hmac (using sha and sha256)
These implemenations have no stl or OpenSSL dependencies and are endian-neutral.
The sha*., hmac. and util.* sources are in their original, unmodified state. The only modification is the path to header.
The rest is sourced natively.
The hmac_wrap.* sources have been newly added to include functions that take arbitrary length msg and key as arguments and return the final HMAC digest. This is a missing piece in the original hmac.* sources picked up from the above repo.
The cryptoc_dpi.c contains DPI-C wrapper functions exported to SV so that they can be called from testbenches. It does DPI-C specific processing to the input and output args required to be able to call the pure C cryptoc library functions.
The cryptoc_dpi_pkg.sv contains the DPI-C imports for the C functions and extra SV wrapper functions that call the imported DPI-C wrapper functions.