![]() |
Synergy Software Package User's Manual
|
RTOS-integrated Crypto Signature Framework Module. More...
Data Structures | |
| struct | sf_crypto_signature_context_t |
| struct | sf_crypto_signature_instance_ctrl_t |
Macros | |
| #define | SF_CRYPTO_SIGNATURE_CODE_VERSION_MAJOR (2U) |
Functions | |
| ssp_err_t | sf_crypto_signature_key_size_config_rsa (sf_crypto_signature_cfg_t const *const p_cfg) |
| Function for Crypto Signature Framework to check configuration params - Key size. This function is called by sf_crypto_signature_validate_config(). More... | |
| ssp_err_t | sf_crypto_signature_open_rsa (sf_crypto_signature_instance_ctrl_t *const p_ctrl, sf_crypto_signature_cfg_t const *const p_cfg) |
| Function for Crypto Signature Framework to open the RSA HAL driver. This function is called by sf_crypto_signature_hal_open(). More... | |
| ssp_err_t | sf_crypto_signature_close_rsa (sf_crypto_signature_instance_ctrl_t *p_ctrl) |
| Function for Crypto Signature Framework to close the RSA HAL driver. This function is called by sf_crypto_signature_hal_close(). More... | |
| ssp_err_t | sf_crypto_signature_context_init_rsa (sf_crypto_signature_instance_ctrl_t *const p_ctrl, sf_crypto_signature_mode_t operation_mode, sf_crypto_signature_algorithm_init_params_t *const p_algorithm_specific_params, sf_crypto_key_t const *const p_key) |
| Function for Crypto Signature Framework to initialize the Signature framework module context. This function is called by sf_crypto_signature_hal_context_init(). More... | |
| ssp_err_t | sf_crypto_signature_sign_update_rsa (sf_crypto_signature_instance_ctrl_t *const p_ctrl, sf_crypto_data_handle_t const *const p_message) |
| Function for Crypto Signature Framework to perform sign update operation. This function is called by sf_crypto_signature_hal_sign_update(). More... | |
| ssp_err_t | sf_crypto_signature_verify_update_rsa (sf_crypto_signature_instance_ctrl_t *const p_ctrl, sf_crypto_data_handle_t const *const p_message) |
| Function for Crypto Signature Framework to perform verify update operation. This function is called by sf_crypto_signature_hal_verify_update(). More... | |
| ssp_err_t | sf_crypto_signature_sign_final_rsa (sf_crypto_signature_instance_ctrl_t *const p_ctrl, sf_crypto_data_handle_t const *const p_message, sf_crypto_data_handle_t *const p_dest) |
| Function for Crypto Signature Framework to perform sign final operation. This function is called by sf_crypto_signature_hal_sign_final(). More... | |
| ssp_err_t | sf_crypto_signature_verify_final_rsa (sf_crypto_signature_instance_ctrl_t *const p_ctrl, sf_crypto_data_handle_t const *const p_signature, sf_crypto_data_handle_t const *const p_message) |
| Function for Crypto Signature Framework to perform verify final operation. This function is called by sf_crypto_signature_hal_verify_final(). More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_Open (sf_crypto_signature_ctrl_t *const p_api_ctrl, sf_crypto_signature_cfg_t const *const p_cfg) |
| SSP Crypto Signature Framework Open operation. More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_Close (sf_crypto_signature_ctrl_t *const p_api_ctrl) |
| SSP Crypto Signature Framework Close operation. More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_ContextInit (sf_crypto_signature_ctrl_t *const p_api_ctrl, sf_crypto_signature_mode_t operation_mode, sf_crypto_signature_algorithm_init_params_t *const p_algorithm_specific_params, sf_crypto_key_t const *const p_key) |
| SSP Crypto Signature Framework Context Initialization operation. More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_SignUpdate (sf_crypto_signature_ctrl_t *const p_api_ctrl, sf_crypto_data_handle_t const *const p_message) |
| SSP Crypto Signature Framework Signature Update operation. More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_VerifyUpdate (sf_crypto_signature_ctrl_t *const p_api_ctrl, sf_crypto_data_handle_t const *const p_message) |
| SSP Crypto Signature Framework Signature-Verification Update operation. More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_SignFinal (sf_crypto_signature_ctrl_t *const p_api_ctrl, sf_crypto_data_handle_t const *const p_message, sf_crypto_data_handle_t *const p_dest) |
| SSP Crypto Signature Framework Signature Final operation. More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_VerifyFinal (sf_crypto_signature_ctrl_t *const p_api_ctrl, sf_crypto_data_handle_t const *const p_signature, sf_crypto_data_handle_t const *const p_message) |
| SSP Crypto Signature Framework Signature-Verification Update operation. More... | |
| ssp_err_t | SF_CRYPTO_SIGNATURE_VersionGet (ssp_version_t *const p_version) |
| Gets driver version based on compile time macros. More... | |
| ssp_err_t | sf_crypto_signature_validate_sign_operation_state_transition (sf_crypto_signature_instance_ctrl_t *p_ctrl, sf_crypto_signature_operation_state_t next_state) |
| SSP Crypto Signature Framework State transition validation for sign operation. More... | |
| ssp_err_t | sf_crypto_signature_validate_verify_operation_state_transition (sf_crypto_signature_instance_ctrl_t *p_ctrl, sf_crypto_signature_operation_state_t next_state) |
| SSP Crypto Signature Framework State transition validation for verify operation. More... | |
RTOS-integrated Crypto Signature Framework Module.
| #define SF_CRYPTO_SIGNATURE_CODE_VERSION_MAJOR (2U) |
The API version of SSP Crypto Signature Framework
Internal state codes for the SSP Crypto Signature framework module.
State codes for the SSP Crypto Signature framework module. Once the module is opened successfully, then the state is transition to OPENED state. After sign/verify operations, the Signature framework module must be closed with CLOSED state.
| Enumerator | |
|---|---|
| SF_CRYPTO_SIGNATURE_CLOSED | The Signature module is closed. |
| SF_CRYPTO_SIGNATURE_OPENED | The Signature module is opened. |
| ssp_err_t SF_CRYPTO_SIGNATURE_Close | ( | sf_crypto_signature_ctrl_t *const | p_api_ctrl | ) |
SSP Crypto Signature Framework Close operation.
| SSP_SUCCESS | The module was successfully closed. |
| SSP_ERR_ASSERTION | NULL is passed through the argument. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_NOT_OPEN | The module has yet been opened. Call Open API first. |
Check if the Crypto Framework has been opened. If not yet opened, return an error.
Close Crypto HAL module.
Decrement Open counter to indicate a (this) module is closed.
| ssp_err_t sf_crypto_signature_close_rsa | ( | sf_crypto_signature_instance_ctrl_t * | p_ctrl | ) |
Function for Crypto Signature Framework to close the RSA HAL driver. This function is called by sf_crypto_signature_hal_close().
| [in,out] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| SSP_SUCCESS | The module was successfully closed. |
| SSP_ERR_INTERNAL | Critical internal error. |
| ssp_err_t sf_crypto_signature_context_init_rsa | ( | sf_crypto_signature_instance_ctrl_t *const | p_ctrl, |
| sf_crypto_signature_mode_t | operation_mode, | ||
| sf_crypto_signature_algorithm_init_params_t *const | p_algorithm_specific_params, | ||
| sf_crypto_key_t const *const | p_key | ||
| ) |
Function for Crypto Signature Framework to initialize the Signature framework module context. This function is called by sf_crypto_signature_hal_context_init().
| [in,out] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | operation_mode | Perform Sign Or Verify operation. |
| [in] | p_algorithm_specific_params | Algorithm specific params. |
| [in] | p_key | Private key if sign operation is to be performed. Public key if verify operation is to be performed. |
| SSP_SUCCESS | The module context was successfully initialized. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_INVALID_CALL | Invalid call to this API. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_INVALID_OPERATION_MODE | Invalid operation mode requested. |
| ssp_err_t SF_CRYPTO_SIGNATURE_ContextInit | ( | sf_crypto_signature_ctrl_t *const | p_api_ctrl, |
| sf_crypto_signature_mode_t | operation_mode, | ||
| sf_crypto_signature_algorithm_init_params_t *const | p_algorithm_specific_params, | ||
| sf_crypto_key_t const *const | p_key | ||
| ) |
SSP Crypto Signature Framework Context Initialization operation.
| SSP_SUCCESS | The module context was successfully initialized. |
| SSP_ERR_ASSERTION | NULL is passed through the argument. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_INVALID_CALL | Invalid call to this API. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_INVALID_OPERATION_MODE | Invalid operation mode requested. |
Check if the Crypto Framework has been opened. If not yet opened, return an error.
Setup Context for HAL.
| ssp_err_t sf_crypto_signature_key_size_config_rsa | ( | sf_crypto_signature_cfg_t const *const | p_cfg | ) |
Function for Crypto Signature Framework to check configuration params - Key size. This function is called by sf_crypto_signature_validate_config().
| [in] | p_cfg | Pointer to sf_crypto_signature_cfg_t configuration structure. |
| SSP_SUCCESS | Valid RSA Key size. |
| SSP_ERR_INVALID_ARGUMENT | Invalid RSA Key size. |
| ssp_err_t SF_CRYPTO_SIGNATURE_Open | ( | sf_crypto_signature_ctrl_t *const | p_api_ctrl, |
| sf_crypto_signature_cfg_t const *const | p_cfg | ||
| ) |
SSP Crypto Signature Framework Open operation.
| SSP_SUCCESS | The module was successfully opened. |
| SSP_ERR_ASSERTION | NULL is passed through an argument. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_CRYPTO_COMMON_NOT_OPENED | Crypto Framework Common Module has yet been opened. |
| SSP_ERR_ALREADY_OPEN | The module has been already opened. |
| SSP_ERR_UNSUPPORTED | The module does not support the key type specified by user. |
Setup control block with common framework module (instance control and API).
Setup control block with Hash framework module (instance).
Check if Crypto Common module is opened before calling this API.
Check if SF Crypto Signature is already opened.
Validate configuration parameters.
Copy configuration parameters to control block.
Open Crypto HAL module.
Set Signature Framework module internal operation state to Open.
Set Signature Framework module status to Open.
Increment Open counter to indicate a (this) module is open.
| ssp_err_t sf_crypto_signature_open_rsa | ( | sf_crypto_signature_instance_ctrl_t *const | p_ctrl, |
| sf_crypto_signature_cfg_t const *const | p_cfg | ||
| ) |
Function for Crypto Signature Framework to open the RSA HAL driver. This function is called by sf_crypto_signature_hal_open().
| [in,out] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | p_cfg | Pointer to sf_crypto_signature_cfg_t configuration structure. |
| SSP_SUCCESS | The module was successfully opened. |
| SSP_ERR_INTERNAL | Critical internal error. |
| ssp_err_t sf_crypto_signature_sign_final_rsa | ( | sf_crypto_signature_instance_ctrl_t *const | p_ctrl, |
| sf_crypto_data_handle_t const *const | p_message, | ||
| sf_crypto_data_handle_t *const | p_dest | ||
| ) |
Function for Crypto Signature Framework to perform sign final operation. This function is called by sf_crypto_signature_hal_sign_final().
| [in,out] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | p_message | Pointer to data handle containing last block of data and its length. If there is no more data to be passed this param can be set to NULL. |
| [in,out] | p_dest | Pointer to data handle containing pointer to a buffer for storing signature. The data_length of this handle must be populated with the buffer length. Upon successful return this data_length will be updated with the number of bytes written to this buffer. |
| SSP_SUCCESS | Sign Final operation was performed successfully. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_CRYPTO_INVALID_SIZE | Not enough space to store signature. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
| ssp_err_t sf_crypto_signature_sign_update_rsa | ( | sf_crypto_signature_instance_ctrl_t *const | p_ctrl, |
| sf_crypto_data_handle_t const *const | p_message | ||
| ) |
Function for Crypto Signature Framework to perform sign update operation. This function is called by sf_crypto_signature_hal_sign_update().
| [in,out] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | p_message | Pointer to data handle containing update data and its length. |
| SSP_SUCCESS | Sign update was performed successfully. |
| SSP_ERR_ASSERTION | Critical internal error. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
| SSP_ERR_CRYPTO_INVALID_OPERATION_MODE | Invalid operation mode requested. |
| ssp_err_t SF_CRYPTO_SIGNATURE_SignFinal | ( | sf_crypto_signature_ctrl_t *const | p_api_ctrl, |
| sf_crypto_data_handle_t const *const | p_message, | ||
| sf_crypto_data_handle_t *const | p_dest | ||
| ) |
SSP Crypto Signature Framework Signature Final operation.
| SSP_SUCCESS | Sign Final operation was performed successfully. |
| SSP_ERR_ASSERTION | NULL is passed through the argument. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_INVALID_CALL | Invalid call to this API. |
| SSP_ERR_CRYPTO_INVALID_SIZE | Not enough space to store signature. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
Check if the Crypto Framework has been opened. If not yet opened, return an error.
Validate state transition.
Lock the module to access to Crypto HAL module.
Perform Sign Final.
Set Signature Framework internal state.
Unlock the module.
| ssp_err_t SF_CRYPTO_SIGNATURE_SignUpdate | ( | sf_crypto_signature_ctrl_t *const | p_api_ctrl, |
| sf_crypto_data_handle_t const *const | p_message | ||
| ) |
SSP Crypto Signature Framework Signature Update operation.
| SSP_SUCCESS | Sign update was performed successfully. |
| SSP_ERR_ASSERTION | NULL is passed through the argument. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_INVALID_CALL | Invalid call to this API. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
| SSP_ERR_CRYPTO_INVALID_OPERATION_MODE | Invalid operation mode requested. |
Check if the Crypto Framework has been opened. If not yet opened, return an error.
Validate state transition.
Lock the module to access to Crypto HAL module.
Perform Sign Update.
Set Signature Framework internal state.
Unlock the module.
| ssp_err_t sf_crypto_signature_validate_sign_operation_state_transition | ( | sf_crypto_signature_instance_ctrl_t * | p_ctrl, |
| sf_crypto_signature_operation_state_t | next_state | ||
| ) |
SSP Crypto Signature Framework State transition validation for sign operation.
| [in] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | next_state | Requested next state. |
| SSP_SUCCESS | Valid call to the calling API. |
| SSP_ERR_INVALID_CALL | Invalid call to the calling API. |
| ssp_err_t sf_crypto_signature_validate_verify_operation_state_transition | ( | sf_crypto_signature_instance_ctrl_t * | p_ctrl, |
| sf_crypto_signature_operation_state_t | next_state | ||
| ) |
SSP Crypto Signature Framework State transition validation for verify operation.
| [in] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | next_state | Requested next state. |
| SSP_SUCCESS | Valid call to the calling API. |
| SSP_ERR_INVALID_CALL | Invalid call to the calling API. |
| ssp_err_t sf_crypto_signature_verify_final_rsa | ( | sf_crypto_signature_instance_ctrl_t *const | p_ctrl, |
| sf_crypto_data_handle_t const *const | p_signature, | ||
| sf_crypto_data_handle_t const *const | p_message | ||
| ) |
Function for Crypto Signature Framework to perform verify final operation. This function is called by sf_crypto_signature_hal_verify_final().
| [in,out] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | p_signature | Pointer to data handle containing signature and its length. |
| [in] | p_message | Pointer to data handle containing message in appropriate format and its length. |
| SSP_SUCCESS | Verify Final operation was performed successfully. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_CRYPTO_INVALID_SIZE | Invalid signature length. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
| ssp_err_t sf_crypto_signature_verify_update_rsa | ( | sf_crypto_signature_instance_ctrl_t *const | p_ctrl, |
| sf_crypto_data_handle_t const *const | p_message | ||
| ) |
Function for Crypto Signature Framework to perform verify update operation. This function is called by sf_crypto_signature_hal_verify_update().
| [in,out] | p_ctrl | Pointer to Crypto Signature Framework instance control block structure. |
| [in] | p_message | Pointer to data handle containing message in appropriate format and its length. |
| SSP_SUCCESS | Verify update operation was performed successfully. |
| SSP_ERR_ASSERTION | Critical internal error. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
| SSP_ERR_CRYPTO_INVALID_OPERATION_MODE | Invalid operation mode requested. |
| ssp_err_t SF_CRYPTO_SIGNATURE_VerifyFinal | ( | sf_crypto_signature_ctrl_t *const | p_api_ctrl, |
| sf_crypto_data_handle_t const *const | p_signature, | ||
| sf_crypto_data_handle_t const *const | p_message | ||
| ) |
SSP Crypto Signature Framework Signature-Verification Update operation.
| SSP_SUCCESS | Verify final operation is performed successfully. |
| SSP_ERR_ASSERTION | NULL is passed through the argument. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_INVALID_CALL | Invalid call to this API. |
| SSP_ERR_CRYPTO_INVALID_SIZE | Invalid signature length. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
Check if the Crypto Framework has been opened. If not yet opened, return an error.
Validate state transition.
Lock the module to access to Crypto HAL module.
Perform Verify Final.
Set Signature Framework internal state.
Unlock the module.
| ssp_err_t SF_CRYPTO_SIGNATURE_VerifyUpdate | ( | sf_crypto_signature_ctrl_t *const | p_api_ctrl, |
| sf_crypto_data_handle_t const *const | p_message | ||
| ) |
SSP Crypto Signature Framework Signature-Verification Update operation.
| SSP_SUCCESS | Verify update operation was performed successfully. |
| SSP_ERR_ASSERTION | NULL is passed through the argument. |
| SSP_ERR_INTERNAL | Critical internal error. |
| SSP_ERR_INVALID_CALL | Invalid call to this API. |
| SSP_ERR_UNSUPPORTED | Invalid Hash module request. |
| SSP_ERR_CRYPTO_BUF_OVERFLOW | Update data exceeded the block size. |
| SSP_ERR_CRYPTO_INVALID_OPERATION_MODE | Invalid operation mode requested. |
Check if the Crypto Framework has been opened. If not yet opened, return an error.
Validate state transition.
Lock the module to access to Crypto HAL module.
Perform Verify Update.
Set Signature Framework internal state.
Unlock the module.
| ssp_err_t SF_CRYPTO_SIGNATURE_VersionGet | ( | ssp_version_t *const | p_version | ) |
Gets driver version based on compile time macros.
| SSP_SUCCESS | Function returned successfully. |
| SSP_ERR_ASSERTION | The parameter p_version is NULL. |