NXP Reader Library  v17.1.0.2535

end of defgroup phhalHw_SamAV3_Cmd_PKI_RSA More...

Collaboration diagram for ECC:

Macros

#define PHHAL_HW_SAMAV3_CMD_PKI_IMPORT_ECC_KEY_CMD_SIZE   15U
 Macro to represent the PKI_ImportEccKey command size.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_IMPORT_ECC_KEY_LC_MIN   8U
 Minimun Length of LC data for PKI_ImportEccKey command.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_IMPORT_ECC_CURVE_CMD_SIZE   10U
 Macro to represent the PKI_ImportEccCurve command size.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_IMPORT_ECC_CURVE_LC_MIN   3U
 Minimun Length of LC data for PKI_ImportEccCurve command.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_VERIFY_ECC_SIGNATURE_CMD_SIZE   8U
 Macro to represent the PKI_VerifyEccSignature command size.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_VERIFY_ECC_SIGNATURE_LC_MIN   3U
 Minimun Length of LC data for PKI_VerifyEccSignature command.
 

Functions

phStatus_t phhalHw_SamAV3_Cmd_PKI_ImportEccKey (phhalHw_SamAV3_DataParams_t *pDataParams, uint8_t bOption, uint8_t bECC_KeyNo, uint16_t wECC_Set, uint8_t bECC_KeyNoCEK, uint8_t bECC_KeyVCEK, uint8_t bECC_RefNoKUC, uint8_t bECC_KeyNoAEK, uint8_t bECC_KeyVAEK, uint16_t wECC_Len, uint8_t *pECC_xy, uint8_t bECC_xyLen)
 Imports the ECC public key to Key Storage. More...
 
phStatus_t phhalHw_SamAV3_Cmd_PKI_ImportEccCurve (phhalHw_SamAV3_DataParams_t *pDataParams, uint8_t bOption, uint8_t bECC_CurveNo, uint8_t bECC_KeyNoCCK, uint8_t bECC_KeyVCCK, uint8_t bECC_N, uint8_t bECC_M, uint8_t *pECC_Prime, uint8_t *pECC_ParamA, uint8_t *pECC_ParamB, uint8_t *pECC_Px, uint8_t *pECC_Py, uint8_t *pECC_Order)
 Imports the full ECC Curve description to the ECC Curve Storage Table. More...
 
phStatus_t phhalHw_SamAV3_Cmd_PKI_ExportEccPublicKey (phhalHw_SamAV3_DataParams_t *pDataParams, uint8_t bECC_KeyNo, uint16_t *pECC_Set, uint8_t *pECC_KeyNoCEK, uint8_t *pECC_KeyVCEK, uint8_t *pECC_RefNoKUC, uint8_t *pECC_KeyNoAEK, uint8_t *pECC_KeyVAEK, uint16_t *pECC_Len, uint8_t **ppECC_xy, uint8_t *pECC_xyLen)
 Exports the ECC public key from Key Storage. More...
 
