Synchronous Message Digest API

crypto_alloc_shash — allocate message digest handle
crypto_free_shash — zeroize and free the message digest handle
crypto_shash_blocksize — obtain block size for cipher
crypto_shash_digestsize — obtain message digest size
crypto_shash_descsize — obtain the operational state size
crypto_shash_setkey — set key for message digest
crypto_shash_digest — calculate message digest for buffer
crypto_shash_export — extract operational state for message digest
crypto_shash_import — import operational state
crypto_shash_init — (re)initialize message digest
crypto_shash_update — add data to message digest for processing
crypto_shash_final — calculate message digest
crypto_shash_finup — calculate message digest of buffer

The synchronous message digest API is used with the ciphers of type CRYPTO_ALG_TYPE_SHASH (listed as type shash in /proc/crypto)

The message digest API is able to maintain state information for the caller.

The synchronous message digest API can store user-related context in in its shash_desc request data structure.