1d538d293SClement Faure /* SPDX-License-Identifier: BSD-2-Clause */ 2d538d293SClement Faure /* 3d538d293SClement Faure * Copyright 2023 NXP 4d538d293SClement Faure */ 5d538d293SClement Faure #ifndef __DRIVERS_CAAM_EXTENSION_H__ 6d538d293SClement Faure #define __DRIVERS_CAAM_EXTENSION_H__ 7d538d293SClement Faure 8d538d293SClement Faure #include <tee_api_defines.h> 9d538d293SClement Faure #include <tee_api_types.h> 10d538d293SClement Faure #include <types_ext.h> 11d538d293SClement Faure 12d538d293SClement Faure #ifdef CFG_NXP_CAAM_MP_DRV 13d538d293SClement Faure /* 14d538d293SClement Faure * Export the MPMR content. 15d538d293SClement Faure * We assume that it is filled with message given in parameter. 16d538d293SClement Faure * It contains 32 registers of 8 bits (32 bytes). 17d538d293SClement Faure * 18d538d293SClement Faure * @mpmr [out] MPMR buffer read 19d538d293SClement Faure * @size [in/out] MPMR buffer size exported 20d538d293SClement Faure */ 21d538d293SClement Faure TEE_Result caam_mp_export_mpmr(uint8_t *mpmr, size_t *size); 22d538d293SClement Faure 23d538d293SClement Faure /* 24d538d293SClement Faure * Export the Manufacturing Protection Public Key. 25d538d293SClement Faure * 26d538d293SClement Faure * @pubkey [out] Public key read 27d538d293SClement Faure * @size [in/out] Public key size exported 28d538d293SClement Faure */ 29d538d293SClement Faure TEE_Result caam_mp_export_publickey(uint8_t *pubkey, size_t *size); 30d538d293SClement Faure 31d538d293SClement Faure /* 32d538d293SClement Faure * MPSign function. 33d538d293SClement Faure * This function takes the value in the MPMR if it exists 34d538d293SClement Faure * and concatenates any additional data (certificate). 35d538d293SClement Faure * The signature over the message is done with the private key. 36d538d293SClement Faure * 37d538d293SClement Faure * @data [in] Data to sign 38d538d293SClement Faure * @data_size [in] Data size to sign 39d538d293SClement Faure * @sig [out] Signature 40d538d293SClement Faure * @sig_size [in/out] Signature size 41d538d293SClement Faure */ 42d538d293SClement Faure TEE_Result caam_mp_sign(uint8_t *data, size_t *data_size, uint8_t *sig, 43d538d293SClement Faure size_t *sig_size); 44d538d293SClement Faure #endif /* CFG_NXP_CAAM_MP_DRV */ 45280dd882SClement Faure 46280dd882SClement Faure #ifdef CFG_NXP_CAAM_DEK_DRV 47280dd882SClement Faure /* 48280dd882SClement Faure * Data encryption key generation using CAAM Secure Memory. 49280dd882SClement Faure * 50280dd882SClement Faure * @blob_data [in/out] Blob data 51280dd882SClement Faure */ 52280dd882SClement Faure TEE_Result caam_dek_generate(const uint8_t *payload, size_t payload_size, 53280dd882SClement Faure uint8_t *dek, size_t dek_size); 54280dd882SClement Faure #endif /* CFG_NXP_CAAM_DEK_DRV */ 55*fbe66cf8SEtienne Carriere #endif /* __DRIVERS_CAAM_EXTENSION_H__ */ 56