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> 9*e1770e71SJens Wiklander #include <crypto/crypto.h> 1033790cc1SJens Wiklander #include <kernel/panic.h> 11b887bd8fSJens Wiklander 12b887bd8fSJens Wiklander #if !defined(_CFG_CRYPTO_WITH_HASH) 13b887bd8fSJens Wiklander TEE_Result crypto_hash_get_ctx_size(uint32_t algo __unused, 14b887bd8fSJens Wiklander size_t *size __unused) 15b887bd8fSJens Wiklander { 16b887bd8fSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 17b887bd8fSJens Wiklander } 18b887bd8fSJens Wiklander 19b887bd8fSJens Wiklander TEE_Result crypto_hash_init(void *ctx __unused, uint32_t algo __unused) 20b887bd8fSJens Wiklander { 21b887bd8fSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 22b887bd8fSJens Wiklander } 23b887bd8fSJens Wiklander TEE_Result crypto_hash_update(void *ctx __unused, uint32_t algo __unused, 24b887bd8fSJens Wiklander const uint8_t *data __unused, size_t len __unused) 25b887bd8fSJens Wiklander { 26b887bd8fSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 27b887bd8fSJens Wiklander } 28b887bd8fSJens Wiklander TEE_Result crypto_hash_final(void *ctx __unused, uint32_t algo __unused, 29b887bd8fSJens Wiklander uint8_t *digest __unused, size_t len __unused) 30b887bd8fSJens Wiklander { 31b887bd8fSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 32b887bd8fSJens Wiklander } 33b887bd8fSJens Wiklander #endif /*_CFG_CRYPTO_WITH_HASH*/ 3482d91db1SJens Wiklander 3582d91db1SJens Wiklander #if !defined(_CFG_CRYPTO_WITH_CIPHER) 3682d91db1SJens Wiklander TEE_Result crypto_cipher_get_ctx_size(uint32_t algo, size_t *size) 3782d91db1SJens Wiklander { 3882d91db1SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED 3982d91db1SJens Wiklander } 4082d91db1SJens Wiklander 4182d91db1SJens Wiklander TEE_Result crypto_cipher_init(void *ctx __unused, uint32_t algo __unused, 4282d91db1SJens Wiklander TEE_OperationMode mode __unused, 4382d91db1SJens Wiklander const uint8_t *key1 __unused, 4482d91db1SJens Wiklander size_t key1_len __unused, 4582d91db1SJens Wiklander const uint8_t *key2 __unused, 4682d91db1SJens Wiklander size_t key2_len __unused, 4782d91db1SJens Wiklander const uint8_t *iv __unused, 4882d91db1SJens Wiklander size_t iv_len __unused) 4982d91db1SJens Wiklander { 5082d91db1SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED 5182d91db1SJens Wiklander } 5282d91db1SJens Wiklander 5382d91db1SJens Wiklander TEE_Result crypto_cipher_update(void *ctx __unused, uint32_t algo __unused, 5482d91db1SJens Wiklander TEE_OperationMode mode __unused, 5582d91db1SJens Wiklander bool last_block __unused, 5682d91db1SJens Wiklander const uint8_t *data __unused, 5782d91db1SJens Wiklander size_t len __unused, uint8_t *dst __unused) 5882d91db1SJens Wiklander { 5982d91db1SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED 6082d91db1SJens Wiklander } 6182d91db1SJens Wiklander 6282d91db1SJens Wiklander void crypto_cipher_final(void *ctx __unused, uint32_t algo __unused) 6382d91db1SJens Wiklander { 6482d91db1SJens Wiklander } 6582d91db1SJens Wiklander 6682d91db1SJens Wiklander TEE_Result crypto_cipher_get_block_size(uint32_t algo __unused, 6782d91db1SJens Wiklander size_t *size __unused) 6882d91db1SJens Wiklander { 6982d91db1SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED 7082d91db1SJens Wiklander } 7182d91db1SJens Wiklander #endif /*_CFG_CRYPTO_WITH_CIPHER*/ 72e9eaba5cSJens Wiklander 73e9eaba5cSJens Wiklander #if !defined(_CFG_CRYPTO_WITH_MAC) 74e9eaba5cSJens Wiklander TEE_Result crypto_mac_get_ctx_size(uint32_t algo __unused, 75e9eaba5cSJens Wiklander size_t *size __unused) 76e9eaba5cSJens Wiklander { 77e9eaba5cSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 78e9eaba5cSJens Wiklander } 79e9eaba5cSJens Wiklander 80e9eaba5cSJens Wiklander TEE_Result crypto_mac_init(void *ctx __unused, uint32_t algo __unused, 81e9eaba5cSJens Wiklander const uint8_t *key __unused, size_t len __unused) 82e9eaba5cSJens Wiklander { 83e9eaba5cSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 84e9eaba5cSJens Wiklander } 85e9eaba5cSJens Wiklander 86e9eaba5cSJens Wiklander TEE_Result crypto_mac_update(void *ctx __unused, uint32_t algo __unused, 87e9eaba5cSJens Wiklander const uint8_t *data __unused, size_t len __unused) 88e9eaba5cSJens Wiklander { 89e9eaba5cSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 90e9eaba5cSJens Wiklander } 91e9eaba5cSJens Wiklander 92e9eaba5cSJens Wiklander TEE_Result crypto_mac_final(void *ctx __unused, uint32_t algo __unused, 93e9eaba5cSJens Wiklander uint8_t *digest __unused, 94e9eaba5cSJens Wiklander size_t digest_len __unused) 95e9eaba5cSJens Wiklander { 96e9eaba5cSJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 97e9eaba5cSJens Wiklander } 98e9eaba5cSJens Wiklander #endif /*_CFG_CRYPTO_WITH_MAC*/ 99e9eaba5cSJens Wiklander 1008875ce46SJens Wiklander #if !defined(_CFG_CRYPTO_WITH_AUTHENC) 1018875ce46SJens Wiklander TEE_Result crypto_authenc_get_ctx_size(uint32_t algo __unused, 1028875ce46SJens Wiklander size_t *size __unused) 1038875ce46SJens Wiklander { 1048875ce46SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 1058875ce46SJens Wiklander } 1068875ce46SJens Wiklander 1078875ce46SJens Wiklander TEE_Result crypto_authenc_init(void *ctx __unused, uint32_t algo __unused, 1088875ce46SJens Wiklander TEE_OperationMode mode __unused, 1098875ce46SJens Wiklander const uint8_t *key __unused, 1108875ce46SJens Wiklander size_t key_len __unused, 1118875ce46SJens Wiklander const uint8_t *nonce __unused, 1128875ce46SJens Wiklander size_t nonce_len __unused, 1138875ce46SJens Wiklander size_t tag_len __unused, 1148875ce46SJens Wiklander size_t aad_len __unused, 1158875ce46SJens Wiklander size_t payload_len __unused) 1168875ce46SJens Wiklander { 1178875ce46SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 1188875ce46SJens Wiklander } 1198875ce46SJens Wiklander 1208875ce46SJens Wiklander TEE_Result crypto_authenc_update_aad(void *ctx __unused, uint32_t algo __unused, 1218875ce46SJens Wiklander TEE_OperationMode mode __unused, 1228875ce46SJens Wiklander const uint8_t *data __unused, 1238875ce46SJens Wiklander size_t len __unused) 1248875ce46SJens Wiklander { 1258875ce46SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 1268875ce46SJens Wiklander } 1278875ce46SJens Wiklander 1288875ce46SJens Wiklander TEE_Result crypto_authenc_update_payload(void *ctx __unused, 1298875ce46SJens Wiklander uint32_t algo __unused, 1308875ce46SJens Wiklander TEE_OperationMode mode __unused, 1318875ce46SJens Wiklander const uint8_t *src_data __unused, 1328875ce46SJens Wiklander size_t src_len __unused, 1338875ce46SJens Wiklander uint8_t *dst_data __unused, 1348875ce46SJens Wiklander size_t *dst_len __unused) 1358875ce46SJens Wiklander { 1368875ce46SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 1378875ce46SJens Wiklander } 1388875ce46SJens Wiklander 1398875ce46SJens Wiklander TEE_Result crypto_authenc_enc_final(void *ctx __unused, uint32_t algo __unused, 1408875ce46SJens Wiklander const uint8_t *src_data __unused, 1418875ce46SJens Wiklander size_t src_len __unused, 1428875ce46SJens Wiklander uint8_t *dst_data __unused, 1438875ce46SJens Wiklander size_t *dst_len __unused, 1448875ce46SJens Wiklander uint8_t *dst_tag __unused, 1458875ce46SJens Wiklander size_t *dst_tag_len __unused) 1468875ce46SJens Wiklander { 1478875ce46SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 1488875ce46SJens Wiklander } 1498875ce46SJens Wiklander 1508875ce46SJens Wiklander TEE_Result crypto_authenc_dec_final(void *ctx __unused, uint32_t algo __unused, 1518875ce46SJens Wiklander const uint8_t *src_data __unused, 1528875ce46SJens Wiklander size_t src_len __unused, 1538875ce46SJens Wiklander uint8_t *dst_data __unused, 1548875ce46SJens Wiklander size_t *dst_len __unused, 1558875ce46SJens Wiklander const uint8_t *tag __unused, 1568875ce46SJens Wiklander size_t tag_len __unused) 1578875ce46SJens Wiklander { 1588875ce46SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 1598875ce46SJens Wiklander } 1608875ce46SJens Wiklander 1618875ce46SJens Wiklander void crypto_authenc_final(void *ctx __unused, uint32_t algo __unused) 1628875ce46SJens Wiklander { 1638875ce46SJens Wiklander } 1648875ce46SJens Wiklander #endif /*_CFG_CRYPTO_WITH_AUTHENC*/ 16533790cc1SJens Wiklander 16633790cc1SJens Wiklander #if !defined(_CFG_CRYPTO_WITH_ACIPHER) 16733790cc1SJens Wiklander struct bignum *crypto_bignum_allocate(size_t size_bits __unused) 16833790cc1SJens Wiklander { 16933790cc1SJens Wiklander return NULL; 17033790cc1SJens Wiklander } 17133790cc1SJens Wiklander 17233790cc1SJens Wiklander TEE_Result crypto_bignum_bin2bn(const uint8_t *from __unused, 17333790cc1SJens Wiklander size_t fromsize __unused, 17433790cc1SJens Wiklander struct bignum *to __unused) 17533790cc1SJens Wiklander { 17633790cc1SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 17733790cc1SJens Wiklander } 17833790cc1SJens Wiklander 17933790cc1SJens Wiklander size_t crypto_bignum_num_bytes(struct bignum *a __unused) 18033790cc1SJens Wiklander { 18133790cc1SJens Wiklander return 0; 18233790cc1SJens Wiklander } 18333790cc1SJens Wiklander 18433790cc1SJens Wiklander size_t crypto_bignum_num_bits(struct bignum *a __unused) 18533790cc1SJens Wiklander { 18633790cc1SJens Wiklander return 0; 18733790cc1SJens Wiklander } 18833790cc1SJens Wiklander 18933790cc1SJens Wiklander /* 19033790cc1SJens Wiklander * crypto_bignum_allocate() and crypto_bignum_bin2bn() failing should be 19133790cc1SJens Wiklander * enough to guarantee that the functions calling this function aren't 19233790cc1SJens Wiklander * called, but just in case add a panic() here to avoid unexpected 19333790cc1SJens Wiklander * behavoir. 19433790cc1SJens Wiklander */ 19533790cc1SJens Wiklander static void bignum_cant_happen(void) 19633790cc1SJens Wiklander { 19733790cc1SJens Wiklander volatile bool b = true; 19833790cc1SJens Wiklander 19933790cc1SJens Wiklander /* Avoid warning about function does not return */ 20033790cc1SJens Wiklander if (b) 20133790cc1SJens Wiklander panic(); 20233790cc1SJens Wiklander } 20333790cc1SJens Wiklander 20433790cc1SJens Wiklander void crypto_bignum_bn2bin(const struct bignum *from __unused, 20533790cc1SJens Wiklander uint8_t *to __unused) 20633790cc1SJens Wiklander { 20733790cc1SJens Wiklander bignum_cant_happen(); 20833790cc1SJens Wiklander } 20933790cc1SJens Wiklander 21033790cc1SJens Wiklander void crypto_bignum_copy(struct bignum *to __unused, 21133790cc1SJens Wiklander const struct bignum *from __unused) 21233790cc1SJens Wiklander { 21333790cc1SJens Wiklander bignum_cant_happen(); 21433790cc1SJens Wiklander } 21533790cc1SJens Wiklander 21633790cc1SJens Wiklander void crypto_bignum_free(struct bignum *a) 21733790cc1SJens Wiklander { 21833790cc1SJens Wiklander if (a) 21933790cc1SJens Wiklander panic(); 22033790cc1SJens Wiklander } 22133790cc1SJens Wiklander 22233790cc1SJens Wiklander void crypto_bignum_clear(struct bignum *a __unused) 22333790cc1SJens Wiklander { 22433790cc1SJens Wiklander bignum_cant_happen(); 22533790cc1SJens Wiklander } 22633790cc1SJens Wiklander 22733790cc1SJens Wiklander /* return -1 if a<b, 0 if a==b, +1 if a>b */ 22833790cc1SJens Wiklander int32_t crypto_bignum_compare(struct bignum *a __unused, 22933790cc1SJens Wiklander struct bignum *b __unused) 23033790cc1SJens Wiklander { 23133790cc1SJens Wiklander bignum_cant_happen(); 23233790cc1SJens Wiklander return -1; 23333790cc1SJens Wiklander } 23433790cc1SJens Wiklander #endif /*!_CFG_CRYPTO_WITH_ACIPHER*/ 235291e5450SJens Wiklander 236291e5450SJens Wiklander #if !defined(CFG_CRYPTO_RSA) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 237291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_rsa_keypair(struct rsa_keypair *s __unused, 238291e5450SJens Wiklander size_t key_size_bits __unused) 239291e5450SJens Wiklander { 240291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 241291e5450SJens Wiklander } 242291e5450SJens Wiklander 243291e5450SJens Wiklander TEE_Result 244291e5450SJens Wiklander crypto_acipher_alloc_rsa_public_key(struct rsa_public_key *s __unused, 245291e5450SJens Wiklander size_t key_size_bits __unused) 246291e5450SJens Wiklander { 247291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 248291e5450SJens Wiklander } 249291e5450SJens Wiklander 250291e5450SJens Wiklander void crypto_acipher_free_rsa_public_key(struct rsa_public_key *s __unused) 251291e5450SJens Wiklander { 252291e5450SJens Wiklander } 253291e5450SJens Wiklander 254291e5450SJens Wiklander TEE_Result crypto_acipher_gen_rsa_key(struct rsa_keypair *key __unused, 255291e5450SJens Wiklander size_t key_size __unused) 256291e5450SJens Wiklander { 257291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 258291e5450SJens Wiklander } 259291e5450SJens Wiklander 260291e5450SJens Wiklander TEE_Result crypto_acipher_rsanopad_decrypt(struct rsa_keypair *key __unused, 261291e5450SJens Wiklander const uint8_t *src __unused, 262291e5450SJens Wiklander size_t src_len __unused, 263291e5450SJens Wiklander uint8_t *dst __unused, 264291e5450SJens Wiklander size_t *dst_len __unused) 265291e5450SJens Wiklander { 266291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 267291e5450SJens Wiklander } 268291e5450SJens Wiklander 269291e5450SJens Wiklander TEE_Result crypto_acipher_rsanopad_encrypt(struct rsa_public_key *key __unused, 270291e5450SJens Wiklander const uint8_t *src __unused, 271291e5450SJens Wiklander size_t src_len __unused, 272291e5450SJens Wiklander uint8_t *dst __unused, 273291e5450SJens Wiklander size_t *dst_len __unused) 274291e5450SJens Wiklander { 275291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 276291e5450SJens Wiklander } 277291e5450SJens Wiklander 278291e5450SJens Wiklander TEE_Result crypto_acipher_rsaes_decrypt(uint32_t algo __unused, 279291e5450SJens Wiklander struct rsa_keypair *key __unused, 280291e5450SJens Wiklander const uint8_t *label __unused, 281291e5450SJens Wiklander size_t label_len __unused, 282291e5450SJens Wiklander const uint8_t *src __unused, 283291e5450SJens Wiklander size_t src_len __unused, 284291e5450SJens Wiklander uint8_t *dst __unused, 285291e5450SJens Wiklander size_t *dst_len __unused) 286291e5450SJens Wiklander { 287291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 288291e5450SJens Wiklander } 289291e5450SJens Wiklander 290291e5450SJens Wiklander TEE_Result crypto_acipher_rsaes_encrypt(uint32_t algo __unused, 291291e5450SJens Wiklander struct rsa_public_key *key __unused, 292291e5450SJens Wiklander const uint8_t *label __unused, 293291e5450SJens Wiklander size_t label_len __unused, 294291e5450SJens Wiklander const uint8_t *src __unused, 295291e5450SJens Wiklander size_t src_len __unused, 296291e5450SJens Wiklander uint8_t *dst __unused, 297291e5450SJens Wiklander size_t *dst_len __unused) 298291e5450SJens Wiklander { 299291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 300291e5450SJens Wiklander } 301291e5450SJens Wiklander 302291e5450SJens Wiklander TEE_Result crypto_acipher_rsassa_sign(uint32_t algo __unused, 303291e5450SJens Wiklander struct rsa_keypair *key __unused, 304291e5450SJens Wiklander int salt_len __unused, 305291e5450SJens Wiklander const uint8_t *msg __unused, 306291e5450SJens Wiklander size_t msg_len __unused, 307291e5450SJens Wiklander uint8_t *sig __unused, 308291e5450SJens Wiklander size_t *sig_len __unused) 309291e5450SJens Wiklander { 310291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 311291e5450SJens Wiklander } 312291e5450SJens Wiklander 313291e5450SJens Wiklander TEE_Result crypto_acipher_rsassa_verify(uint32_t algo __unused, 314291e5450SJens Wiklander struct rsa_public_key *key __unused, 315291e5450SJens Wiklander int salt_len __unused, 316291e5450SJens Wiklander const uint8_t *msg __unused, 317291e5450SJens Wiklander size_t msg_len __unused, 318291e5450SJens Wiklander const uint8_t *sig __unused, 319291e5450SJens Wiklander size_t sig_len __unused) 320291e5450SJens Wiklander { 321291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 322291e5450SJens Wiklander } 323291e5450SJens Wiklander #endif /*!CFG_CRYPTO_RSA || !_CFG_CRYPTO_WITH_ACIPHER*/ 324291e5450SJens Wiklander 325291e5450SJens Wiklander #if !defined(CFG_CRYPTO_DSA) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 326291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_dsa_keypair(struct dsa_keypair *s __unused, 327291e5450SJens Wiklander size_t key_size_bits __unused) 328291e5450SJens Wiklander { 329291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 330291e5450SJens Wiklander } 331291e5450SJens Wiklander 332291e5450SJens Wiklander TEE_Result 333291e5450SJens Wiklander crypto_acipher_alloc_dsa_public_key(struct dsa_public_key *s __unused, 334291e5450SJens Wiklander size_t key_size_bits __unused) 335291e5450SJens Wiklander { 336291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 337291e5450SJens Wiklander } 338291e5450SJens Wiklander 339291e5450SJens Wiklander TEE_Result crypto_acipher_gen_dsa_key(struct dsa_keypair *key __unused, 340291e5450SJens Wiklander size_t key_size __unused) 341291e5450SJens Wiklander { 342291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 343291e5450SJens Wiklander } 344291e5450SJens Wiklander 345291e5450SJens Wiklander TEE_Result crypto_acipher_dsa_sign(uint32_t algo __unused, 346291e5450SJens Wiklander struct dsa_keypair *key __unused, 347291e5450SJens Wiklander const uint8_t *msg __unused, 348291e5450SJens Wiklander size_t msg_len __unused, 349291e5450SJens Wiklander uint8_t *sig __unused, 350291e5450SJens Wiklander size_t *sig_len __unused) 351291e5450SJens Wiklander { 352291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 353291e5450SJens Wiklander } 354291e5450SJens Wiklander 355291e5450SJens Wiklander TEE_Result crypto_acipher_dsa_verify(uint32_t algo __unused, 356291e5450SJens Wiklander struct dsa_public_key *key __unused, 357291e5450SJens Wiklander const uint8_t *msg __unused, 358291e5450SJens Wiklander size_t msg_len __unused, 359291e5450SJens Wiklander const uint8_t *sig __unused, 360291e5450SJens Wiklander size_t sig_len __unused) 361291e5450SJens Wiklander { 362291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 363291e5450SJens Wiklander } 364291e5450SJens Wiklander #endif /*!CFG_CRYPTO_DSA || !_CFG_CRYPTO_WITH_ACIPHER*/ 365291e5450SJens Wiklander 366291e5450SJens Wiklander #if !defined(CFG_CRYPTO_DH) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 367291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_dh_keypair(struct dh_keypair *s __unused, 368291e5450SJens Wiklander size_t key_size_bits __unused) 369291e5450SJens Wiklander { 370291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 371291e5450SJens Wiklander } 372291e5450SJens Wiklander 373291e5450SJens Wiklander TEE_Result crypto_acipher_gen_dh_key(struct dh_keypair *key __unused, 374291e5450SJens Wiklander struct bignum *q __unused, 375291e5450SJens Wiklander size_t xbits __unused) 376291e5450SJens Wiklander { 377291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 378291e5450SJens Wiklander } 379291e5450SJens Wiklander 380291e5450SJens Wiklander TEE_Result 381291e5450SJens Wiklander crypto_acipher_dh_shared_secret(struct dh_keypair *private_key __unused, 382291e5450SJens Wiklander struct bignum *public_key __unused, 383291e5450SJens Wiklander struct bignum *secret __unused) 384291e5450SJens Wiklander { 385291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 386291e5450SJens Wiklander } 387291e5450SJens Wiklander #endif /*!CFG_CRYPTO_DH || !_CFG_CRYPTO_WITH_ACIPHER*/ 388291e5450SJens Wiklander 389291e5450SJens Wiklander #if !defined(CFG_CRYPTO_ECC) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 390291e5450SJens Wiklander TEE_Result 391291e5450SJens Wiklander crypto_acipher_alloc_ecc_public_key(struct ecc_public_key *s __unused, 392291e5450SJens Wiklander size_t key_size_bits __unused) 393291e5450SJens Wiklander { 394291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 395291e5450SJens Wiklander } 396291e5450SJens Wiklander 397291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_ecc_keypair(struct ecc_keypair *s __unused, 398291e5450SJens Wiklander size_t key_size_bits __unused) 399291e5450SJens Wiklander { 400291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 401291e5450SJens Wiklander } 402291e5450SJens Wiklander 403291e5450SJens Wiklander void crypto_acipher_free_ecc_public_key(struct ecc_public_key *s __unused) 404291e5450SJens Wiklander { 405291e5450SJens Wiklander } 406291e5450SJens Wiklander 407291e5450SJens Wiklander TEE_Result crypto_acipher_gen_ecc_key(struct ecc_keypair *key __unused) 408291e5450SJens Wiklander { 409291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 410291e5450SJens Wiklander } 411291e5450SJens Wiklander 412291e5450SJens Wiklander TEE_Result crypto_acipher_ecc_sign(uint32_t algo __unused, 413291e5450SJens Wiklander struct ecc_keypair *key __unused, 414291e5450SJens Wiklander const uint8_t *msg __unused, 415291e5450SJens Wiklander size_t msg_len __unused, 416291e5450SJens Wiklander uint8_t *sig __unused, 417291e5450SJens Wiklander size_t *sig_len __unused) 418291e5450SJens Wiklander { 419291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 420291e5450SJens Wiklander } 421291e5450SJens Wiklander 422291e5450SJens Wiklander TEE_Result crypto_acipher_ecc_verify(uint32_t algo __unused, 423291e5450SJens Wiklander struct ecc_public_key *key __unused, 424291e5450SJens Wiklander const uint8_t *msg __unused, 425291e5450SJens Wiklander size_t msg_len __unused, 426291e5450SJens Wiklander const uint8_t *sig __unused, 427291e5450SJens Wiklander size_t sig_len __unused) 428291e5450SJens Wiklander { 429291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 430291e5450SJens Wiklander } 431291e5450SJens Wiklander 432291e5450SJens Wiklander TEE_Result 433291e5450SJens Wiklander crypto_acipher_ecc_shared_secret(struct ecc_keypair *private_key __unused, 434291e5450SJens Wiklander struct ecc_public_key *public_key __unused, 435291e5450SJens Wiklander void *secret __unused, 436291e5450SJens Wiklander unsigned long *secret_len __unused) 437291e5450SJens Wiklander { 438291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 439291e5450SJens Wiklander } 440291e5450SJens Wiklander #endif /*!CFG_CRYPTO_ECC || !_CFG_CRYPTO_WITH_ACIPHER*/ 441