xref: /optee_os/core/crypto/crypto.c (revision 8875ce46f413b5f5b4e6d73707672d8a3f51f92c)
1b887bd8fSJens Wiklander /*
2b887bd8fSJens Wiklander  * Copyright (c) 2017, Linaro Limited
3b887bd8fSJens Wiklander  * All rights reserved.
4b887bd8fSJens Wiklander  *
5b887bd8fSJens Wiklander  * SPDX-License-Identifier: BSD-2-Clause
6b887bd8fSJens Wiklander  */
7b887bd8fSJens Wiklander 
8b887bd8fSJens Wiklander #include <compiler.h>
9b887bd8fSJens Wiklander #include <tee/tee_cryp_provider.h>
10b887bd8fSJens Wiklander 
11b887bd8fSJens Wiklander #if !defined(_CFG_CRYPTO_WITH_HASH)
12b887bd8fSJens Wiklander TEE_Result crypto_hash_get_ctx_size(uint32_t algo __unused,
13b887bd8fSJens Wiklander 				    size_t *size __unused)
14b887bd8fSJens Wiklander {
15b887bd8fSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
16b887bd8fSJens Wiklander }
17b887bd8fSJens Wiklander 
18b887bd8fSJens Wiklander TEE_Result crypto_hash_init(void *ctx __unused, uint32_t algo __unused)
19b887bd8fSJens Wiklander {
20b887bd8fSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
21b887bd8fSJens Wiklander }
22b887bd8fSJens Wiklander TEE_Result crypto_hash_update(void *ctx __unused, uint32_t algo __unused,
23b887bd8fSJens Wiklander 			      const uint8_t *data __unused, size_t len __unused)
24b887bd8fSJens Wiklander {
25b887bd8fSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
26b887bd8fSJens Wiklander }
27b887bd8fSJens Wiklander TEE_Result crypto_hash_final(void *ctx __unused, uint32_t algo __unused,
28b887bd8fSJens Wiklander 			     uint8_t *digest __unused, size_t len __unused)
29b887bd8fSJens Wiklander {
30b887bd8fSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
31b887bd8fSJens Wiklander }
32b887bd8fSJens Wiklander #endif /*_CFG_CRYPTO_WITH_HASH*/
3382d91db1SJens Wiklander 
3482d91db1SJens Wiklander #if !defined(_CFG_CRYPTO_WITH_CIPHER)
3582d91db1SJens Wiklander TEE_Result crypto_cipher_get_ctx_size(uint32_t algo, size_t *size)
3682d91db1SJens Wiklander {
3782d91db1SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED
3882d91db1SJens Wiklander }
3982d91db1SJens Wiklander 
4082d91db1SJens Wiklander TEE_Result crypto_cipher_init(void *ctx __unused, uint32_t algo __unused,
4182d91db1SJens Wiklander 			      TEE_OperationMode mode __unused,
4282d91db1SJens Wiklander 			      const uint8_t *key1 __unused,
4382d91db1SJens Wiklander 			      size_t key1_len __unused,
4482d91db1SJens Wiklander 			      const uint8_t *key2 __unused,
4582d91db1SJens Wiklander 			      size_t key2_len __unused,
4682d91db1SJens Wiklander 			      const uint8_t *iv __unused,
4782d91db1SJens Wiklander 			      size_t iv_len __unused)
4882d91db1SJens Wiklander {
4982d91db1SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED
5082d91db1SJens Wiklander }
5182d91db1SJens Wiklander 
5282d91db1SJens Wiklander TEE_Result crypto_cipher_update(void *ctx __unused, uint32_t algo __unused,
5382d91db1SJens Wiklander 				TEE_OperationMode mode __unused,
5482d91db1SJens Wiklander 				bool last_block __unused,
5582d91db1SJens Wiklander 				const uint8_t *data __unused,
5682d91db1SJens Wiklander 				size_t len __unused, uint8_t *dst __unused)
5782d91db1SJens Wiklander {
5882d91db1SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED
5982d91db1SJens Wiklander }
6082d91db1SJens Wiklander 
6182d91db1SJens Wiklander void crypto_cipher_final(void *ctx __unused, uint32_t algo __unused)
6282d91db1SJens Wiklander {
6382d91db1SJens Wiklander }
6482d91db1SJens Wiklander 
6582d91db1SJens Wiklander TEE_Result crypto_cipher_get_block_size(uint32_t algo __unused,
6682d91db1SJens Wiklander 					size_t *size __unused)
6782d91db1SJens Wiklander {
6882d91db1SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED
6982d91db1SJens Wiklander }
7082d91db1SJens Wiklander #endif /*_CFG_CRYPTO_WITH_CIPHER*/
71e9eaba5cSJens Wiklander 
72e9eaba5cSJens Wiklander #if !defined(_CFG_CRYPTO_WITH_MAC)
73e9eaba5cSJens Wiklander TEE_Result crypto_mac_get_ctx_size(uint32_t algo __unused,
74e9eaba5cSJens Wiklander 				   size_t *size __unused)
75e9eaba5cSJens Wiklander {
76e9eaba5cSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
77e9eaba5cSJens Wiklander }
78e9eaba5cSJens Wiklander 
79e9eaba5cSJens Wiklander TEE_Result crypto_mac_init(void *ctx __unused, uint32_t algo __unused,
80e9eaba5cSJens Wiklander 			   const uint8_t *key __unused, size_t len __unused)
81e9eaba5cSJens Wiklander {
82e9eaba5cSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
83e9eaba5cSJens Wiklander }
84e9eaba5cSJens Wiklander 
85e9eaba5cSJens Wiklander TEE_Result crypto_mac_update(void *ctx __unused, uint32_t algo __unused,
86e9eaba5cSJens Wiklander 			     const uint8_t *data __unused, size_t len __unused)
87e9eaba5cSJens Wiklander {
88e9eaba5cSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
89e9eaba5cSJens Wiklander }
90e9eaba5cSJens Wiklander 
91e9eaba5cSJens Wiklander TEE_Result crypto_mac_final(void *ctx __unused, uint32_t algo __unused,
92e9eaba5cSJens Wiklander 			    uint8_t *digest __unused,
93e9eaba5cSJens Wiklander 			    size_t digest_len __unused)
94e9eaba5cSJens Wiklander {
95e9eaba5cSJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
96e9eaba5cSJens Wiklander }
97e9eaba5cSJens Wiklander #endif /*_CFG_CRYPTO_WITH_MAC*/
98e9eaba5cSJens Wiklander 
99*8875ce46SJens Wiklander #if !defined(_CFG_CRYPTO_WITH_AUTHENC)
100*8875ce46SJens Wiklander TEE_Result crypto_authenc_get_ctx_size(uint32_t algo __unused,
101*8875ce46SJens Wiklander 				       size_t *size __unused)
102*8875ce46SJens Wiklander {
103*8875ce46SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
104*8875ce46SJens Wiklander }
105*8875ce46SJens Wiklander 
106*8875ce46SJens Wiklander TEE_Result crypto_authenc_init(void *ctx __unused, uint32_t algo __unused,
107*8875ce46SJens Wiklander 			       TEE_OperationMode mode __unused,
108*8875ce46SJens Wiklander 			       const uint8_t *key __unused,
109*8875ce46SJens Wiklander 			       size_t key_len __unused,
110*8875ce46SJens Wiklander 			       const uint8_t *nonce __unused,
111*8875ce46SJens Wiklander 			       size_t nonce_len __unused,
112*8875ce46SJens Wiklander 			       size_t tag_len __unused,
113*8875ce46SJens Wiklander 			       size_t aad_len __unused,
114*8875ce46SJens Wiklander 			       size_t payload_len __unused)
115*8875ce46SJens Wiklander {
116*8875ce46SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
117*8875ce46SJens Wiklander }
118*8875ce46SJens Wiklander 
119*8875ce46SJens Wiklander TEE_Result crypto_authenc_update_aad(void *ctx __unused, uint32_t algo __unused,
120*8875ce46SJens Wiklander 				     TEE_OperationMode mode __unused,
121*8875ce46SJens Wiklander 				     const uint8_t *data __unused,
122*8875ce46SJens Wiklander 				     size_t len __unused)
123*8875ce46SJens Wiklander {
124*8875ce46SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
125*8875ce46SJens Wiklander }
126*8875ce46SJens Wiklander 
127*8875ce46SJens Wiklander TEE_Result crypto_authenc_update_payload(void *ctx __unused,
128*8875ce46SJens Wiklander 					 uint32_t algo __unused,
129*8875ce46SJens Wiklander 					 TEE_OperationMode mode __unused,
130*8875ce46SJens Wiklander 					 const uint8_t *src_data __unused,
131*8875ce46SJens Wiklander 					 size_t src_len __unused,
132*8875ce46SJens Wiklander 					 uint8_t *dst_data __unused,
133*8875ce46SJens Wiklander 					 size_t *dst_len __unused)
134*8875ce46SJens Wiklander {
135*8875ce46SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
136*8875ce46SJens Wiklander }
137*8875ce46SJens Wiklander 
138*8875ce46SJens Wiklander TEE_Result crypto_authenc_enc_final(void *ctx __unused, uint32_t algo __unused,
139*8875ce46SJens Wiklander 				    const uint8_t *src_data __unused,
140*8875ce46SJens Wiklander 				    size_t src_len __unused,
141*8875ce46SJens Wiklander 				    uint8_t *dst_data __unused,
142*8875ce46SJens Wiklander 				    size_t *dst_len __unused,
143*8875ce46SJens Wiklander 				    uint8_t *dst_tag __unused,
144*8875ce46SJens Wiklander 				    size_t *dst_tag_len __unused)
145*8875ce46SJens Wiklander {
146*8875ce46SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
147*8875ce46SJens Wiklander }
148*8875ce46SJens Wiklander 
149*8875ce46SJens Wiklander TEE_Result crypto_authenc_dec_final(void *ctx __unused, uint32_t algo __unused,
150*8875ce46SJens Wiklander 				    const uint8_t *src_data __unused,
151*8875ce46SJens Wiklander 				    size_t src_len __unused,
152*8875ce46SJens Wiklander 				    uint8_t *dst_data __unused,
153*8875ce46SJens Wiklander 				    size_t *dst_len __unused,
154*8875ce46SJens Wiklander 				    const uint8_t *tag __unused,
155*8875ce46SJens Wiklander 				    size_t tag_len __unused)
156*8875ce46SJens Wiklander {
157*8875ce46SJens Wiklander 	return TEE_ERROR_NOT_IMPLEMENTED;
158*8875ce46SJens Wiklander }
159*8875ce46SJens Wiklander 
160*8875ce46SJens Wiklander void crypto_authenc_final(void *ctx __unused, uint32_t algo __unused)
161*8875ce46SJens Wiklander {
162*8875ce46SJens Wiklander }
163*8875ce46SJens Wiklander #endif /*_CFG_CRYPTO_WITH_AUTHENC*/
164