Home | History | Annotate | Download | only in cryptocell
      1 /*
      2  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
      3  *
      4  * SPDX-License-Identifier: BSD-3-Clause
      5  */
      6 
      7 #ifndef _NVM__H
      8 #define _NVM__H
      9 
     10 #ifdef __cplusplus
     11 extern "C"
     12 {
     13 #endif
     14 
     15 #include "cc_crypto_boot_defs.h"
     16 #include "cc_pal_types.h"
     17 #include "cc_sec_defs.h"
     18 
     19 /*------------------------------------
     20     DEFINES
     21 -------------------------------------*/
     22 
     23 /**
     24  * @brief This function reads the LCS from the SRAM/NVM
     25  *
     26  * @param[in] hwBaseAddress  -  CryptoCell base address
     27  *
     28  * @param[in/out] lcs_ptr  - pointer to memory to store the LCS
     29  *
     30  * @return CCError_t - On success the value CC_OK is returned, and on failure   -a value from NVM_error.h
     31  */
     32 CCError_t NVM_GetLCS(unsigned long hwBaseAddress, uint32_t *lcs_ptr);
     33 
     34 /**
     35  * @brief The NVM_ReadHASHPubKey function is a NVM interface function -
     36  *        The function retrieves the HASH of the device Public key from the SRAM/NVM
     37  *
     38  * @param[in] hwBaseAddress -  CryptoCell base address
     39  *
     40  * @param[in] pubKeyIndex -  Index of HASH in the OTP
     41  *
     42  * @param[out] PubKeyHASH   -  the public key HASH.
     43  *
     44  * @param[in] hashSizeInWords -  hash size (valid values: 4W, 8W)
     45  *
     46  * @return CCError_t - On success the value CC_OK is returned, and on failure   -a value from NVM_error.h
     47  */
     48 
     49 CCError_t NVM_ReadHASHPubKey(unsigned long hwBaseAddress, CCSbPubKeyIndexType_t pubKeyIndex, CCHashResult_t PubKeyHASH, uint32_t hashSizeInWords);
     50 
     51 #ifdef __cplusplus
     52 }
     53 #endif
     54 
     55 #endif
     56