phStatus_t phhalHw_SamAV3_Cmd_PKI_VerifyEccSignature (phhalHw_SamAV3_DataParams_t *pDataParams, uint8_t bECC_KeyNo, uint8_t bECC_CurveNo, uint8_t bLen, uint8_t *pMessage, uint8_t *pSignature, uint16_t wSignatureLen)
 The command verifies the correctness of an ECC signature (i.e. More...
 

Sam AV3 command code for Public Key Infrastructure features.

#define PHHAL_HW_SAMAV3_CMD_PKI_IMPORT_ECC_KEY_INS   0x21
 Sam AV3 Instruction code for Cmd.PKI_ImportEccKey command.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_IMPORT_ECC_CURVE_INS   0x22
 Sam AV3 Instruction code for Cmd.PKI_ImportEccCurve command.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_EXPORT_ECC_PUBLIC_KEY_INS   0x23
 Sam AV3 Instruction code for Cmd.PKI_ExportEccPublicKey command.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_VERIFY_ECC_SIGNATURE_INS   0x20
 Sam AV3 Instruction code for Cmd.PKI_VerifyEccSignature command.
 

Option macros for Sam AV3 Public Key Infrastructure ImportEccCurve command.

#define PHHAL_HW_SAMAV3_CMD_PKI_UPDATE_CURVE_SETTINGS_VALUE   0x00
 Option mask for updating curve settings and curve values.
 
#define PHHAL_HW_SAMAV3_CMD_PKI_UPDATE_CURVE_SETTINGS_ONLY   0x01
 Option mask for updating curve settings only.
 

Detailed Description

end of defgroup phhalHw_SamAV3_Cmd_PKI_RSA

See also

SAM commands used for asymmetric ECC key management, signature handling and verification.

Function Documentation

◆ phhalHw_SamAV3_Cmd_PKI_ImportEccKey()

phStatus_t phhalHw_SamAV3_Cmd_PKI_ImportEccKey ( phhalHw_SamAV3_DataParams_t pDataParams,
uint8_t  bOption,
uint8_t  bECC_KeyNo,
uint16_t  wECC_Set,
uint8_t  bECC_KeyNoCEK,
uint8_t  bECC_KeyVCEK,
uint8_t  bECC_RefNoKUC,
uint8_t  bECC_KeyNoAEK,
uint8_t  bECC_KeyVAEK,
uint16_t  wECC_Len,
uint8_t pECC_xy,
uint8_t  bECC_xyLen 
)

Imports the ECC public key to Key Storage.

This is only supported by Sam AV3 version.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlaying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option for P1 information byte.
[in]bECC_KeyNo[In] The key reference number of the ECC key entry to be update (00h to 07h).
[in]wECC_Set[In] Configuration settings of the key entry.
[in]bECC_KeyNoCEK[In] Key reference number of change entry key. 0xFE : No Restrictions
0xFF : Entry Locked
0x00 - 0x7F: Restricted to specific permanent KST Key Entry
[in]bECC_KeyVCEK[In] Key version of change entry key.
[in]bECC_RefNoKUC[In] Reference number of key usage counter.
[in]bECC_KeyNoAEK[In] Key version of access entry key.
0xFE : No Access Restrictions
0xFF : Entry Disabled
0x00 - 0x7F: Restricted to specific permanent KST Key Entry
[in]bECC_KeyVAEK[In] Version of the created acces key entry.
[in]wECC_Len[In] ECC bit field size in bytes.
[in]pECC_xy[In] Public key point coordinate. Ranges from 33 - 65 bytes.
[in]bECC_xyLen[In] Length of Plublic key point coordinates.

◆ phhalHw_SamAV3_Cmd_PKI_ImportEccCurve()

phStatus_t phhalHw_SamAV3_Cmd_PKI_ImportEccCurve ( phhalHw_SamAV3_DataParams_t pDataParams,
uint8_t  bOption,
uint8_t  bECC_CurveNo,
uint8_t  bECC_KeyNoCCK,
uint8_t  bECC_KeyVCCK,
uint8_t  bECC_N,
uint8_t  bECC_M,
uint8_t pECC_Prime,
uint8_t pECC_ParamA,
uint8_t pECC_ParamB,
uint8_t pECC_Px,
uint8_t pECC_Py,
uint8_t pECC_Order 
)

Imports the full ECC Curve description to the ECC Curve Storage Table.

This is only supported by Sam AV3 version.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlaying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bOption[In] Option for P1 information byte.
[in]bECC_CurveNo[In] Curve reference number of the ECC curve entry to update (00h to 03h).
[in]bECC_KeyNoCCK[In] Key reference number to change the curve entry. 0xFE : No Restrictions
0xFF : Entry Locked
0x00 - 0x7F: Restricted to specific permanent KST Key Entry
[in]bECC_KeyVCCK[In] Key version to change curve entry.
[in]bECC_N[In] Size of the field in bytes. Ranges from 16 to 32 bytes.
[in]bECC_M[In] Size of the order in bytes. Ranges from 16 to 32 bytes.
[in]pECC_Prime[In] Prime, field definition: ECC_N bytes.
[in]pECC_ParamA[In] Curve parameter (a): ECC_N bytes.
[in]pECC_ParamB[In] Curve parameter (b): ECC_N bytes.
[in]pECC_Px[In] x-coordinate of basepoint: ECC_N bytes.
[in]pECC_Py[In] y-coordinate of basepoint: ECC_N bytes.
[in]pECC_Order[In] Order of basepoint: ECC_M bytes.

◆ phhalHw_SamAV3_Cmd_PKI_ExportEccPublicKey()

phStatus_t phhalHw_SamAV3_Cmd_PKI_ExportEccPublicKey ( phhalHw_SamAV3_DataParams_t pDataParams,
uint8_t  bECC_KeyNo,
uint16_t pECC_Set,
uint8_t pECC_KeyNoCEK,
uint8_t pECC_KeyVCEK,
uint8_t pECC_RefNoKUC,
uint8_t pECC_KeyNoAEK,
uint8_t pECC_KeyVAEK,
uint16_t pECC_Len,
uint8_t **  ppECC_xy,
uint8_t pECC_xyLen 
)

Exports the ECC public key from Key Storage.

This is only supported by Sam AV3 version.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlaying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bECC_KeyNo[In] The key reference number of the ECC key entry to be update (00h to 07h).
[out]pECC_Set[Out] Configuration settings of the key entry.
[out]pECC_KeyNoCEK[Out] Key reference number of change entry key. 0xFE : No Restrictions
0xFF : Entry Locked
0x00 - 0x7F: Restricted to specific permanent KST Key Entry
[out]pECC_KeyVCEK[Out] Key version of change entry key.
[out]pECC_RefNoKUC[Out] Reference number of key usage counter.
[out]pECC_KeyNoAEK[Out] Key version of access entry key.
0xFE : No Access Restrictions
0xFF : Entry Disabled
0x00 - 0x7F: Restricted to specific permanent KST Key Entry
[out]pECC_KeyVAEK[Out] Version of the created acces key entry.
[out]pECC_Len[Out] ECC bit field size in bytes.
[out]ppECC_xy[Out] Public key point coordinate. Ranges from 33 - 65 bytes.
[out]pECC_xyLen[Out] Length of Plublic key point coordinates.

◆ phhalHw_SamAV3_Cmd_PKI_VerifyEccSignature()

phStatus_t phhalHw_SamAV3_Cmd_PKI_VerifyEccSignature ( phhalHw_SamAV3_DataParams_t pDataParams,
uint8_t  bECC_KeyNo,
uint8_t  bECC_CurveNo,
uint8_t  bLen,
uint8_t pMessage,
uint8_t pSignature,
uint16_t  wSignatureLen 
)

The command verifies the correctness of an ECC signature (i.e.

: NXPOriginalitySignature) obtained from the product to verify. The signature is computed according to Elliptic Curve DSA (ECDSA) algorithm. This is only supported by Sam AV3 version.

Returns
Status code
Return values
PH_ERR_SUCCESSOperation successful.
OtherDepending on implementation and underlaying component.
Parameters
[in]pDataParams[In] Pointer to this layer's parameter structure.
[in]bECC_KeyNo[In] The key reference number of the ECC key entry to be used for signature verification (00h to 07h).
[in]bECC_CurveNo[In] The curve reference number of the ECC curve entry to be used for signature verification (00h to 03h).
[in]bLen[In] Length in bytes of the message to verify.
[in]pMessage[In] Signed input data.
[in]pSignature[In] The ECC digital signature where N is 2  ECC_Len of ECC_KeyNo key entry.
[in]wSignatureLen[In] Length of ECC digital signature.