xref: /optee_os/core/include/tee/tee_cryp_utl.h (revision a97bc4a084f1292c3a2cfd0c4593183b2f873e67)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2014, Linaro Limited
4  */
5 
6 #ifndef TEE_CRYP_UTL_H
7 #define TEE_CRYP_UTL_H
8 
9 #include <tee_api_types.h>
10 
11 #if !defined(CFG_WITH_SOFTWARE_PRNG)
12 TEE_Result get_rng_array(void *buffer, int len);
13 #endif
14 
15 TEE_Result tee_hash_get_digest_size(uint32_t algo, size_t *size);
16 TEE_Result tee_hash_createdigest(uint32_t algo, const uint8_t *data,
17 				 size_t datalen, uint8_t *digest,
18 				 size_t digestlen);
19 TEE_Result tee_mac_get_digest_size(uint32_t algo, size_t *size);
20 TEE_Result tee_cipher_get_block_size(uint32_t algo, size_t *size);
21 TEE_Result tee_do_cipher_update(void *ctx, uint32_t algo,
22 				TEE_OperationMode mode, bool last_block,
23 				const uint8_t *data, size_t len, uint8_t *dst);
24 TEE_Result tee_aes_cbc_cts_update(void *cbc_ctx, void *ecb_ctx,
25 				  TEE_OperationMode mode, bool last_block,
26 				  const uint8_t *data, size_t len,
27 				  uint8_t *dst);
28 
29 TEE_Result tee_prng_add_entropy(const uint8_t *in, size_t len);
30 void plat_prng_add_jitter_entropy(void);
31 /*
32  * The _norpc version must not invoke Normal World, or infinite recursion
33  * may occur. As an exception however, using mutexes is allowed.
34  */
35 void plat_prng_add_jitter_entropy_norpc(void);
36 
37 #endif
38