1 2 /* 3 * Copyright (c) 2022, Texas Instruments Incorporated 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * * Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 13 * * Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * * Neither the name of Texas Instruments Incorporated nor the names of 18 * its contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 25 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 26 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 27 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 28 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 29 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 30 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 31 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 #ifndef ti_drivers_CryptoKeyKeyStore_PSA_init__include 35 #define ti_drivers_CryptoKeyKeyStore_PSA_init__include 36 37 #include <ti/drivers/cryptoutils/cryptokey/CryptoKey.h> 38 #include <ti/drivers/cryptoutils/cryptokey/CryptoKeyKeyStore_PSA.h> 39 40 #ifdef __cplusplus 41 extern "C" { 42 #endif 43 44 /*! 45 * @brief Initializes a CryptoKey type 46 * 47 * @param [in] keyHandle Pointer to a CryptoKey which will be initialized 48 * to type CryptoKey_KEYSTORE 49 * and ready for use 50 * @param [in] keyID Key ID of the key in Key Store 51 * 52 * @param [in] keyLength Length of keying material in bytes 53 * @param [in] keyAttributes Pointer to the attributes for KeyStore key, 54 * use NULL if CryptoKey structure will not 55 * be used to generate keys 56 * 57 * @return Returns a status code from CryptoKey.h 58 */ 59 int_fast16_t KeyStore_PSA_initKey(CryptoKey *keyHandle, 60 KeyStore_PSA_KeyFileId keyID, 61 size_t keyLength, 62 void *keyAttributes); 63 64 /*! 65 * @brief Initializes a Blank CryptoKey type 66 * 67 * @param [in] keyHandle Pointer to a CryptoKey which will be initialized 68 * to type CryptoKey_BLANK_KEYSTORE 69 * and ready for use 70 * @param [in] keyID Key ID of the key in Key Store 71 * 72 * @param [in] keyLength Length of keying material in bytes 73 * @param [in] keyAttributes Pointer to the attributes for KeyStore key, 74 * use NULL if CryptoKey structure will not 75 * be used to generate keys 76 * 77 * @return Returns a status code from CryptoKey.h 78 */ 79 int_fast16_t KeyStore_PSA_initBlankKey(CryptoKey *keyHandle, 80 KeyStore_PSA_KeyFileId keyID, 81 size_t keyLength, 82 void *keyAttributes); 83 84 #ifdef __cplusplus 85 } 86 #endif 87 88 #endif /* ti_drivers_KeyStore_PSA_init__include */