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> 933790cc1SJens Wiklander #include <kernel/panic.h> 10b887bd8fSJens Wiklander #include <tee/tee_cryp_provider.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*/ 235*291e5450SJens Wiklander 236*291e5450SJens Wiklander #if !defined(CFG_CRYPTO_RSA) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 237*291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_rsa_keypair(struct rsa_keypair *s __unused, 238*291e5450SJens Wiklander size_t key_size_bits __unused) 239*291e5450SJens Wiklander { 240*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 241*291e5450SJens Wiklander } 242*291e5450SJens Wiklander 243*291e5450SJens Wiklander TEE_Result 244*291e5450SJens Wiklander crypto_acipher_alloc_rsa_public_key(struct rsa_public_key *s __unused, 245*291e5450SJens Wiklander size_t key_size_bits __unused) 246*291e5450SJens Wiklander { 247*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 248*291e5450SJens Wiklander } 249*291e5450SJens Wiklander 250*291e5450SJens Wiklander void crypto_acipher_free_rsa_public_key(struct rsa_public_key *s __unused) 251*291e5450SJens Wiklander { 252*291e5450SJens Wiklander } 253*291e5450SJens Wiklander 254*291e5450SJens Wiklander TEE_Result crypto_acipher_gen_rsa_key(struct rsa_keypair *key __unused, 255*291e5450SJens Wiklander size_t key_size __unused) 256*291e5450SJens Wiklander { 257*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 258*291e5450SJens Wiklander } 259*291e5450SJens Wiklander 260*291e5450SJens Wiklander TEE_Result crypto_acipher_rsanopad_decrypt(struct rsa_keypair *key __unused, 261*291e5450SJens Wiklander const uint8_t *src __unused, 262*291e5450SJens Wiklander size_t src_len __unused, 263*291e5450SJens Wiklander uint8_t *dst __unused, 264*291e5450SJens Wiklander size_t *dst_len __unused) 265*291e5450SJens Wiklander { 266*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 267*291e5450SJens Wiklander } 268*291e5450SJens Wiklander 269*291e5450SJens Wiklander TEE_Result crypto_acipher_rsanopad_encrypt(struct rsa_public_key *key __unused, 270*291e5450SJens Wiklander const uint8_t *src __unused, 271*291e5450SJens Wiklander size_t src_len __unused, 272*291e5450SJens Wiklander uint8_t *dst __unused, 273*291e5450SJens Wiklander size_t *dst_len __unused) 274*291e5450SJens Wiklander { 275*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 276*291e5450SJens Wiklander } 277*291e5450SJens Wiklander 278*291e5450SJens Wiklander TEE_Result crypto_acipher_rsaes_decrypt(uint32_t algo __unused, 279*291e5450SJens Wiklander struct rsa_keypair *key __unused, 280*291e5450SJens Wiklander const uint8_t *label __unused, 281*291e5450SJens Wiklander size_t label_len __unused, 282*291e5450SJens Wiklander const uint8_t *src __unused, 283*291e5450SJens Wiklander size_t src_len __unused, 284*291e5450SJens Wiklander uint8_t *dst __unused, 285*291e5450SJens Wiklander size_t *dst_len __unused) 286*291e5450SJens Wiklander { 287*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 288*291e5450SJens Wiklander } 289*291e5450SJens Wiklander 290*291e5450SJens Wiklander TEE_Result crypto_acipher_rsaes_encrypt(uint32_t algo __unused, 291*291e5450SJens Wiklander struct rsa_public_key *key __unused, 292*291e5450SJens Wiklander const uint8_t *label __unused, 293*291e5450SJens Wiklander size_t label_len __unused, 294*291e5450SJens Wiklander const uint8_t *src __unused, 295*291e5450SJens Wiklander size_t src_len __unused, 296*291e5450SJens Wiklander uint8_t *dst __unused, 297*291e5450SJens Wiklander size_t *dst_len __unused) 298*291e5450SJens Wiklander { 299*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 300*291e5450SJens Wiklander } 301*291e5450SJens Wiklander 302*291e5450SJens Wiklander TEE_Result crypto_acipher_rsassa_sign(uint32_t algo __unused, 303*291e5450SJens Wiklander struct rsa_keypair *key __unused, 304*291e5450SJens Wiklander int salt_len __unused, 305*291e5450SJens Wiklander const uint8_t *msg __unused, 306*291e5450SJens Wiklander size_t msg_len __unused, 307*291e5450SJens Wiklander uint8_t *sig __unused, 308*291e5450SJens Wiklander size_t *sig_len __unused) 309*291e5450SJens Wiklander { 310*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 311*291e5450SJens Wiklander } 312*291e5450SJens Wiklander 313*291e5450SJens Wiklander TEE_Result crypto_acipher_rsassa_verify(uint32_t algo __unused, 314*291e5450SJens Wiklander struct rsa_public_key *key __unused, 315*291e5450SJens Wiklander int salt_len __unused, 316*291e5450SJens Wiklander const uint8_t *msg __unused, 317*291e5450SJens Wiklander size_t msg_len __unused, 318*291e5450SJens Wiklander const uint8_t *sig __unused, 319*291e5450SJens Wiklander size_t sig_len __unused) 320*291e5450SJens Wiklander { 321*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 322*291e5450SJens Wiklander } 323*291e5450SJens Wiklander #endif /*!CFG_CRYPTO_RSA || !_CFG_CRYPTO_WITH_ACIPHER*/ 324*291e5450SJens Wiklander 325*291e5450SJens Wiklander #if !defined(CFG_CRYPTO_DSA) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 326*291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_dsa_keypair(struct dsa_keypair *s __unused, 327*291e5450SJens Wiklander size_t key_size_bits __unused) 328*291e5450SJens Wiklander { 329*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 330*291e5450SJens Wiklander } 331*291e5450SJens Wiklander 332*291e5450SJens Wiklander TEE_Result 333*291e5450SJens Wiklander crypto_acipher_alloc_dsa_public_key(struct dsa_public_key *s __unused, 334*291e5450SJens Wiklander size_t key_size_bits __unused) 335*291e5450SJens Wiklander { 336*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 337*291e5450SJens Wiklander } 338*291e5450SJens Wiklander 339*291e5450SJens Wiklander TEE_Result crypto_acipher_gen_dsa_key(struct dsa_keypair *key __unused, 340*291e5450SJens Wiklander size_t key_size __unused) 341*291e5450SJens Wiklander { 342*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 343*291e5450SJens Wiklander } 344*291e5450SJens Wiklander 345*291e5450SJens Wiklander TEE_Result crypto_acipher_dsa_sign(uint32_t algo __unused, 346*291e5450SJens Wiklander struct dsa_keypair *key __unused, 347*291e5450SJens Wiklander const uint8_t *msg __unused, 348*291e5450SJens Wiklander size_t msg_len __unused, 349*291e5450SJens Wiklander uint8_t *sig __unused, 350*291e5450SJens Wiklander size_t *sig_len __unused) 351*291e5450SJens Wiklander { 352*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 353*291e5450SJens Wiklander } 354*291e5450SJens Wiklander 355*291e5450SJens Wiklander TEE_Result crypto_acipher_dsa_verify(uint32_t algo __unused, 356*291e5450SJens Wiklander struct dsa_public_key *key __unused, 357*291e5450SJens Wiklander const uint8_t *msg __unused, 358*291e5450SJens Wiklander size_t msg_len __unused, 359*291e5450SJens Wiklander const uint8_t *sig __unused, 360*291e5450SJens Wiklander size_t sig_len __unused) 361*291e5450SJens Wiklander { 362*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 363*291e5450SJens Wiklander } 364*291e5450SJens Wiklander #endif /*!CFG_CRYPTO_DSA || !_CFG_CRYPTO_WITH_ACIPHER*/ 365*291e5450SJens Wiklander 366*291e5450SJens Wiklander #if !defined(CFG_CRYPTO_DH) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 367*291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_dh_keypair(struct dh_keypair *s __unused, 368*291e5450SJens Wiklander size_t key_size_bits __unused) 369*291e5450SJens Wiklander { 370*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 371*291e5450SJens Wiklander } 372*291e5450SJens Wiklander 373*291e5450SJens Wiklander TEE_Result crypto_acipher_gen_dh_key(struct dh_keypair *key __unused, 374*291e5450SJens Wiklander struct bignum *q __unused, 375*291e5450SJens Wiklander size_t xbits __unused) 376*291e5450SJens Wiklander { 377*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 378*291e5450SJens Wiklander } 379*291e5450SJens Wiklander 380*291e5450SJens Wiklander TEE_Result 381*291e5450SJens Wiklander crypto_acipher_dh_shared_secret(struct dh_keypair *private_key __unused, 382*291e5450SJens Wiklander struct bignum *public_key __unused, 383*291e5450SJens Wiklander struct bignum *secret __unused) 384*291e5450SJens Wiklander { 385*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 386*291e5450SJens Wiklander } 387*291e5450SJens Wiklander #endif /*!CFG_CRYPTO_DH || !_CFG_CRYPTO_WITH_ACIPHER*/ 388*291e5450SJens Wiklander 389*291e5450SJens Wiklander #if !defined(CFG_CRYPTO_ECC) || !defined(_CFG_CRYPTO_WITH_ACIPHER) 390*291e5450SJens Wiklander TEE_Result 391*291e5450SJens Wiklander crypto_acipher_alloc_ecc_public_key(struct ecc_public_key *s __unused, 392*291e5450SJens Wiklander size_t key_size_bits __unused) 393*291e5450SJens Wiklander { 394*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 395*291e5450SJens Wiklander } 396*291e5450SJens Wiklander 397*291e5450SJens Wiklander TEE_Result crypto_acipher_alloc_ecc_keypair(struct ecc_keypair *s __unused, 398*291e5450SJens Wiklander size_t key_size_bits __unused) 399*291e5450SJens Wiklander { 400*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 401*291e5450SJens Wiklander } 402*291e5450SJens Wiklander 403*291e5450SJens Wiklander void crypto_acipher_free_ecc_public_key(struct ecc_public_key *s __unused) 404*291e5450SJens Wiklander { 405*291e5450SJens Wiklander } 406*291e5450SJens Wiklander 407*291e5450SJens Wiklander TEE_Result crypto_acipher_gen_ecc_key(struct ecc_keypair *key __unused) 408*291e5450SJens Wiklander { 409*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 410*291e5450SJens Wiklander } 411*291e5450SJens Wiklander 412*291e5450SJens Wiklander TEE_Result crypto_acipher_ecc_sign(uint32_t algo __unused, 413*291e5450SJens Wiklander struct ecc_keypair *key __unused, 414*291e5450SJens Wiklander const uint8_t *msg __unused, 415*291e5450SJens Wiklander size_t msg_len __unused, 416*291e5450SJens Wiklander uint8_t *sig __unused, 417*291e5450SJens Wiklander size_t *sig_len __unused) 418*291e5450SJens Wiklander { 419*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 420*291e5450SJens Wiklander } 421*291e5450SJens Wiklander 422*291e5450SJens Wiklander TEE_Result crypto_acipher_ecc_verify(uint32_t algo __unused, 423*291e5450SJens Wiklander struct ecc_public_key *key __unused, 424*291e5450SJens Wiklander const uint8_t *msg __unused, 425*291e5450SJens Wiklander size_t msg_len __unused, 426*291e5450SJens Wiklander const uint8_t *sig __unused, 427*291e5450SJens Wiklander size_t sig_len __unused) 428*291e5450SJens Wiklander { 429*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 430*291e5450SJens Wiklander } 431*291e5450SJens Wiklander 432*291e5450SJens Wiklander TEE_Result 433*291e5450SJens Wiklander crypto_acipher_ecc_shared_secret(struct ecc_keypair *private_key __unused, 434*291e5450SJens Wiklander struct ecc_public_key *public_key __unused, 435*291e5450SJens Wiklander void *secret __unused, 436*291e5450SJens Wiklander unsigned long *secret_len __unused) 437*291e5450SJens Wiklander { 438*291e5450SJens Wiklander return TEE_ERROR_NOT_IMPLEMENTED; 439*291e5450SJens Wiklander } 440*291e5450SJens Wiklander #endif /*!CFG_CRYPTO_ECC || !_CFG_CRYPTO_WITH_ACIPHER*/ 441