Cryptoc library (SHA, SHA256 and HMAC)

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.

Cryptoc-dpi extensions for dv

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.