/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright 2018-2019 NXP
 *
 * Brief   Hash interface calling the HW crypto driver.
 */
#ifndef __DRVCRYPT_HASH_H__
#define __DRVCRYPT_HASH_H__

#include <crypto/crypto_impl.h>
#include <tee_api_types.h>

/*
 * Crypto Library Hash driver allocation function prototype
 */
typedef TEE_Result (*hw_hash_allocate)(struct crypto_hash_ctx **ctx,
				       uint32_t algo);

/*
 * Register a hash processing driver in the crypto API
 *
 * @allocate - Callback for driver context allocation in the crypto layer
 */
static inline TEE_Result drvcrypt_register_hash(hw_hash_allocate allocate)
{
	return drvcrypt_register(CRYPTO_HASH, (void *)allocate);
}

#endif /* __DRVCRYPT_HASH_H__ */
