| /* |
| * |
| * Copyright 2019 NXP |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #if SSS_HAVE_SE05X_VER_GTE_06_00 |
| /* OK */ |
| #else |
| #error "Only with SE051 based build" |
| #endif |
| |
| /** Se05x_API_AeadOneShot |
| * |
| * Authenticated encryption or decryption with associated data in one shot mode. |
| * |
| * The key object must be either an AES key or DES key. |
| * |
| * The AEADOneShot command returns the computed GMAC (when P2 equals |
| * P2_ENCRYPT_ONESHOT) or indicates whether the GMAC is correct (when P2 equals |
| * P2_DECRYPT_ONESHOT). The length of the GMAC is always 16 bytes when P2 equals |
| * P2_ENCRYPT_ONESHOT. |
| * |
| * When P2 equals P2_DECRYPT_ONESHOT: |
| * |
| * * the minimum tag length to pass is 4 bytes. |
| * |
| * * when the GMAC tag is not correct, only the result will be returned, no output data will be present. |
| * |
| * Note: on applet v4.4.0, the maximum lengths are not yet enforced and might |
| * differ from the values listed in the C-APDU. |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +=========+===========================+================================================+ |
| * | CLA | 0x80 | | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | P1 | P1_AEAD or P1_AEAD_INT_IV | See :cpp:type:`SE05x_P1_t` | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | P2 | P2_ENCRYPT_ONESHOT or | See :cpp:type:`SE05x_P2_t` | |
| * | | P2_DECRYPT_ONESHOT | | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Lc | #(Payload) | | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_1] | 4-byte identifier of the AESKey Secure object. | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | | TLV[TAG_2] | 1-byte AEADMode | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | | TLV[TAG_3] | Byte array containing input data. Maximum | |
| * | | | length = 256 bytes. [Optional] | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | | TLV[TAG_4] | Byte array containing Additional Authenticated | |
| * | | | Data. Maximum length = 64 bytes. [Optional] | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | | TLV[TAG_5] | Byte array containing an initialization vector | |
| * | | | (if P1 equals P1_AEAD) or 2-byte value | |
| * | | | containing the initialization vector length | |
| * | | | (if P1 equals P1_AEAD_SP800_108). Maximum IV | |
| * | | | length = 60 bytes. [Optional] | |
| * | | | [Conditional: required when P1 equals | |
| * | | | P1_AEAD_INT_IV] | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | | TLV[TAG_6] | Byte array containing the GMAC tag to verify. | |
| * | | | [Conditional: when P2 equals | |
| * | | | P2_DECRYPT_ONESHOT] | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Le | 0x00 | Expecting return data. | |
| * +---------+---------------------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * @rst |
| * +------------+----------------------------------------------+ |
| * | Value | Description | |
| * +============+==============================================+ |
| * | TLV[TAG_1] | Byte array containing output data. | |
| * +------------+----------------------------------------------+ |
| * | TLV[TAG_2] | Byte array containing tag (if P2 = | |
| * | | P2_ENCRYPT_ONESHOT) or byte array containing | |
| * | | Result (if P2 = P2_DECRYPT_ONESHOT) | |
| * +------------+----------------------------------------------+ |
| * | TLV[TAG_3] | Byte array containing the initialization | |
| * | | vector (if P1 = P1_AEAD_INT_IV and P2 = | |
| * | | P2_ENCRYPT_ONESHOT). | |
| * +------------+----------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] objectID The object id |
| * @param[in] cipherMode The cipher mode |
| * @param[in] inputData The input data |
| * @param[in] inputDataLen The input data length |
| * @param[in] aad The aad |
| * @param[in] aadLen The aad length |
| * @param[in] IV The iv |
| * @param[in] IVLen The iv length |
| * @param tagData The tag data |
| * @param tagDataLen The tag data length |
| * @param outputData The output data |
| * @param poutputDataLen The poutput data length |
| * @param[in] operation The operation |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadOneShot(pSe05xSession_t session_ctx, |
| uint32_t objectID, |
| SE05x_CipherMode_t cipherMode, |
| const uint8_t *inputData, |
| size_t inputDataLen, |
| const uint8_t *aad, |
| size_t aadLen, |
| uint8_t *IV, |
| size_t IVLen, |
| uint8_t *tagData, |
| size_t *tagDataLen, |
| uint8_t *outputData, |
| size_t *poutputDataLen, |
| const SE05x_Cipher_Oper_OneShot_t operation); |
| |
| /** Se05x_API_AeadInit |
| * |
| * Initialize an authentication encryption or decryption with associated data. |
| * The Crypto Object keeps the state of the AEAD operation until it's finalized |
| * or deleted. Once the AEADFinal function is executed successfully, the Crypto |
| * Object state returns to the state immediately after the previous AEADInit |
| * function. |
| * |
| * When P1 equals P1_AEAD_INT_IV and P2 equals P1_ENCRYPT, TLV[TAG_5] must |
| * includes the length of the initialization vector. In that case, the |
| * initialization vector is generated internally and passed back in the response |
| * command. When the device is in FIPS mode (see FIPS Compliance), P1 equal to |
| * P1_AEAD will result in SW_CONDITIONS_NOT_SATISFIED. |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +=========+===========================+================================================+ |
| * | CLA | 0x80 | | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | P1 | P1_AEAD or P1_AEAD_INT_IV | See :cpp:type:`SE05x_P1_t` | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | P2 | P2_ENCRYPT or P2_DECRYPT | See :cpp:type:`SE05x_P2_t` | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Lc | #(Payload) | | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_1] | 4-byte identifier of the AESKey Secure object. | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | | TLV[TAG_2] | 2-byte Crypto Object identifier | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | | TLV[TAG_5] | Byte array containing the initialization | |
| * | | | vector (if P1 equals P1_AEAD or P1 equals | |
| * | | | P1_AEAD and P2 equals P2_DECRYPT) or 2-byte | |
| * | | | value containing the initialization vector | |
| * | | | length (if P1 equals P1_AEAD_INT_IV and P2 | |
| * | | | equals P2_ENCRYPT) [Optional] | |
| * | | | [Conditional: required when P1 equals | |
| * | | | P1_AEAD_INT_IV and P2 equals P2_ENCRYPT] | |
| * +---------+---------------------------+------------------------------------------------+ |
| * | Le | - | | |
| * +---------+---------------------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * @rst |
| * +------------+-----------------------------------------------+ |
| * | Value | Description | |
| * +============+===============================================+ |
| * | TLV[TAG_3] | Byte array containing the used initialization | |
| * | | vector. It remains valid until deselect, | |
| * | | AEADInit, AEADFinal or AEADOneShot is called. | |
| * | | [Conditional: Only when P1 equals | |
| * | | P1_AEAD_INT_IV and P2 equals P2_ENCRYPT] | |
| * +------------+-----------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] objectID The object id |
| * @param[in] cryptoObjectID The crypto object id |
| * @param[in] pIV { parameter_description } |
| * @param[in] IVLen The iv length |
| * @param[in] operation The operation |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadInit(pSe05xSession_t session_ctx, |
| uint32_t objectID, |
| SE05x_CipherMode_t cipherMode, |
| SE05x_CryptoObjectID_t cryptoObjectID, |
| uint8_t *pIV, |
| size_t IVLen, |
| const SE05x_Cipher_Oper_t operation); |
| |
| /** Se05x_API_AeadCCMInit |
| * |
| * Initialize an authentication encryption or decryption with associated data. |
| * The Crypto Object keeps the state of the AEAD operation until it's finalized |
| * or deleted. Once the AEADFinal function is executed successfully, the Crypto |
| * Object state returns to the state immediately after the previous AEADInit |
| * function.AEAD in CCM mode. |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +---------+--------------------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +=========+==========================+================================================+ |
| * | CLA | 0x80 | | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | P1 | P1_AEAD | See :cpp:type:`SE05x_P1_t` | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | P2 | P2_ENCRYPT or P2_DECRYPT | See :cpp:type:`SE05x_P2_t` | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | Lc | #(Payload) | | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_1] | 4-byte identifier of the AESKey Secure object. | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | | TLV[TAG_2] | 2-byte Crypto Object identifier | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | | TLV[TAG_5] | Byte array containing the initialization | |
| * | | | vector [12 bytes until 60 bytes] or a 2-byte | |
| * | | | value containing the initialization vector | |
| * | | | length, depending on the AEADMode of the | |
| * | | | Crypto Object. | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | | TLV[TAG_6] | Byte array containing 2-byte AAD length. | |
| * | | | [Conditional: needed if AEADMode equals | |
| * | | | AES_CCM] | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | | TLV[TAG_7] | Byte array containing 2-byte message length. | |
| * | | | [Conditional: needed if AEADMode equals | |
| * | | | AES_CCM] | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | | TLV[TAG_8] | Byte array containing 2-byte tag size. | |
| * | | | [Conditional: needed if AEADMode equals | |
| * | | | AES_CCM]. | |
| * +---------+--------------------------+------------------------------------------------+ |
| * | Le | - | | |
| * +---------+--------------------------+------------------------------------------------+ |
| * @endrst |
| * |
| * |
| * # R-APDU Body |
| * NA |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] objectID The object id |
| * @param[in] cryptoObjectID The crypto object id |
| * @param[in] pIV { parameter_description } |
| * @param[in] IVLen The iv length |
| * @param[in] aadLen The aad length |
| * @param[in] payloadLen The payloadLen length |
| * @param[in] tagLen The tag length |
| * @param[in] operation The operation |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadCCMInit(pSe05xSession_t session_ctx, |
| uint32_t objectID, |
| SE05x_CryptoObjectID_t cryptoObjectID, |
| const uint8_t *pIV, |
| size_t IVLen, |
| size_t aadLen, |
| size_t payloadLen, |
| size_t tagLen, |
| const SE05x_Cipher_Oper_t operation); |
| |
| /** |
| * @brief Se05x_API_AeadCCMLastUpdate |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +------------+---------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +============+===============+================================================+ |
| * | CLA | 0x80 | | |
| * +------------+---------------+------------------------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +------------+---------------+------------------------------------------------+ |
| * | P1 | P1_AEAD | See :cpp:type:`SE05x_P1_t` | |
| * +------------+---------------+------------------------------------------------+ |
| * | P2 | P2_UPDATE | See :cpp:type:`SE05x_P2_t` | |
| * +------------+---------------+------------------------------------------------+ |
| * | Lc | #(Payload) | | |
| * +------------+---------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_2] | 2-byte Crypto Object identifier | |
| * +------------+---------------+------------------------------------------------+ |
| * | | TLV[TAG_3] | Byte array containing input data | |
| * | | | [Conditional: only when | |
| * | | | TLV[TAG_4] is not present] | |
| * | | | [Optional] | |
| * +------------+---------------+------------------------------------------------+ |
| * | Le | 0x00 | Expecting returned data. | |
| * +------------+---------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * NA |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] cryptoObjectID The crypto object id |
| * @param[in] pInputData The input data |
| * @param[in] inputDataLen The input data length |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadCCMLastUpdate( |
| pSe05xSession_t session_ctx, SE05x_CryptoObjectID_t cryptoObjectID, const uint8_t *pInputData, size_t inputDataLen); |
| |
| /** Se05x_API_AeadCCMFinal |
| * |
| * Finish a sequence of AES_CCM AEAD operations. |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +------------+----------------------------------+---------------------------------+ |
| * | Field | Value | Description | |
| * +============+==================================+=================================+ |
| * | CLA | 0x80 | | |
| * +------------+----------------------------------+---------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +------------+----------------------------------+---------------------------------+ |
| * | P1 | P1_AEAD | See :cpp:type:`SE05x_P1_t` | |
| * +------------+----------------------------------+---------------------------------+ |
| * | P2 | P2_FINAL | See :cpp:type:`SE05x_P2_t` | |
| * +------------+----------------------------------+---------------------------------+ |
| * | Lc | #(Payload) | | |
| * +------------+----------------------------------+---------------------------------+ |
| * | Payload | TLV[TAG_2] | 2-byte Crypto Object identifier | |
| * +------------+----------------------------------+---------------------------------+ |
| * | TLV[TAG_6] | Byte array containing tag to | | |
| * | | verify [Conditional] When the | | |
| * | | mode is decrypt and verify (i.e. | | |
| * | | AEADInit has been called with | | |
| * | | P2 = P2_DECRYPT). | | |
| * +------------+----------------------------------+---------------------------------+ |
| * | Le | 0x00 | Expected returned data. | |
| * +------------+----------------------------------+---------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * @rst |
| * +------------+------------------------------------------------+ |
| * | Value | Description | |
| * +============+================================================+ |
| * | TLV[TAG_1] | Output data | |
| * | | | |
| * +------------+------------------------------------------------+ |
| * | TLV[TAG_2] | Byte array containing tag (if P2 = P2_ENCRYPT) | |
| * | | or byte array containing Result (if P2 = | |
| * | | P2_DECRYPT) | |
| * +------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] cryptoObjectID The crypto object id |
| * @param[out] pOutputData The output data |
| * @param[out] pOutputLen The output length |
| * @param tag The tag |
| * @param tagLen The tag length |
| * @param[in] operation The operation |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadCCMFinal(pSe05xSession_t session_ctx, |
| SE05x_CryptoObjectID_t cryptoObjectID, |
| uint8_t *pOutputData, |
| size_t *pOutputLen, |
| uint8_t *pTag, |
| size_t *pTagLen, |
| const SE05x_Cipher_Oper_t operation); |
| |
| /** Se05x_API_AeadUpdate_aad |
| * |
| * Update a Crypto Object of type CC_AEAD. |
| * |
| * The user either needs to send input data or Additional Authenticated Data |
| * (AAD), but not both at once. |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +============+==================================+================================================+ |
| * | CLA | 0x80 | | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | P1 | P1_AEAD | See :cpp:type:`SE05x_P1_t` | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | P2 | P2_UPDATE | See :cpp:type:`SE05x_P2_t` | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | Lc | #(Payload) | | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_2] | 2-byte Crypto Object identifier | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | | TLV[TAG_4] | Byte array containing Additional Authenticated | |
| * | | | Data. [Conditional: only when TLV[TAG_3] is | |
| * | | | not present] [Optional] | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * | Le | 0x00 | Expecting returned data. | |
| * +------------+----------------------------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * NA |
| * |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] cryptoObjectID The crypto object id |
| * @param[in] pAadData The aad data |
| * @param[in] aadDataLen The aad data length |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadUpdate_aad( |
| pSe05xSession_t session_ctx, SE05x_CryptoObjectID_t cryptoObjectID, const uint8_t *pAadData, size_t aadDataLen); |
| |
| /** |
| * @brief Se05x_API_AeadUpdate |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +------------+---------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +============+===============+================================================+ |
| * | CLA | 0x80 | | |
| * +------------+---------------+------------------------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +------------+---------------+------------------------------------------------+ |
| * | P1 | P1_AEAD | See :cpp:type:`SE05x_P1_t` | |
| * +------------+---------------+------------------------------------------------+ |
| * | P2 | P2_UPDATE | See :cpp:type:`SE05x_P2_t` | |
| * +------------+---------------+------------------------------------------------+ |
| * | Lc | #(Payload) | | |
| * +------------+---------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_2] | 2-byte Crypto Object identifier | |
| * +------------+---------------+------------------------------------------------+ |
| * | | TLV[TAG_3] | Byte array containing input data | |
| * | | | [Conditional: only when | |
| * | | | TLV[TAG_4] is not present] | |
| * | | | [Optional] | |
| * +------------+---------------+------------------------------------------------+ |
| * | Le | 0x00 | Expecting returned data. | |
| * +------------+---------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * @rst |
| * +------------+---------------------------------------+ |
| * | Value | Description | |
| * +============+=======================================+ |
| * | TLV[TAG_1] | Output data [Conditional: only when | |
| * | | TLV[TAG_3] is passed as input] | |
| * +------------+---------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] cryptoObjectID The crypto object id |
| * @param[in] pInputData The input data |
| * @param[in] inputDataLen The input data length |
| * @param pOutputData The output data |
| * @param pOutputLen The output length |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadUpdate(pSe05xSession_t session_ctx, |
| SE05x_CryptoObjectID_t cryptoObjectID, |
| const uint8_t *pInputData, |
| size_t inputDataLen, |
| uint8_t *pOutputData, |
| size_t *pOutputLen); |
| |
| /** Se05x_API_AeadFinal |
| * |
| * Finish a sequence of AEAD operations. The AEADFinal command provides the |
| * computed GMAC or indicates whether the GMAC is correct depending on the P2 |
| * parameters passed during AEADInit. The length of the GMAC is always 16 bytes |
| * when P2 equals P2_ENCRYPT. When P2 equals P2_DECRYPT, the minimum tag length |
| * to pass is 4 bytes. |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +------------+----------------------------------+---------------------------------+ |
| * | Field | Value | Description | |
| * +============+==================================+=================================+ |
| * | CLA | 0x80 | | |
| * +------------+----------------------------------+---------------------------------+ |
| * | INS | INS_CRYPTO | :cpp:type:`SE05x_INS_t` | |
| * +------------+----------------------------------+---------------------------------+ |
| * | P1 | P1_AEAD | See :cpp:type:`SE05x_P1_t` | |
| * +------------+----------------------------------+---------------------------------+ |
| * | P2 | P2_FINAL | See :cpp:type:`SE05x_P2_t` | |
| * +------------+----------------------------------+---------------------------------+ |
| * | Lc | #(Payload) | | |
| * +------------+----------------------------------+---------------------------------+ |
| * | Payload | TLV[TAG_2] | 2-byte Crypto Object identifier | |
| * +------------+----------------------------------+---------------------------------+ |
| * | TLV[TAG_6] | Byte array containing tag to | | |
| * | | verify [Conditional] When the | | |
| * | | mode is decrypt and verify (i.e. | | |
| * | | AEADInit has been called with | | |
| * | | P2 = P2_DECRYPT). | | |
| * +------------+----------------------------------+---------------------------------+ |
| * | Le | 0x00 | Expected returned data. | |
| * +------------+----------------------------------+---------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * @rst |
| * +------------+------------------------------------------------+ |
| * | Value | Description | |
| * +============+================================================+ |
| * | TLV[TAG_2] | Byte array containing tag (if P2 = P2_ENCRYPT) | |
| * | | or byte array containing Result (if P2 = | |
| * | | P2_DECRYPT) | |
| * +------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] cryptoObjectID The crypto object id |
| * @param tag The tag |
| * @param tagLen The tag length |
| * @param[in] operation The operation |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_AeadFinal(pSe05xSession_t session_ctx, |
| SE05x_CryptoObjectID_t cryptoObjectID, |
| uint8_t *tag, |
| size_t *tagLen, |
| const SE05x_Cipher_Oper_t operation); |
| |
| /** Se05x_API_DisableObjCreation |
| * |
| * |
| * # Command to Applet |
| * |
| * |
| * # R-APDU Body |
| * |
| * NA |
| * |
| * # R-APDU Trailer |
| * |
| * |
| * |
| * |
| * @param[in] session_ctx Session Context [0:kSE05x_pSession] |
| * @param[in] lockIndicator [1:kSE05x_TAG_1] |
| * @param[in] restrictMode [2:kSE05x_TAG_2] |
| */ |
| smStatus_t Se05x_API_DisableObjCreation( |
| pSe05xSession_t session_ctx, SE05x_LockIndicator_t lockIndicator, SE05x_RestrictMode_t restrictMode); |
| |
| /** Se05x_API_ReadObjectAttributes |
| * |
| * |
| * |
| * @param[in] session_ctx Session Context [0:kSE05x_pSession] |
| * @param[in] objectID object id [1:kSE05x_TAG_1] |
| * @param[out] data [0:kSE05x_TAG_2] |
| * @param[in,out] pdataLen Length for data |
| */ |
| smStatus_t Se05x_API_ReadObjectAttributes( |
| pSe05xSession_t session_ctx, uint32_t objectID, uint8_t *data, size_t *pdataLen); |
| |
| /** Se05x_API_TriggerSelfTest |
| * |
| * Trigger a system health check for the system. When calling this command, a self-test is |
| * triggered in the operating system. When the test fails, the device might not respond with |
| * a R-APDU as the chip is reset. |
| * If HealthCheckMode is set to HCM_FIPS, the test will only work if the device is running in |
| * FIPS approved mode of operation. |
| * |
| * # Command to Applet |
| * |
| * |
| * @rst |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +============+=================================+================================================+ |
| * | CLA | 0x80 | | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | INS | INS_MGMT | See :cpp:type:`SE05x_INS_t`. In addition to | |
| * | | | INS_CRYPTO, users can set the INS_ATTEST | |
| * | | | flag. In that case, attestation applies. | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | P1 | P1_DEFAULT | See :cpp:type:`SE05x_P1_t` | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | P2 | P2_SANITY | See :cpp:type:`SE05x_P2_t` | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Lc | #(Payload) | Payload length | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_1] | 2-byte value from HealthCheckMode | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Le | 0x00 | 2-byte response + attested data (if INS_ATTEST | |
| * | | | is set). | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * |
| * @rst |
| * +------------+------------------------------------------------+ |
| * | Value | Description | |
| * +============+================================================+ |
| * | TLV[TAG_1] | TLV containing 1-byte Result. | |
| * +------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] HealthCheckMode The health check mode |
| * @param result The result of Self Test |
| * |
| * @return The sm status. |
| */ |
| |
| smStatus_t Se05x_API_TriggerSelfTest( |
| pSe05xSession_t session_ctx, SE05x_HealthCheckMode_t healthCheckMode, uint8_t *result); |
| |
| /** Se05x_API_TriggerSelfTest_W_Attst |
| * |
| * Trigger a system health check for the system. When calling this command, a self-test is |
| * triggered in the operating system. When the test fails, the device might not respond with |
| * a R-APDU as the chip is reset. |
| * If HealthCheckMode is set to HCM_FIPS, the test will only work if the device is running in |
| * FIPS approved mode of operation. |
| * |
| * # Command to Applet |
| * |
| * |
| * @rst |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Field | Value | Description | |
| * +============+=================================+================================================+ |
| * | CLA | 0x80 | | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | INS | INS_MGMT | See :cpp:type:`SE05x_INS_t`. In addition to | |
| * | | | INS_CRYPTO, users can set the INS_ATTEST | |
| * | | | flag. In that case, attestation applies. | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | P1 | P1_DEFAULT | See :cpp:type:`SE05x_P1_t` | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | P2 | P2_SANITY | See :cpp:type:`SE05x_P2_t` | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Lc | #(Payload) | Payload length | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Payload | TLV[TAG_1] | 2-byte value from HealthCheckMode | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | TLV[TAG_5] | 4-byte attestation object | | |
| * | | identifier. [Optional] | | |
| * | | [Conditional: only when | | |
| * | | INS_ATTEST is set] | | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | TLV[TAG_6] | 1-byte AttestationAlgo | | |
| * | | [Optional] [Conditional: only | | |
| * | | when INS_ATTEST is set] | | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | TLV[TAG_7] | 16-byte freshness random | | |
| * | | [Optional] [Conditional: only | | |
| * | | when INS_ATTEST is set] | | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * | Le | 0x00 | 2-byte response + attested data (if INS_ATTEST | |
| * | | | is set). | |
| * +------------+---------------------------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * |
| * @rst |
| * +------------+------------------------------------------------+ |
| * | Value | Description | |
| * +============+================================================+ |
| * | TLV[TAG_1] | TLV containing 1-byte Result. | |
| * +------------+------------------------------------------------+ |
| * | TLV[TAG_3] | TLV containing 12-byte timestamp | |
| * | | [Conditional: only when C-APDU contains | |
| * | | INS_ATTEST] | |
| * +------------+------------------------------------------------+ |
| * | TLV[TAG_4] | TLV containing 16-byte freshness (random) | |
| * | | [Conditional: only when C-APDU contains | |
| * | | INS_ATTEST] | |
| * +------------+------------------------------------------------+ |
| * | TLV[TAG_5] | TLV containing 18-byte chip unique ID | |
| * | | [Conditional: only when C-APDU contains | |
| * | | INS_ATTEST] | |
| * +------------+------------------------------------------------+ |
| * | TLV[TAG_6] | TLV containing signature over the concatenated | |
| * | | values of TLV[TAG_1], TLV[TAG_3], TLV[TAG_4] | |
| * | | and TLV[TAG_5]. [Conditional: only when | |
| * | | C-APDU contains INS_ATTEST] | |
| * +------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] HealthCheckMode The health check mode |
| * @param[in] attestID The attest id |
| * @param[in] attestAlgo The attest algorithm |
| * @param[in] random The random |
| * @param[in] randomLen The random length |
| * @param result The result of Self Test |
| * @param ptimeStamp The ptime stamp |
| * @param outrandom The outrandom |
| * @param poutrandomLen The poutrandom length |
| * @param chipId The chip identifier |
| * @param pchipIdLen The pchip identifier length |
| * @param signature The signature |
| * @param psignatureLen The psignature length |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_TriggerSelfTest_W_Attst(pSe05xSession_t session_ctx, |
| SE05x_HealthCheckMode_t healthCheckMode, |
| uint32_t attestID, |
| SE05x_AttestationAlgo_t attestAlgo, |
| const uint8_t *random, |
| size_t randomLen, |
| uint8_t *result, |
| SE05x_TimeStamp_t *ptimeStamp, |
| uint8_t *outrandom, |
| size_t *poutrandomLen, |
| uint8_t *chipId, |
| size_t *pchipIdLen, |
| uint8_t *signature, |
| size_t *psignatureLen); |
| |
| /** Se05x_API_ECDHGenerateSharedSecret_InObject |
| * |
| * See @ref Se05x_API_ECDHGenerateSharedSecret |
| * |
| */ |
| smStatus_t Se05x_API_ECDHGenerateSharedSecret_InObject(pSe05xSession_t session_ctx, |
| uint32_t objectID, |
| const uint8_t *pubKey, |
| size_t pubKeyLen, |
| uint32_t sharedSecretID, |
| uint8_t invertEndianness); |
| |
| /* |
| * @param[in] session_ctx Session Context[0:kSE05x_pSession] |
| * @param[in] keyPairId keyPairId[1:kSE05x_TAG_1] |
| * @param[in] pskId pskId[2:kSE05x_TAG_2] |
| * @param[in] hmacKeyId hmacKeyId[3:kSE05x_TAG_3] |
| * @param[in] inputData inputData[4:kSE05x_TAG_4] |
| * @param[in] inputDataLen Length of inputData |
| * @param[in] clientVersion client version[6:kSE05x_TAG_6] |
| * @param[in] clientVersionLen Length of client version |
| */ |
| |
| smStatus_t Se05x_API_TLSCalculateRsaPreMasterSecret(pSe05xSession_t session_ctx, |
| uint32_t keyPairId, |
| uint32_t pskId, |
| uint32_t hmacKeyId, |
| const uint8_t *inputData, |
| size_t inputDataLen, |
| const uint8_t *clientVersion, |
| size_t clientVersionLen); |
| |
| /** Se05x_API_WriteRSAKey_Ver |
| * |
| * See @ref Se05x_API_WriteRSAKey. Also allows to set key version (4 bytes). |
| * |
| */ |
| smStatus_t Se05x_API_WriteRSAKey_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| uint32_t objectID, |
| uint16_t size, |
| const uint8_t *p, |
| size_t pLen, |
| const uint8_t *q, |
| size_t qLen, |
| const uint8_t *dp, |
| size_t dpLen, |
| const uint8_t *dq, |
| size_t dqLen, |
| const uint8_t *qInv, |
| size_t qInvLen, |
| const uint8_t *pubExp, |
| size_t pubExpLen, |
| const uint8_t *priv, |
| size_t privLen, |
| const uint8_t *pubMod, |
| size_t pubModLen, |
| const SE05x_INS_t ins_type, |
| const SE05x_KeyPart_t key_part, |
| const SE05x_RSAKeyFormat_t rsa_format, |
| uint32_t version); |
| |
| /** Se05x_API_UpdateRSAKey_Ver |
| * |
| * See @ref Se05x_API_WriteRSAKey. Also allows to set key version (4 bytes). |
| * Called to update the value of already existing object. If policy is passed, |
| * it should match with existing policy on object. |
| */ |
| smStatus_t Se05x_API_UpdateRSAKey_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| uint32_t objectID, |
| uint16_t size, |
| const uint8_t *p, |
| size_t pLen, |
| const uint8_t *q, |
| size_t qLen, |
| const uint8_t *dp, |
| size_t dpLen, |
| const uint8_t *dq, |
| size_t dqLen, |
| const uint8_t *qInv, |
| size_t qInvLen, |
| const uint8_t *pubExp, |
| size_t pubExpLen, |
| const uint8_t *priv, |
| size_t privLen, |
| const uint8_t *pubMod, |
| size_t pubModLen, |
| const SE05x_INS_t ins_type, |
| const SE05x_KeyPart_t key_part, |
| const SE05x_RSAKeyFormat_t rsa_format, |
| uint32_t version); |
| |
| #define Se05x_API_WriteECKey_with_version Se05x_API_WriteECKey_Ver |
| /** Se05x_API_WriteECKey_Ver |
| * |
| * See @ref Se05x_API_WriteECKey. Also allows to set key version (4 bytes). |
| * |
| */ |
| smStatus_t Se05x_API_WriteECKey_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| SE05x_MaxAttemps_t maxAttempt, |
| uint32_t objectID, |
| SE05x_ECCurve_t curveID, |
| const uint8_t *privKey, |
| size_t privKeyLen, |
| const uint8_t *pubKey, |
| size_t pubKeyLen, |
| const SE05x_INS_t ins_type, |
| const SE05x_KeyPart_t key_part, |
| uint32_t version); |
| |
| /** Se05x_API_UpdateECKey_Ver |
| * |
| * See @ref Se05x_API_WriteECKey. Also allows to set key version (4 bytes). |
| * Called to update the value of already existing object. If policy is passed, |
| * it should match with existing policy on object. |
| */ |
| smStatus_t Se05x_API_UpdateECKey_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| SE05x_MaxAttemps_t maxAttempt, |
| uint32_t objectID, |
| SE05x_ECCurve_t curveID, |
| const uint8_t *privKey, |
| size_t privKeyLen, |
| const uint8_t *pubKey, |
| size_t pubKeyLen, |
| const SE05x_INS_t ins_type, |
| const SE05x_KeyPart_t key_part, |
| uint32_t version); |
| |
| /** Se05x_API_WriteSymmKey_Ver |
| * |
| * See @ref Se05x_API_WriteSymmKey. Also allows to set key version (4 bytes). |
| * |
| */ |
| smStatus_t Se05x_API_WriteSymmKey_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| SE05x_MaxAttemps_t maxAttempt, |
| uint32_t objectID, |
| SE05x_KeyID_t kekID, |
| const uint8_t *keyValue, |
| size_t keyValueLen, |
| const SE05x_INS_t ins_type, |
| const SE05x_SymmKeyType_t type, |
| uint32_t version); |
| |
| /** Se05x_API_UpdateSymmKey_Ver |
| * |
| * See @ref Se05x_API_WriteSymmKey. Also allows to set key version (4 bytes). |
| * Called to update the value of already existing object. If policy is passed, |
| * it should match with existing policy on object. |
| */ |
| smStatus_t Se05x_API_UpdateSymmKey_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| SE05x_MaxAttemps_t maxAttempt, |
| uint32_t objectID, |
| SE05x_KeyID_t kekID, |
| const uint8_t *keyValue, |
| size_t keyValueLen, |
| const SE05x_INS_t ins_type, |
| const SE05x_SymmKeyType_t type, |
| uint32_t version); |
| |
| /** Se05x_API_WriteBinary_Ver |
| * |
| * See @ref Se05x_API_WriteBinary. Also allows to set key version (4 bytes). |
| * |
| */ |
| smStatus_t Se05x_API_WriteBinary_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| uint32_t objectID, |
| uint16_t offset, |
| uint16_t length, |
| const uint8_t *inputData, |
| size_t inputDataLen, |
| uint32_t version); |
| |
| /** Se05x_API_UpdateBinary_Ver |
| * |
| * See @ref Se05x_API_WriteBinary. Also allows to set key version (4 bytes). |
| * Called to update the value of already existing object. If policy is passed, |
| * it should match with existing policy on object. |
| * |
| */ |
| smStatus_t Se05x_API_UpdateBinary_Ver(pSe05xSession_t session_ctx, |
| pSe05xPolicy_t policy, |
| uint32_t objectID, |
| uint16_t offset, |
| uint16_t length, |
| const uint8_t *inputData, |
| size_t inputDataLen, |
| uint32_t version); |
| |
| /** Se05x_API_ReadState |
| * |
| * |
| * # Command to Applet |
| * |
| * |
| * # R-APDU Body |
| * |
| * NA |
| * |
| * # R-APDU Trailer |
| * |
| * |
| * |
| * |
| * @param[in] session_ctx Session Context [0:kSE05x_pSession] |
| * @param[out] pstateValues [1:kSE05x_TAG_1] |
| */ |
| smStatus_t Se05x_API_ReadState(pSe05xSession_t session_ctx, uint8_t *pstateValues, size_t *pstateValuesLen); |
| |
| /** Se05x_API_GetExtVersion |
| * |
| * Gets the applet extended version information. |
| * |
| * This will return 37-byte VersionInfo (including major, minor and patch version |
| * of the applet, supported applet features and secure box version). |
| * |
| * # Command to Applet |
| * |
| * @rst |
| * +-------+------------------------------+----------------------------------------------+ |
| * | Field | Value | Description | |
| * +=======+==============================+==============================================+ |
| * | CLA | 0x80 | | |
| * +-------+------------------------------+----------------------------------------------+ |
| * | INS | INS_MGMT | See :cpp:type:`SE05x_INS_t` | |
| * +-------+------------------------------+----------------------------------------------+ |
| * | P1 | P1_DEFAULT | See :cpp:type:`SE05x_P1_t` | |
| * +-------+------------------------------+----------------------------------------------+ |
| * | P2 | P2_VERSION or P2_VERSION_EXT | See :cpp:type:`SE05x_P2_t` | |
| * +-------+------------------------------+----------------------------------------------+ |
| * | Lc | #(Payload) | | |
| * +-------+------------------------------+----------------------------------------------+ |
| * | Le | 0x00 | Expecting TLV with 7-byte data (when P2 = | |
| * | | | P2_VERSION) or a TLV with 37 byte data (when | |
| * | | | P2= P2_VERSION_EXT). | |
| * +-------+------------------------------+----------------------------------------------+ |
| * @endrst |
| * |
| * |
| * # R-APDU Body |
| * |
| * @rst |
| * +------------+------------------------------------------------+ |
| * | Value | Description | |
| * +============+================================================+ |
| * | TLV[TAG_1] | 7-byte :cpp:type:`VersionInfoRef` (if P2 = | |
| * | | P2_VERSION) or 7-byte VersionInfo followed by | |
| * | | 30 bytes extendedFeatureBits (if P2 = | |
| * | | P2_VERSION_EXT) | |
| * +------------+------------------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------+ |
| * | SW | Description | |
| * +=============+================================+ |
| * | SW_NO_ERROR | Data is returned successfully. | |
| * +-------------+--------------------------------+ |
| * @endrst |
| * |
| * @param[in] session_ctx The session context |
| * @param pappletVersion The papplet version |
| * @param appletVersionLen The applet version length |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_GetExtVersion(pSe05xSession_t session_ctx, uint8_t *pappletVersion, size_t *appletVersionLen); |
| |
| /**Se05x_API_SendCardManagerCmd |
| * |
| * Sends a command to the Card Manager. |
| * |
| * This APDU will send command to Card Manager |
| * |
| * # Command to Card Manager |
| * |
| * @rst |
| * +---------+---------------+--------------------------------------+ |
| * | Field | Value | Description | |
| * +=========+===============+======================================+ |
| * | CLA | 0x80 | | |
| * +---------+---------------+--------------------------------------+ |
| * | INS | INS_MGMT | See :cpp:type:`SE05x_INS_t` | |
| * +---------+---------------+--------------------------------------+ |
| * | P1 | P1_DEFAULT | See :cpp:type:`SE05x_P1_t` | |
| * +---------+---------------+--------------------------------------+ |
| * | P2 | P2_CM_COMMAND | See :cpp:type:`SE05x_P2_t` | |
| * +---------+---------------+--------------------------------------+ |
| * | Lc | #(Payload) | Payload length | |
| * +---------+---------------+--------------------------------------+ |
| * | Payload | TLV[TAG_1] | APDU to be sent to the Card Manager. | |
| * +---------+---------------+--------------------------------------+ |
| * | Le | 0x00 | Expected response length | |
| * +---------+---------------+--------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Body |
| * |
| * @rst |
| * +------------+----------------------------------------+ |
| * | Value | Description | |
| * +============+========================================+ |
| * | TLV[TAG_1] | Byte array containing the Card Manager | |
| * | | response. | |
| * +------------+----------------------------------------+ |
| * @endrst |
| * |
| * # R-APDU Trailer |
| * |
| * @rst |
| * +-------------+--------------------------------------+ |
| * | SW | Description | |
| * +=============+======================================+ |
| * | SW_NO_ERROR | The command is handled successfully. | |
| * +-------------+--------------------------------------+ |
| * @endrst |
| * |
| * @param[in] session_ctx The session context |
| * @param[in] pCmdData The command input data |
| * @param[in] cmdDataLen The command input data length |
| * @param[out] pOutputData The response data |
| * @param[out] pOutputDataLen The response data length |
| * |
| * @return The sm status. |
| */ |
| smStatus_t Se05x_API_SendCardManagerCmd( |
| pSe05xSession_t session_ctx, uint8_t *pCmdData, size_t cmdDataLen, uint8_t *pOutputData, size_t *pOutputDataLen); |
| |
| /** Se05x_API_UpdatePCR |
| * |
| * See @ref Se05x_API_WritePCR. |
| * Called to update the value of already existing object. If policy is passed, |
| * it should match with existing policy on object. |
| */ |
| smStatus_t Se05x_API_UpdatePCR( |
| pSe05xSession_t session_ctx, pSe05xPolicy_t policy, uint32_t pcrID, const uint8_t *inputData, size_t inputDataLen); |
| |
| /** Se05x_API_UpdateCounter |
| * |
| * See @ref Se05x_API_SetCounterValue. |
| * Called to update the value of already existing object. If policy is passed, |
| * it should match with existing policy on object. |
| */ |
| smStatus_t Se05x_API_UpdateCounter( |
| pSe05xSession_t session_ctx, pSe05xPolicy_t policy, uint32_t objectID, uint16_t size, uint64_t value); |