RA Flexible Software Package Documentation  Release v5.2.0

 
SCE Interface

Detailed Description

Interface for Secure Crypto Engine (SCE) functions.

Summary

The SCE interface provides SCE functionality.

The SCE interface can be implemented by:

Data Structures

struct  sce_byte_data_t
 
struct  sce_aes_wrapped_key_t
 
struct  sce_hmac_sha_wrapped_key_t
 
struct  sce_rsa1024_public_wrapped_key_t
 
struct  sce_rsa1024_private_wrapped_key_t
 
struct  sce_rsa2048_public_wrapped_key_t
 
struct  sce_rsa2048_private_wrapped_key_t
 
struct  sce_rsa3072_public_wrapped_key_t
 
struct  sce_rsa4096_public_wrapped_key_t
 
struct  sce_rsa1024_wrapped_pair_key_t
 
struct  sce_rsa2048_wrapped_pair_key_t
 
struct  sce_ecc_public_wrapped_key_t
 
struct  sce_ecc_private_wrapped_key_t
 
struct  sce_ecc_wrapped_pair_key_t
 
struct  sce_ecdh_wrapped_key_t
 
struct  sce_key_update_key_t
 
struct  sce_aes_handle_t
 
struct  sce_gcm_handle_t
 
struct  sce_ccm_handle_t
 
struct  sce_cmac_handle_t
 
struct  sce_sha_md5_handle_t
 
struct  sce_hmac_sha_handle_t
 
struct  sce_ecdh_handle_t
 
struct  sce_cfg_t
 
struct  sce_api_t
 
struct  sce_instance_t
 

Typedefs

typedef sce_byte_data_t sce_rsa_byte_data_t
 byte data More...
 
typedef sce_byte_data_t sce_ecdsa_byte_data_t
 byte data More...
 
typedef void sce_ctrl_t
 

Enumerations

enum  lifecycle_t
 

Data Structure Documentation

◆ sce_byte_data_t

struct sce_byte_data_t

Byte data structure

Data Fields
uint8_t * pdata pointer
uint32_t data_length data_length
uint32_t data_type data type

◆ sce_aes_wrapped_key_t

struct sce_aes_wrapped_key_t

AES wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type key type
uint32_t value[SCE_TLS_AES256_KEY_INDEX_WORD_SIZE] wrapped key value
Note
The size of the "value" array and the definition name depends on the used SCE. See the header file for detail.

◆ sce_hmac_sha_wrapped_key_t

struct sce_hmac_sha_wrapped_key_t

HMAC-SHA wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type key type
uint32_t value[SCE_TLS_HMAC_KEY_INDEX_WORD_SIZE] wrapped key value

◆ sce_rsa1024_public_wrapped_key_t

struct sce_rsa1024_public_wrapped_key_t

RSA 1024bit public wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type key type
struct sce_rsa1024_public_wrapped_key_t value

◆ sce_rsa1024_private_wrapped_key_t

struct sce_rsa1024_private_wrapped_key_t

RSA 1024bit private wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type key type
struct sce_rsa1024_private_wrapped_key_t value

◆ sce_rsa2048_public_wrapped_key_t

struct sce_rsa2048_public_wrapped_key_t

RSA 2048bit public wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type Key type.
struct sce_rsa2048_public_wrapped_key_t value

◆ sce_rsa2048_private_wrapped_key_t

struct sce_rsa2048_private_wrapped_key_t

RSA 2048bit private wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type key type
struct sce_rsa2048_private_wrapped_key_t value

◆ sce_rsa3072_public_wrapped_key_t

struct sce_rsa3072_public_wrapped_key_t

RSA 3072bit public wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type Key type.
struct sce_rsa3072_public_wrapped_key_t value

◆ sce_rsa4096_public_wrapped_key_t

struct sce_rsa4096_public_wrapped_key_t

RSA 4096bit public wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type Key type.
struct sce_rsa4096_public_wrapped_key_t value

◆ sce_rsa1024_wrapped_pair_key_t

struct sce_rsa1024_wrapped_pair_key_t

RSA 1024bit wrapped key pair structure. DO NOT MODIFY.

Data Fields
sce_rsa1024_private_wrapped_key_t priv_key RSA 1024-bit private wrapped key.
sce_rsa1024_public_wrapped_key_t pub_key RSA 1024-bit public wrapped key.

◆ sce_rsa2048_wrapped_pair_key_t

struct sce_rsa2048_wrapped_pair_key_t

RSA 2048bit wrapped key pair structure. DO NOT MODIFY.

Data Fields
sce_rsa2048_private_wrapped_key_t priv_key RSA 2048-bit private wrapped key.
sce_rsa2048_public_wrapped_key_t pub_key RSA 2048-bit public wrapped key.

◆ sce_ecc_public_wrapped_key_t

struct sce_ecc_public_wrapped_key_t

ECC P-192/224/256 public wrapped key data structure

Data Fields
uint32_t type key type
struct sce_ecc_public_wrapped_key_t value

◆ sce_ecc_private_wrapped_key_t

struct sce_ecc_private_wrapped_key_t

ECC P-192/224/256 private wrapped key data structure

Data Fields
uint32_t type key type
uint32_t value[HW_SCE_ECC_PRIVATE_KEY_MANAGEMENT_INFO_WORD_SIZE] wrapped key value

◆ sce_ecc_wrapped_pair_key_t

struct sce_ecc_wrapped_pair_key_t

ECC P-192/224/256 wrapped key pair structure

Data Fields
sce_ecc_private_wrapped_key_t priv_key ECC private wrapped key.
sce_ecc_public_wrapped_key_t pub_key ECC public wrapped key.

◆ sce_ecdh_wrapped_key_t

struct sce_ecdh_wrapped_key_t

ECDH wrapped key data structure

Data Fields
uint32_t type key type
uint32_t value[HW_SCE_SHARED_SECRET_KEY_INDEX_WORD_SIZE] wrapped key value

◆ sce_key_update_key_t

struct sce_key_update_key_t

Update key ring index data structure. DO NOT MODIFY.

Data Fields
uint32_t type key type
uint32_t value[HW_SCE_UPDATE_KEY_RING_INDEX_WORD_SIZE] wrapped key value
Note
The size of the "value" array and the definition name depends on the used SCE. See the header file for detail.

◆ sce_aes_handle_t

struct sce_aes_handle_t

The work area for AES. DO NOT MODIFY.

Data Fields
uint32_t id serial number of this handle
sce_aes_wrapped_key_t wrapped_key wrapped key
uint32_t current_input_data_size text size under encryption / decryption
uint8_t last_1_block_as_fraction[HW_SCE_AES_BLOCK_BYTE_SIZE] text array less than the block long
uint8_t last_2_block_as_fraction[HW_SCE_AES_BLOCK_BYTE_SIZE *2] reserved
uint8_t current_initial_vector[HW_SCE_AES_CBC_IV_BYTE_SIZE] current initialization vector used in CBC mode
uint8_t flag_call_init control flag of calling function

◆ sce_gcm_handle_t

struct sce_gcm_handle_t

The work area for GCM. DO NOT MODIFY.

Data Fields
uint32_t id serial number of this handle
sce_aes_wrapped_key_t wrapped_key wrapped key
uint8_t gcm_buffer[HW_SCE_AES_BLOCK_BYTE_SIZE] text array less than the block long
uint8_t gcm_aad_buffer[HW_SCE_AES_GCM_AAD_BLOCK_BYTE_SIZE] AAD array less than the block long.
uint32_t all_received_length entire length of text
uint32_t all_received_aad_length entire length of text
uint32_t buffering_length text array length less than the block long
uint32_t buffering_aad_length AAD array length less than the block long.
uint8_t flag_call_init control flag of calling function
uint8_t flag_update_input_data control flag of next input data

◆ sce_ccm_handle_t

struct sce_ccm_handle_t

The work area for CCM. DO NOT MODIFY.

Data Fields
uint32_t id serial number of this handle
sce_aes_wrapped_key_t wrapped_key wrapped key
uint8_t formatted_data[HW_SCE_AES_CCM_B_FORMAT_BYTE_SIZE] formatted data area
uint8_t counter[HW_SCE_AES_CCM_COUNTER_BYTE_SIZE] counter of CTR mode
uint8_t ccm_buffer[HW_SCE_AES_BLOCK_BYTE_SIZE] text array less than the block long
uint32_t all_received_length entire length of text
uint32_t buffering_length text array length less than the block long
uint8_t flag_call_init control flag of calling function

◆ sce_cmac_handle_t

struct sce_cmac_handle_t

The work area for CMAC. DO NOT MODIFY.

Data Fields
uint32_t id serial number of this handle
sce_aes_wrapped_key_t wrapped_key wrapped key
uint8_t cmac_buffer[HW_SCE_AES_BLOCK_BYTE_SIZE] message array less than the block long
uint32_t all_received_length entire length of message
uint32_t buffering_length message array length less than the block long
uint8_t flag_call_init control flag of calling function

◆ sce_sha_md5_handle_t

struct sce_sha_md5_handle_t

The work area for SHA. DO NOT MODIFY.

Data Fields
uint32_t id serial number of this handle
uint8_t sha_buffer[HW_SCE_SHA256_HASH_LENGTH_BYTE_SIZE *4] message array length less than the block long
uint32_t all_received_length entire length of message
uint32_t buffering_length message array length less than the block long
uint8_t current_hash[HW_SCE_SHA256_HASH_LENGTH_BYTE_SIZE] last hash value
uint8_t flag_call_init control flag of calling function

◆ sce_hmac_sha_handle_t

struct sce_hmac_sha_handle_t

The work area for HMAC-SHA. DO NOT MODIFY.

Data Fields
uint32_t id serial number of this handle
sce_hmac_sha_wrapped_key_t wrapped_key wrapped key
uint8_t hmac_buffer[HW_SCE_SHA256_HASH_LENGTH_BYTE_SIZE *4] message array length less than the block long
uint32_t all_received_length entire length of message
uint32_t buffering_length message array length less than the block long
uint8_t flag_call_init control flag of calling function

◆ sce_ecdh_handle_t

struct sce_ecdh_handle_t

The work area for ECDH

Data Fields
uint32_t id serial number of this handle
uint32_t flag_use_key_id control frag that the key_id has already used or not
uint32_t key_id serial number of the wrapped key
uint32_t key_type key type
uint8_t flag_call_init control flag of calling function
uint8_t flag_call_make_public control flag of calling function
uint8_t flag_call_read_public control flag of calling function
uint8_t flag_call_shared_secret control flag of calling function

◆ sce_cfg_t

struct sce_cfg_t

User configuration structure, used in open function

Data Fields
lifecycle_t lifecycle Data lifecycle.

◆ sce_api_t

struct sce_api_t

Functions implemented at the HAL layer will follow this API.

Data Fields

fsp_err_t(* open )(sce_ctrl_t *const p_ctrl, sce_cfg_t const *const p_cfg)
 
fsp_err_t(* close )(sce_ctrl_t *const p_ctrl)
 
fsp_err_t(* softwareReset )(void)
 
fsp_err_t(* randomNumberGenerate )(uint32_t *random)
 
fsp_err_t(* AES128_WrappedKeyGenerate )(sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES256_WrappedKeyGenerate )(sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES128_EncryptedKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES256_EncryptedKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES128_RFC3394KeyWrap )(sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, sce_aes_wrapped_key_t *target_key, uint32_t *rfc3394_wrapped_key)
 
fsp_err_t(* AES256_RFC3394KeyWrap )(sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, sce_aes_wrapped_key_t *target_key, uint32_t *rfc3394_wrapped_key)
 
fsp_err_t(* AES128_RFC3394KeyUnwrap )(sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, uint32_t *rfc3394_wrapped_key, sce_aes_wrapped_key_t *target_key)
 
fsp_err_t(* AES256_RFC3394KeyUnwrap )(sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, uint32_t *rfc3394_wrapped_key, sce_aes_wrapped_key_t *target_key)
 
fsp_err_t(* AES128ECB_EncryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES128ECB_EncryptUpdate )(sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)
 
fsp_err_t(* AES128ECB_EncryptFinal )(sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)
 
fsp_err_t(* AES128ECB_DecryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES128ECB_DecryptUpdate )(sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)
 
fsp_err_t(* AES128ECB_DecryptFinal )(sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)
 
fsp_err_t(* AES256ECB_EncryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES256ECB_EncryptUpdate )(sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)
 
fsp_err_t(* AES256ECB_EncryptFinal )(sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)
 
fsp_err_t(* AES256ECB_DecryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES256ECB_DecryptUpdate )(sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)
 
fsp_err_t(* AES256ECB_DecryptFinal )(sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)
 
fsp_err_t(* AES128CBC_EncryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)
 
fsp_err_t(* AES128CBC_EncryptUpdate )(sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)
 
fsp_err_t(* AES128CBC_EncryptFinal )(sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)
 
fsp_err_t(* AES128CBC_DecryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)
 
fsp_err_t(* AES128CBC_DecryptUpdate )(sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)
 
fsp_err_t(* AES128CBC_DecryptFinal )(sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)
 
fsp_err_t(* AES256CBC_EncryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)
 
fsp_err_t(* AES256CBC_EncryptUpdate )(sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)
 
fsp_err_t(* AES256CBC_EncryptFinal )(sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)
 
fsp_err_t(* AES256CBC_DecryptInit )(sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)
 
fsp_err_t(* AES256CBC_DecryptUpdate )(sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)
 
fsp_err_t(* AES256CBC_DecryptFinal )(sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)
 
fsp_err_t(* AES128GCM_EncryptInit )(sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)
 
fsp_err_t(* AES128GCM_EncryptUpdate )(sce_gcm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_data_length, uint8_t *aad, uint32_t aad_length)
 
fsp_err_t(* AES128GCM_EncryptFinal )(sce_gcm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_data_length, uint8_t *atag)
 
fsp_err_t(* AES128GCM_DecryptInit )(sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)
 
fsp_err_t(* AES128GCM_DecryptUpdate )(sce_gcm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_data_length, uint8_t *aad, uint32_t aad_length)
 
fsp_err_t(* AES128GCM_DecryptFinal )(sce_gcm_handle_t *handle, uint8_t *plain, uint32_t *plain_data_length, uint8_t *atag, uint32_t atag_length)
 
fsp_err_t(* AES256GCM_EncryptInit )(sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)
 
fsp_err_t(* AES256GCM_EncryptUpdate )(sce_gcm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_data_length, uint8_t *aad, uint32_t aad_length)
 
fsp_err_t(* AES256GCM_EncryptFinal )(sce_gcm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_data_length, uint8_t *atag)
 
fsp_err_t(* AES256GCM_DecryptInit )(sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)
 
fsp_err_t(* AES256GCM_DecryptUpdate )(sce_gcm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_data_length, uint8_t *aad, uint32_t aad_length)
 
fsp_err_t(* AES256GCM_DecryptFinal )(sce_gcm_handle_t *handle, uint8_t *plain, uint32_t *plain_data_length, uint8_t *atag, uint32_t atag_length)
 
fsp_err_t(* AES128CCM_EncryptInit )(sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)
 
fsp_err_t(* AES128CCM_EncryptUpdate )(sce_ccm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)
 
fsp_err_t(* AES128CCM_EncryptFinal )(sce_ccm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length, uint8_t *mac, uint32_t mac_length)
 
fsp_err_t(* AES128CCM_DecryptInit )(sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)
 
fsp_err_t(* AES128CCM_DecryptUpdate )(sce_ccm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)
 
fsp_err_t(* AES128CCM_DecryptFinal )(sce_ccm_handle_t *handle, uint8_t *plain, uint32_t *plain_length, uint8_t *mac, uint32_t mac_length)
 
fsp_err_t(* AES256CCM_EncryptInit )(sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)
 
fsp_err_t(* AES256CCM_EncryptUpdate )(sce_ccm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)
 
fsp_err_t(* AES256CCM_EncryptFinal )(sce_ccm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length, uint8_t *mac, uint32_t mac_length)
 
fsp_err_t(* AES256CCM_DecryptInit )(sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)
 
fsp_err_t(* AES256CCM_DecryptUpdate )(sce_ccm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)
 
fsp_err_t(* AES256CCM_DecryptFinal )(sce_ccm_handle_t *handle, uint8_t *plain, uint32_t *plain_length, uint8_t *mac, uint32_t mac_length)
 
fsp_err_t(* AES128CMAC_GenerateInit )(sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES128CMAC_GenerateUpdate )(sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)
 
fsp_err_t(* AES128CMAC_GenerateFinal )(sce_cmac_handle_t *handle, uint8_t *mac)
 
fsp_err_t(* AES128CMAC_VerifyInit )(sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES128CMAC_VerifyUpdate )(sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)
 
fsp_err_t(* AES128CMAC_VerifyFinal )(sce_cmac_handle_t *handle, uint8_t *mac, uint32_t mac_length)
 
fsp_err_t(* AES256CMAC_GenerateInit )(sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES256CMAC_GenerateUpdate )(sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)
 
fsp_err_t(* AES256CMAC_GenerateFinal )(sce_cmac_handle_t *handle, uint8_t *mac)
 
fsp_err_t(* AES256CMAC_VerifyInit )(sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* AES256CMAC_VerifyUpdate )(sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)
 
fsp_err_t(* AES256CMAC_VerifyFinal )(sce_cmac_handle_t *handle, uint8_t *mac, uint32_t mac_length)
 
fsp_err_t(* SHA256_Init )(sce_sha_md5_handle_t *handle)
 
fsp_err_t(* SHA256_Update )(sce_sha_md5_handle_t *handle, uint8_t *message, uint32_t message_length)
 
fsp_err_t(* SHA256_Final )(sce_sha_md5_handle_t *handle, uint8_t *digest, uint32_t *digest_length)
 
fsp_err_t(* RSA1024_WrappedKeyPairGenerate )(sce_rsa1024_wrapped_pair_key_t *wrapped_pair_key)
 
fsp_err_t(* RSA2048_WrappedKeyPairGenerate )(sce_rsa2048_wrapped_pair_key_t *wrapped_pair_key)
 
fsp_err_t(* RSA1024_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa1024_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSA1024_EncryptedPrivateKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa1024_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSA2048_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa2048_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSA2048_EncryptedPrivateKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa2048_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSA3072_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa3072_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSA4096_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa4096_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSASSA_PKCS1024_SignatureGenerate )(sce_rsa_byte_data_t *message_hash, sce_rsa_byte_data_t *signature, sce_rsa1024_private_wrapped_key_t *wrapped_key, uint8_t hash_type)
 
fsp_err_t(* RSASSA_PKCS2048_SignatureGenerate )(sce_rsa_byte_data_t *message_hash, sce_rsa_byte_data_t *signature, sce_rsa2048_private_wrapped_key_t *wrapped_key, uint8_t hash_type)
 
fsp_err_t(* RSASSA_PKCS1024_SignatureVerify )(sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa1024_public_wrapped_key_t *wrapped_key, uint8_t hash_type)
 
fsp_err_t(* RSASSA_PKCS2048_SignatureVerify )(sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa2048_public_wrapped_key_t *wrapped_key, uint8_t hash_type)
 
fsp_err_t(* RSASSA_PKCS3072_SignatureVerify )(sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa3072_public_wrapped_key_t *wrapped_key, uint8_t hash_type)
 
fsp_err_t(* RSASSA_PKCS4096_SignatureVerify )(sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa4096_public_wrapped_key_t *wrapped_key, uint8_t hash_type)
 
fsp_err_t(* RSAES_PKCS1024_Encrypt )(sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa1024_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSAES_PKCS2048_Encrypt )(sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa2048_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSAES_PKCS3072_Encrypt )(sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa3072_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSAES_PKCS4096_Encrypt )(sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa4096_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSAES_PKCS1024_Decrypt )(sce_rsa_byte_data_t *cipher, sce_rsa_byte_data_t *plain, sce_rsa1024_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* RSAES_PKCS2048_Decrypt )(sce_rsa_byte_data_t *cipher, sce_rsa_byte_data_t *plain, sce_rsa2048_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* SHA256HMAC_EncryptedKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_hmac_sha_wrapped_key_t *wrapped_key)
 
fsp_err_t(* SHA256HMAC_GenerateInit )(sce_hmac_sha_handle_t *handle, sce_hmac_sha_wrapped_key_t *wrapped_key)
 
fsp_err_t(* SHA256HMAC_GenerateUpdate )(sce_hmac_sha_handle_t *handle, uint8_t *message, uint32_t message_length)
 
fsp_err_t(* SHA256HMAC_GenerateFinal )(sce_hmac_sha_handle_t *handle, uint8_t *mac)
 
fsp_err_t(* SHA256HMAC_VerifyInit )(sce_hmac_sha_handle_t *handle, sce_hmac_sha_wrapped_key_t *wrapped_key)
 
fsp_err_t(* SHA256HMAC_VerifyUpdate )(sce_hmac_sha_handle_t *handle, uint8_t *message, uint32_t message_length)
 
fsp_err_t(* SHA256HMAC_VerifyFinal )(sce_hmac_sha_handle_t *handle, uint8_t *mac, uint32_t mac_length)
 
fsp_err_t(* ECC_secp192r1_WrappedKeyPairGenerate )(sce_ecc_wrapped_pair_key_t *wrapped_pair_key)
 
fsp_err_t(* ECC_secp224r1_WrappedKeyPairGenerate )(sce_ecc_wrapped_pair_key_t *wrapped_pair_key)
 
fsp_err_t(* ECC_secp256r1_WrappedKeyPairGenerate )(sce_ecc_wrapped_pair_key_t *wrapped_pair_key)
 
fsp_err_t(* ECC_secp384r1_WrappedKeyPairGenerate )(sce_ecc_wrapped_pair_key_t *wrapped_pair_key)
 
fsp_err_t(* ECC_secp192r1_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECC_secp224r1_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECC_secp256r1_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECC_secp384r1_EncryptedPublicKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECC_secp192r1_EncryptedPrivateKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECC_secp224r1_EncryptedPrivateKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECC_secp256r1_EncryptedPrivateKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECC_secp384r1_EncryptedPrivateKeyWrap )(uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp192r1_SignatureGenerate )(sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp224r1_SignatureGenerate )(sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp256r1_SignatureGenerate )(sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp384r1_SignatureGenerate )(sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp192r1_SignatureVerify )(sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp224r1_SignatureVerify )(sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp256r1_SignatureVerify )(sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDSA_secp384r1_SignatureVerify )(sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDH_secp256r1_Init )(sce_ecdh_handle_t *handle, uint32_t key_type, uint32_t use_key_id)
 
fsp_err_t(* ECDH_secp256r1_PublicKeySign )(sce_ecdh_handle_t *handle, sce_ecc_public_wrapped_key_t *ecc_public_wrapped_key, sce_ecc_private_wrapped_key_t *ecc_private_wrapped_key, uint8_t *public_key, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDH_secp256r1_PublicKeyVerify )(sce_ecdh_handle_t *handle, sce_ecc_public_wrapped_key_t *ecc_public_wrapped_key, uint8_t *public_key_data, sce_ecdsa_byte_data_t *signature, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDH_secp256r1_PublicKeyReadWithoutSignature )(sce_ecdh_handle_t *handle, uint8_t *public_key_data, sce_ecc_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* ECDH_secp256r1_SharedSecretCalculate )(sce_ecdh_handle_t *handle, sce_ecc_public_wrapped_key_t *ecc_public_wrapped_key, sce_ecc_private_wrapped_key_t *ecc_private_wrapped_key, sce_ecdh_wrapped_key_t *shared_secret_wrapped_key)
 
fsp_err_t(* ECDH_secp256r1_KeyDerivation )(sce_ecdh_handle_t *handle, sce_ecdh_wrapped_key_t *shared_secret_wrapped_key, uint32_t key_type, uint32_t kdf_type, uint8_t *other_info, uint32_t other_info_length, sce_hmac_sha_wrapped_key_t *salt_wrapped_key, sce_aes_wrapped_key_t *wrapped_key)
 
fsp_err_t(* TLS_RootCertificateRSA2048PublicKeyInstall )(uint8_t *encrypted_provisioning_key, uint8_t *initial_vector, uint8_t *encrypted_key, sce_tls_ca_certification_public_wrapped_key_t *wrapped_key)
 
fsp_err_t(* TLS_ECC_secp256r1_EphemeralWrappedKeyPairGenerate )(sce_tls_p256_ecc_wrapped_key_t *tls_p256_ecc_wrapped_key, uint8_t *ephemeral_ecdh_public_key)
 
fsp_err_t(* TLS_RootCertificateVerify )(uint32_t public_key_type, uint8_t *certificate, uint32_t certificate_length, uint32_t public_key_n_start_position, uint32_t public_key_n_end_position, uint32_t public_key_e_start_position, uint32_t public_key_e_end_position, uint8_t *signature, uint32_t *encrypted_root_public_key)
 
fsp_err_t(* TLS_CertificateVerify )(uint32_t public_key_type, uint32_t *encrypted_input_public_key, uint8_t *certificate, uint32_t certificate_length, uint8_t *signature, uint32_t public_key_n_start_position, uint32_t public_key_n_end_position, uint32_t public_key_e_start_position, uint32_t public_key_e_end_position, uint32_t *encrypted_output_public_key)
 
fsp_err_t(* TLS_PreMasterSecretGenerateForRSA2048 )(uint32_t *sce_pre_master_secret)
 
fsp_err_t(* TLS_MasterSecretGenerate )(uint32_t select_cipher_suite, uint32_t *sce_pre_master_secret, uint8_t *client_random, uint8_t *server_random, uint32_t *sce_master_secret)
 
fsp_err_t(* TLS_PreMasterSecretEncryptWithRSA2048 )(uint32_t *encrypted_public_key, uint32_t *sce_pre_master_secret, uint8_t *encrypted_pre_master_secret)
 
fsp_err_t(* TLS_SessionKeyGenerate )(uint32_t select_cipher_suite, uint32_t *sce_master_secret, uint8_t *client_random, uint8_t *server_random, uint8_t *nonce_explicit, sce_hmac_sha_wrapped_key_t *client_mac_wrapped_key, sce_hmac_sha_wrapped_key_t *server_mac_wrapped_key, sce_aes_wrapped_key_t *client_crypto_wrapped_key, sce_aes_wrapped_key_t *server_crypto_wrapped_key, uint8_t *client_initial_vector, uint8_t *server_initial_vector)
 
fsp_err_t(* TLS_VerifyDataGenerate )(uint32_t select_verify_data, uint32_t *sce_master_secret, uint8_t *hand_shake_hash, uint8_t *verify_data)
 
fsp_err_t(* TLS_ServerKeyExchangeVerify )(uint32_t public_key_type, uint8_t *client_random, uint8_t *server_random, uint8_t *server_ephemeral_ecdh_public_key, uint8_t *server_key_exchange_signature, uint32_t *encrypted_public_key, uint32_t *encrypted_ephemeral_ecdh_public_key)
 
fsp_err_t(* TLS_PreMasterSecretGenerateForECC_secp256r1 )(uint32_t *encrypted_public_key, sce_tls_p256_ecc_wrapped_key_t *tls_p256_ecc_wrapped_key, uint32_t *sce_pre_master_secret)
 

Field Documentation

◆ open

fsp_err_t(* sce_api_t::open) (sce_ctrl_t *const p_ctrl, sce_cfg_t const *const p_cfg)

Enables use of SCE functionality.

Implemented as
Parameters
[in]p_ctrlPointer to control structure.
[in]p_cfgPointer to pin configuration structure.

◆ close

fsp_err_t(* sce_api_t::close) (sce_ctrl_t *const p_ctrl)

Stops supply of power to the SCE.

Implemented as
Parameters
[in]p_ctrlPointer to control structure.

◆ softwareReset

fsp_err_t(* sce_api_t::softwareReset) (void)

Software reset to SCE.

Implemented as

◆ randomNumberGenerate

fsp_err_t(* sce_api_t::randomNumberGenerate) (uint32_t *random)

Generates 4 words random number.

Implemented as
Parameters
[in,out]randomStores 4words (16 bytes) random data.

◆ AES128_WrappedKeyGenerate

fsp_err_t(* sce_api_t::AES128_WrappedKeyGenerate) (sce_aes_wrapped_key_t *wrapped_key)

This API outputs 128-bit AES wrapped key.

Implemented as
Parameters
[in,out]wrapped_key128-bit AES wrapped key

◆ AES256_WrappedKeyGenerate

fsp_err_t(* sce_api_t::AES256_WrappedKeyGenerate) (sce_aes_wrapped_key_t *wrapped_key)

This API outputs 256-bit AES wrapped key.

Implemented as
Parameters
[in,out]wrapped_key256-bit AES wrapped key

◆ AES128_EncryptedKeyWrap

fsp_err_t(* sce_api_t::AES128_EncryptedKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_aes_wrapped_key_t *wrapped_key)

This API outputs 128-bit AES wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key128-bit AES wrapped key

◆ AES256_EncryptedKeyWrap

fsp_err_t(* sce_api_t::AES256_EncryptedKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_aes_wrapped_key_t *wrapped_key)

This API outputs 256-bit AES wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key256-bit AES wrapped key

◆ AES128_RFC3394KeyWrap

fsp_err_t(* sce_api_t::AES128_RFC3394KeyWrap) (sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, sce_aes_wrapped_key_t *target_key, uint32_t *rfc3394_wrapped_key)

This API outputs 128-bit AES wrapped key.

Implemented as
Parameters
[in]master_keyAES-128 key used for wrapping.
[in]target_key_typeSelects key to be wrapped.
[in]target_keyKey to be wrapped.
[out]rfc3394_wrapped_keyWrapped key.

◆ AES256_RFC3394KeyWrap

fsp_err_t(* sce_api_t::AES256_RFC3394KeyWrap) (sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, sce_aes_wrapped_key_t *target_key, uint32_t *rfc3394_wrapped_key)

This API outputs 256-bit AES wrapped key.

Implemented as
Parameters
[in]master_keyAES-256 key used for wrapping.
[in]target_key_typeSelects key to be wrapped.
[in]target_keyKey to be wrapped.
[out]rfc3394_wrapped_keyWrapped key.

◆ AES128_RFC3394KeyUnwrap

fsp_err_t(* sce_api_t::AES128_RFC3394KeyUnwrap) (sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, uint32_t *rfc3394_wrapped_key, sce_aes_wrapped_key_t *target_key)

This API outputs 128-bit AES unwrapped key.

Implemented as
Parameters
[in]master_keyAES-128 key used for unwrapping.
[in]target_key_typeSelects key to be unwrapped.
[in]rfc3394_wrapped_keyWrapped key.
[out]target_keyKey to be unwrapped.

◆ AES256_RFC3394KeyUnwrap

fsp_err_t(* sce_api_t::AES256_RFC3394KeyUnwrap) (sce_aes_wrapped_key_t *master_key, uint32_t target_key_type, uint32_t *rfc3394_wrapped_key, sce_aes_wrapped_key_t *target_key)

This API outputs 256-bit AES unwrapped key.

Implemented as
Parameters
[in]master_keyAES-256 key used for unwrapping.
[in]target_key_typeSelects key to be unwrapped.
[in]rfc3394_wrapped_keyWrapped key.
[out]target_keyKey to be unwrapped.

◆ AES128ECB_EncryptInit

fsp_err_t(* sce_api_t::AES128ECB_EncryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES128ECB encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key128-bit AES wrapped key

◆ AES128ECB_EncryptUpdate

fsp_err_t(* sce_api_t::AES128ECB_EncryptUpdate) (sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)

Update AES128ECB encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in,out]plain_lengthplaintext data length (must be a multiple of 16)

◆ AES128ECB_EncryptFinal

fsp_err_t(* sce_api_t::AES128ECB_EncryptFinal) (sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)

Finalize AES128ECB encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]cipherciphertext data area (nothing ever written here)
[in,out]cipher_lengthciphertext data length (0 always written here)

◆ AES128ECB_DecryptInit

fsp_err_t(* sce_api_t::AES128ECB_DecryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES128ECB decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key128-bit AES wrapped key

◆ AES128ECB_DecryptUpdate

fsp_err_t(* sce_api_t::AES128ECB_DecryptUpdate) (sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)

Update AES128ECB decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]cipherciphertext data area
[in,out]plainplaintext data area
[in,out]cipher_lengthciphertext data length (must be a multiple of 16)

◆ AES128ECB_DecryptFinal

fsp_err_t(* sce_api_t::AES128ECB_DecryptFinal) (sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)

Finalize AES128ECB decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]plainplaintext data area (nothing ever written here)
[in,out]plain_lengthplaintext data length (0 always written here)

◆ AES256ECB_EncryptInit

fsp_err_t(* sce_api_t::AES256ECB_EncryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES256ECB encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key256-bit AES wrapped key

◆ AES256ECB_EncryptUpdate

fsp_err_t(* sce_api_t::AES256ECB_EncryptUpdate) (sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)

Update AES256ECB encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in,out]plain_lengthplaintext data length (must be a multiple of 16)

◆ AES256ECB_EncryptFinal

fsp_err_t(* sce_api_t::AES256ECB_EncryptFinal) (sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)

Finalize AES256ECB encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]cipherciphertext data area (nothing ever written here)
[in,out]cipher_lengthciphertext data length (0 always written here)

◆ AES256ECB_DecryptInit

fsp_err_t(* sce_api_t::AES256ECB_DecryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES256ECB decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key256-bit AES wrapped key

◆ AES256ECB_DecryptUpdate

fsp_err_t(* sce_api_t::AES256ECB_DecryptUpdate) (sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)

Update AES256ECB decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]cipherciphertext data area
[in,out]plainplaintext data area
[in,out]cipher_lengthciphertext data length (must be a multiple of 16)

◆ AES256ECB_DecryptFinal

fsp_err_t(* sce_api_t::AES256ECB_DecryptFinal) (sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)

Finalize AES256ECB decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]plainplaintext data area (nothing ever written here)
[in,out]plain_lengthplaintext data length (0 always written here)

◆ AES128CBC_EncryptInit

fsp_err_t(* sce_api_t::AES128CBC_EncryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)

Initialize AES128CBC encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key128-bit AES wrapped key
[in]initial_vectorinitial vector area (16byte)

◆ AES128CBC_EncryptUpdate

fsp_err_t(* sce_api_t::AES128CBC_EncryptUpdate) (sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)

Update AES128CBC encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in,out]plain_lengthplaintext data length (must be a multiple of 16)

◆ AES128CBC_EncryptFinal

fsp_err_t(* sce_api_t::AES128CBC_EncryptFinal) (sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)

Finalize AES128CBC encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]cipherciphertext data area (nothing ever written here)
[in,out]cipher_lengthciphertext data length (0 always written here)

◆ AES128CBC_DecryptInit

fsp_err_t(* sce_api_t::AES128CBC_DecryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)

Initialize AES128CBC decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key128-bit AES wrapped key
[in]initial_vectorinitial vector area (16byte)

◆ AES128CBC_DecryptUpdate

fsp_err_t(* sce_api_t::AES128CBC_DecryptUpdate) (sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)

Update AES128CBC decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]cipherciphertext data area
[in,out]plainplaintext data area
[in,out]cipher_lengthciphertext data length (must be a multiple of 16)

◆ AES128CBC_DecryptFinal

fsp_err_t(* sce_api_t::AES128CBC_DecryptFinal) (sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)

Finalize AES128CBC decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]plainplaintext data area (nothing ever written here)
[in,out]plain_lengthplaintext data length (0 always written here)

◆ AES256CBC_EncryptInit

fsp_err_t(* sce_api_t::AES256CBC_EncryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)

Initialize AES256CBC encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key256-bit AES wrapped key
[in]initial_vectorinitial vector area (16byte)

◆ AES256CBC_EncryptUpdate

fsp_err_t(* sce_api_t::AES256CBC_EncryptUpdate) (sce_aes_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)

Update AES256CBC encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in,out]plain_lengthplaintext data length (must be a multiple of 16)

◆ AES256CBC_EncryptFinal

fsp_err_t(* sce_api_t::AES256CBC_EncryptFinal) (sce_aes_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length)

Finalize AES256CBC encryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]cipherciphertext data area (nothing ever written here)
[in,out]cipher_lengthciphertext data length (0 always written here)

◆ AES256CBC_DecryptInit

fsp_err_t(* sce_api_t::AES256CBC_DecryptInit) (sce_aes_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector)

Initialize AES256CBC decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]wrapped_key256-bit AES wrapped key
[in]initial_vectorinitial vector area (16byte)

◆ AES256CBC_DecryptUpdate

fsp_err_t(* sce_api_t::AES256CBC_DecryptUpdate) (sce_aes_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)

Update AES256CBC decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in]cipherciphertext data area
[in,out]plainplaintext data area
[in,out]cipher_lengthciphertext data length (must be a multiple of 16)

◆ AES256CBC_DecryptFinal

fsp_err_t(* sce_api_t::AES256CBC_DecryptFinal) (sce_aes_handle_t *handle, uint8_t *plain, uint32_t *plain_length)

Finalize AES256CBC decryption.

Implemented as
Parameters
[in,out]handleAES handler (work area)
[in,out]plainplaintext data area (nothing ever written here)
[in,out]plain_lengthplaintext data length (0 always written here)

◆ AES128GCM_EncryptInit

fsp_err_t(* sce_api_t::AES128GCM_EncryptInit) (sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)

Initialize AES128GCM encryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in]wrapped_key128-bit AES wrapped key
[in]initial_vectorinitialization vector area (initial_vector_length byte)
[in]initial_vector_lengthinitialization vector length (1 ore more bytes)

◆ AES128GCM_EncryptUpdate

fsp_err_t(* sce_api_t::AES128GCM_EncryptUpdate) (sce_gcm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_data_length, uint8_t *aad, uint32_t aad_length)

Update AES128GCM encryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in]plain_data_lengthplaintext data length (0 or more bytes)
[in]aadadditional authentication data (aad_length byte)
[in]aad_lengthadditional authentication data length (0 or more bytes)

◆ AES128GCM_EncryptFinal

fsp_err_t(* sce_api_t::AES128GCM_EncryptFinal) (sce_gcm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_data_length, uint8_t *atag)

Finalize AES128GCM encryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in,out]cipherciphertext data area (cipher_data_length byte)
[in,out]cipher_data_lengthciphertext data length (0 always written here)
[in,out]atagauthentication tag area

◆ AES128GCM_DecryptInit

fsp_err_t(* sce_api_t::AES128GCM_DecryptInit) (sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)

Initialize AES128GCM decryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in]wrapped_key128-bit AES wrapped key
[in]initial_vectorinitialization vector area (initial_vector_length byte)
[in]initial_vector_lengthinitialization vector length (1 ore more bytes)

◆ AES128GCM_DecryptUpdate

fsp_err_t(* sce_api_t::AES128GCM_DecryptUpdate) (sce_gcm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_data_length, uint8_t *aad, uint32_t aad_length)

Update AES128GCM decryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in,out]cipherciphertext data area
[in]plainplaintext data area
[in]cipher_data_lengthciphertext data length (0 or more bytes)
[in]aadadditional authentication data (aad_length byte)
[in]aad_lengthadditional authentication data length (0 or more bytes)

◆ AES128GCM_DecryptFinal

fsp_err_t(* sce_api_t::AES128GCM_DecryptFinal) (sce_gcm_handle_t *handle, uint8_t *plain, uint32_t *plain_data_length, uint8_t *atag, uint32_t atag_length)

Finalize AES128GCM decryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in,out]plainplaintext data area (cipher_data_length byte)
[in,out]plain_data_lengthplaintext data length (0 always written here)
[in,out]atagauthentication tag area (atag_length byte)
[in]atag_lengthauthentication tag length (4,8,12,13,14,15,16 bytes)

◆ AES256GCM_EncryptInit

fsp_err_t(* sce_api_t::AES256GCM_EncryptInit) (sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)

Initialize AES256GCM encryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in]wrapped_key256-bit AES wrapped key
[in]initial_vectorinitialization vector area (initial_vector_length byte)
[in]initial_vector_lengthinitialization vector length (1 ore more bytes)

◆ AES256GCM_EncryptUpdate

fsp_err_t(* sce_api_t::AES256GCM_EncryptUpdate) (sce_gcm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_data_length, uint8_t *aad, uint32_t aad_length)

Update AES256GCM encryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in]plain_data_lengthplaintext data length (0 or more bytes)
[in]aadadditional authentication data (aad_length byte)
[in]aad_lengthadditional authentication data length (0 or more bytes)

◆ AES256GCM_EncryptFinal

fsp_err_t(* sce_api_t::AES256GCM_EncryptFinal) (sce_gcm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_data_length, uint8_t *atag)

Finalize AES256GCM encryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in,out]cipherciphertext data area (cipher_data_length byte)
[in,out]cipher_data_lengthciphertext data length (0 always written here)
[in,out]atagauthentication tag area

◆ AES256GCM_DecryptInit

fsp_err_t(* sce_api_t::AES256GCM_DecryptInit) (sce_gcm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *initial_vector, uint32_t initial_vector_length)

Initialize AES256GCM decryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in]wrapped_key256-bit AES wrapped key
[in]initial_vectorinitialization vector area (initial_vector_length byte)
[in]initial_vector_lengthinitialization vector length (1 ore more bytes)

◆ AES256GCM_DecryptUpdate

fsp_err_t(* sce_api_t::AES256GCM_DecryptUpdate) (sce_gcm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_data_length, uint8_t *aad, uint32_t aad_length)

Update AES256GCM decryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in,out]cipherciphertext data area
[in]plainplaintext data area
[in]cipher_data_lengthciphertext data length (0 or more bytes)
[in]aadadditional authentication data (aad_length byte)
[in]aad_lengthadditional authentication data length (0 or more bytes)

◆ AES256GCM_DecryptFinal

fsp_err_t(* sce_api_t::AES256GCM_DecryptFinal) (sce_gcm_handle_t *handle, uint8_t *plain, uint32_t *plain_data_length, uint8_t *atag, uint32_t atag_length)

Finalize AES256GCM decryption.

Implemented as
Parameters
[in,out]handleAES-GCM handler (work area)
[in,out]plainplaintext data area (cipher_data_length byte)
[in,out]plain_data_lengthplaintext data length (0 always written here)
[in,out]atagauthentication tag area (atag_length byte)
[in]atag_lengthauthentication tag length (4,8,12,13,14,15,16 bytes)

◆ AES128CCM_EncryptInit

fsp_err_t(* sce_api_t::AES128CCM_EncryptInit) (sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)

Initialize AES128CCM encryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]wrapped_key128-bit AES wrapped key
[in]nonceNonce
[in]nonce_lengthNonce data length (7 to 13 bytes)
[in]adataadditional authentication data
[in]a_lengthadditional authentication data length (0 to 110 bytes)
[in]payload_lengthPayload length (any number of bytes)
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES128CCM_EncryptUpdate

fsp_err_t(* sce_api_t::AES128CCM_EncryptUpdate) (sce_ccm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)

Update AES128CCM encryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in]plain_lengthplaintext data length

◆ AES128CCM_EncryptFinal

fsp_err_t(* sce_api_t::AES128CCM_EncryptFinal) (sce_ccm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length, uint8_t *mac, uint32_t mac_length)

Finalize AES128CCM encryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in,out]cipherciphertext data area
[in,out]cipher_lengthciphertext data length
[in,out]macMAC area
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES128CCM_DecryptInit

fsp_err_t(* sce_api_t::AES128CCM_DecryptInit) (sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)

Initialize AES128CCM decryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]wrapped_key128-bit AES wrapped key
[in]nonceNonce
[in]nonce_lengthNonce data length (7 to 13 bytes)
[in]adataadditional authentication data
[in]a_lengthadditional authentication data length (0 to 110 bytes)
[in]payload_lengthPayload length (any number of bytes)
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES128CCM_DecryptUpdate

fsp_err_t(* sce_api_t::AES128CCM_DecryptUpdate) (sce_ccm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)

Update AES128CCM decryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]cipherciphertext data area
[in,out]plainplaintext data area
[in]cipher_lengthciphertext data length

◆ AES128CCM_DecryptFinal

fsp_err_t(* sce_api_t::AES128CCM_DecryptFinal) (sce_ccm_handle_t *handle, uint8_t *plain, uint32_t *plain_length, uint8_t *mac, uint32_t mac_length)

Finalize AES128CCM decryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in,out]plainplaintext data area
[in,out]plain_lengthplaintext data length
[in]macMAC area
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES256CCM_EncryptInit

fsp_err_t(* sce_api_t::AES256CCM_EncryptInit) (sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)

Initialize AES256CCM encryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]wrapped_key256-bit AES wrapped key
[in]nonceNonce
[in]nonce_lengthNonce data length (7 to 13 bytes)
[in]adataadditional authentication data
[in]a_lengthadditional authentication data length (0 to 110 bytes)
[in]payload_lengthPayload length (any number of bytes)
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES256CCM_EncryptUpdate

fsp_err_t(* sce_api_t::AES256CCM_EncryptUpdate) (sce_ccm_handle_t *handle, uint8_t *plain, uint8_t *cipher, uint32_t plain_length)

Update AES256CCM encryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]plainplaintext data area
[in,out]cipherciphertext data area
[in]plain_lengthplaintext data length

◆ AES256CCM_EncryptFinal

fsp_err_t(* sce_api_t::AES256CCM_EncryptFinal) (sce_ccm_handle_t *handle, uint8_t *cipher, uint32_t *cipher_length, uint8_t *mac, uint32_t mac_length)

Finalize AES256CCM encryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in,out]cipherciphertext data area
[in,out]cipher_lengthciphertext data length
[in,out]macMAC area
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES256CCM_DecryptInit

fsp_err_t(* sce_api_t::AES256CCM_DecryptInit) (sce_ccm_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key, uint8_t *nonce, uint32_t nonce_length, uint8_t *adata, uint8_t a_length, uint32_t payload_length, uint32_t mac_length)

Initialize AES256CCM decryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]wrapped_key256-bit AES wrapped key
[in]nonceNonce
[in]nonce_lengthNonce data length (7 to 13 bytes)
[in]adataadditional authentication data
[in]a_lengthadditional authentication data length (0 to 110 bytes)
[in]payload_lengthPayload length (any number of bytes)
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES256CCM_DecryptUpdate

fsp_err_t(* sce_api_t::AES256CCM_DecryptUpdate) (sce_ccm_handle_t *handle, uint8_t *cipher, uint8_t *plain, uint32_t cipher_length)

Update AES256CCM decryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in]cipherciphertext data area
[in,out]plainplaintext data area
[in]cipher_lengthciphertext data length

◆ AES256CCM_DecryptFinal

fsp_err_t(* sce_api_t::AES256CCM_DecryptFinal) (sce_ccm_handle_t *handle, uint8_t *plain, uint32_t *plain_length, uint8_t *mac, uint32_t mac_length)

Finalize AES256CCM decryption.

Implemented as
Parameters
[in,out]handleAES-CCM handler (work area)
[in,out]plainplaintext data area
[in,out]plain_lengthplaintext data length
[in]macMAC area
[in]mac_lengthMAC length (4, 6, 8, 10, 12, 14, or 16 bytes)

◆ AES128CMAC_GenerateInit

fsp_err_t(* sce_api_t::AES128CMAC_GenerateInit) (sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES128CMAC generation.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]wrapped_key128-bit AES wrapped key

◆ AES128CMAC_GenerateUpdate

fsp_err_t(* sce_api_t::AES128CMAC_GenerateUpdate) (sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)

Update AES128CMAC generation.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]messagemessage data area (message_length byte)
[in]message_lengthmessage data length (0 or more bytes)

◆ AES128CMAC_GenerateFinal

fsp_err_t(* sce_api_t::AES128CMAC_GenerateFinal) (sce_cmac_handle_t *handle, uint8_t *mac)

Finalize AES128CMAC generation.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in,out]macMAC data area (16byte)

◆ AES128CMAC_VerifyInit

fsp_err_t(* sce_api_t::AES128CMAC_VerifyInit) (sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES128CMAC verification.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]wrapped_key128-bit AES wrapped key

◆ AES128CMAC_VerifyUpdate

fsp_err_t(* sce_api_t::AES128CMAC_VerifyUpdate) (sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)

Update AES128CMAC verification.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]messagemessage data area (message_length byte)
[in]message_lengthmessage data length (0 or more bytes)

◆ AES128CMAC_VerifyFinal

fsp_err_t(* sce_api_t::AES128CMAC_VerifyFinal) (sce_cmac_handle_t *handle, uint8_t *mac, uint32_t mac_length)

Finalize AES128CMAC verification.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in,out]macMAC data area (mac_length byte)
[in,out]mac_lengthMAC data length (2 to 16 bytes)

◆ AES256CMAC_GenerateInit

fsp_err_t(* sce_api_t::AES256CMAC_GenerateInit) (sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES256CMAC generation.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]wrapped_key256-bit AES wrapped key

◆ AES256CMAC_GenerateUpdate

fsp_err_t(* sce_api_t::AES256CMAC_GenerateUpdate) (sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)

Update AES256CMAC generation.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]messagemessage data area (message_length byte)
[in]message_lengthmessage data length (0 or more bytes)

◆ AES256CMAC_GenerateFinal

fsp_err_t(* sce_api_t::AES256CMAC_GenerateFinal) (sce_cmac_handle_t *handle, uint8_t *mac)

Finalize AES256CMAC generation.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in,out]macMAC data area (16byte)

◆ AES256CMAC_VerifyInit

fsp_err_t(* sce_api_t::AES256CMAC_VerifyInit) (sce_cmac_handle_t *handle, sce_aes_wrapped_key_t *wrapped_key)

Initialize AES256CMAC verification.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]wrapped_key256-bit AES wrapped key

◆ AES256CMAC_VerifyUpdate

fsp_err_t(* sce_api_t::AES256CMAC_VerifyUpdate) (sce_cmac_handle_t *handle, uint8_t *message, uint32_t message_length)

Update AES256CMAC verification.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in]messagemessage data area (message_length byte)
[in]message_lengthmessage data length (0 or more bytes)

◆ AES256CMAC_VerifyFinal

fsp_err_t(* sce_api_t::AES256CMAC_VerifyFinal) (sce_cmac_handle_t *handle, uint8_t *mac, uint32_t mac_length)

Finalize AES256CMAC verification.

Implemented as
Parameters
[in,out]handleAES-CMAC handler (work area)
[in,out]macMAC data area (mac_length byte)
[in,out]mac_lengthMAC data length (2 to 16 bytes)

◆ SHA256_Init

fsp_err_t(* sce_api_t::SHA256_Init) (sce_sha_md5_handle_t *handle)

Initialize SHA-256 Calculation.

Implemented as
Parameters
[in,out]handleSHA handler (work area)

◆ SHA256_Update

fsp_err_t(* sce_api_t::SHA256_Update) (sce_sha_md5_handle_t *handle, uint8_t *message, uint32_t message_length)

Update SHA-256 Calculation.

Implemented as
Parameters
[in,out]handleSHA handler (work area)
[in]messagemessage data area
[in]message_lengthmessage data length

◆ SHA256_Final

fsp_err_t(* sce_api_t::SHA256_Final) (sce_sha_md5_handle_t *handle, uint8_t *digest, uint32_t *digest_length)

Finalize SHA-256 Calculation.

Implemented as
Parameters
[in,out]handleSHA handler (work area)
[in,out]digesthasha data area
[in,out]digest_lengthhash data length (32bytes)

◆ RSA1024_WrappedKeyPairGenerate

fsp_err_t(* sce_api_t::RSA1024_WrappedKeyPairGenerate) (sce_rsa1024_wrapped_pair_key_t *wrapped_pair_key)

This API outputs 1024-bit RSA wrapped pair key.

Implemented as
Parameters
[in,out]wrapped_key128-bit AES wrapped key

◆ RSA2048_WrappedKeyPairGenerate

fsp_err_t(* sce_api_t::RSA2048_WrappedKeyPairGenerate) (sce_rsa2048_wrapped_pair_key_t *wrapped_pair_key)

This API outputs 2048-bit RSA wrapped pair key.

Implemented as
Parameters
[in,out]wrapped_key128-bit AES wrapped key

◆ RSA1024_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::RSA1024_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa1024_public_wrapped_key_t *wrapped_key)

This API outputs 1024-bit RSA public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key1024-bit RSA public wrapped key

◆ RSA1024_EncryptedPrivateKeyWrap

fsp_err_t(* sce_api_t::RSA1024_EncryptedPrivateKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa1024_private_wrapped_key_t *wrapped_key)

This API outputs 1024-bit RSA private wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key1024-bit RSA private wrapped key

◆ RSA2048_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::RSA2048_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa2048_public_wrapped_key_t *wrapped_key)

This API outputs 2048-bit RSA public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key2048-bit RSA public wrapped key

◆ RSA2048_EncryptedPrivateKeyWrap

fsp_err_t(* sce_api_t::RSA2048_EncryptedPrivateKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa2048_private_wrapped_key_t *wrapped_key)

This API outputs 2048-bit RSA private wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key2048-bit RSA private wrapped key

◆ RSA3072_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::RSA3072_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa3072_public_wrapped_key_t *wrapped_key)

This API outputs 3072-bit RSA public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key3072-bit RSA public wrapped key

◆ RSA4096_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::RSA4096_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_rsa4096_public_wrapped_key_t *wrapped_key)

This API outputs 4096-bit RSA public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_key4096-bit RSA public wrapped key

◆ RSASSA_PKCS1024_SignatureGenerate

fsp_err_t(* sce_api_t::RSASSA_PKCS1024_SignatureGenerate) (sce_rsa_byte_data_t *message_hash, sce_rsa_byte_data_t *signature, sce_rsa1024_private_wrapped_key_t *wrapped_key, uint8_t hash_type)

RSASSA-PKCS1-V1_5 signature generation.

Implemented as
Parameters
[in]message_hashMessage or hash value to which to attach signature
[in,out]signatureSignature text storage destination information
[in]wrapped_keyInputs the 1024-bit RSA private wrapped key.
[in]hash_typeOnly HW_SCE_RSA_HASH_SHA256 is supported

◆ RSASSA_PKCS2048_SignatureGenerate

fsp_err_t(* sce_api_t::RSASSA_PKCS2048_SignatureGenerate) (sce_rsa_byte_data_t *message_hash, sce_rsa_byte_data_t *signature, sce_rsa2048_private_wrapped_key_t *wrapped_key, uint8_t hash_type)

RSASSA-PKCS1-V1_5 signature generation.

Implemented as
Parameters
[in]message_hashMessage or hash value to which to attach signature
[in,out]signatureSignature text storage destination information
[in]wrapped_keyInputs the 2048-bit RSA private wrapped key.
[in]hash_typeOnly HW_SCE_RSA_HASH_SHA256 is supported

◆ RSASSA_PKCS1024_SignatureVerify

fsp_err_t(* sce_api_t::RSASSA_PKCS1024_SignatureVerify) (sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa1024_public_wrapped_key_t *wrapped_key, uint8_t hash_type)

RSASSA-PKCS1-V1_5 signature verification.

Implemented as
Parameters
[in]signatureSignature text information to verify
[in]message_hashMessage text or hash value to verify
[in]wrapped_keyInputs the 1024-bit RSA public wrapped key.
[in]hash_typeOnly HW_SCE_RSA_HASH_SHA256 is supported

◆ RSASSA_PKCS2048_SignatureVerify

fsp_err_t(* sce_api_t::RSASSA_PKCS2048_SignatureVerify) (sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa2048_public_wrapped_key_t *wrapped_key, uint8_t hash_type)

RSASSA-PKCS1-V1_5 signature verification.

Implemented as
Parameters
[in]signatureSignature text information to verify
[in]message_hashMessage text or hash value to verify
[in]wrapped_keyInputs the 2048-bit RSA public wrapped key.
[in]hash_typeOnly HW_SCE_RSA_HASH_SHA256 is supported

◆ RSASSA_PKCS3072_SignatureVerify

fsp_err_t(* sce_api_t::RSASSA_PKCS3072_SignatureVerify) (sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa3072_public_wrapped_key_t *wrapped_key, uint8_t hash_type)

RSASSA-PKCS1-V1_5 signature verification.

Implemented as
Parameters
[in]signatureSignature text information to verify
[in]message_hashMessage text or hash value to verify
[in]wrapped_keyInputs the 3072-bit RSA public wrapped key.
[in]hash_typeOnly HW_SCE_RSA_HASH_SHA256 is supported

◆ RSASSA_PKCS4096_SignatureVerify

fsp_err_t(* sce_api_t::RSASSA_PKCS4096_SignatureVerify) (sce_rsa_byte_data_t *signature, sce_rsa_byte_data_t *message_hash, sce_rsa4096_public_wrapped_key_t *wrapped_key, uint8_t hash_type)

RSASSA-PKCS1-V1_5 signature verification.

Implemented as
Parameters
[in]signatureSignature text information to verify
[in]message_hashMessage text or hash value to verify
[in]wrapped_keyInputs the 4096-bit RSA public wrapped key.
[in]hash_typeOnly HW_SCE_RSA_HASH_SHA256 is supported

◆ RSAES_PKCS1024_Encrypt

fsp_err_t(* sce_api_t::RSAES_PKCS1024_Encrypt) (sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa1024_public_wrapped_key_t *wrapped_key)

RSAES-PKCS1-V1_5 encryption.

Implemented as
Parameters
[in]plainplaintext
[in,out]cipherciphertext
[in]wrapped_keyInputs the 1024-bit RSA public wrapped key.

◆ RSAES_PKCS2048_Encrypt

fsp_err_t(* sce_api_t::RSAES_PKCS2048_Encrypt) (sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa2048_public_wrapped_key_t *wrapped_key)

RSAES-PKCS1-V1_5 encryption.

Implemented as
Parameters
[in]plainplaintext
[in,out]cipherciphertext
[in]wrapped_keyInputs the 2048-bit RSA public wrapped key.

◆ RSAES_PKCS3072_Encrypt

fsp_err_t(* sce_api_t::RSAES_PKCS3072_Encrypt) (sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa3072_public_wrapped_key_t *wrapped_key)

RSAES-PKCS1-V1_5 encryption.

Implemented as
Parameters
[in]plainplaintext
[in,out]cipherciphertext
[in]wrapped_keyInputs the 3072-bit RSA public wrapped key.

◆ RSAES_PKCS4096_Encrypt

fsp_err_t(* sce_api_t::RSAES_PKCS4096_Encrypt) (sce_rsa_byte_data_t *plain, sce_rsa_byte_data_t *cipher, sce_rsa4096_public_wrapped_key_t *wrapped_key)

RSAES-PKCS1-V1_5 encryption.

Implemented as
Parameters
[in]plainplaintext
[in,out]cipherciphertext
[in]wrapped_keyInputs the 4096-bit RSA public wrapped key.

◆ RSAES_PKCS1024_Decrypt

fsp_err_t(* sce_api_t::RSAES_PKCS1024_Decrypt) (sce_rsa_byte_data_t *cipher, sce_rsa_byte_data_t *plain, sce_rsa1024_private_wrapped_key_t *wrapped_key)

RSAES-PKCS1-V1_5 decryption.

Implemented as
Parameters
[in]cipherciphertext
[in,out]plainplaintext
[in]wrapped_keyInputs the 1024-bit RSA private wrapped key.

◆ RSAES_PKCS2048_Decrypt

fsp_err_t(* sce_api_t::RSAES_PKCS2048_Decrypt) (sce_rsa_byte_data_t *cipher, sce_rsa_byte_data_t *plain, sce_rsa2048_private_wrapped_key_t *wrapped_key)

RSAES-PKCS1-V1_5 decryption.

Implemented as
Parameters
[in]cipherciphertext
[in,out]plainplaintext
[in]wrapped_keyInputs the 2048-bit RSA private wrapped key.

◆ SHA256HMAC_EncryptedKeyWrap

fsp_err_t(* sce_api_t::SHA256HMAC_EncryptedKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_hmac_sha_wrapped_key_t *wrapped_key)

This API outputs HMAC-SHA256 wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keyHMAC-SHA256 wrapped key

◆ SHA256HMAC_GenerateInit

fsp_err_t(* sce_api_t::SHA256HMAC_GenerateInit) (sce_hmac_sha_handle_t *handle, sce_hmac_sha_wrapped_key_t *wrapped_key)

Initialize HMAC-SHA256 generation.

Implemented as
Parameters
[in,out]handleSHA-HMAC handler (work area)
[in]wrapped_keyMAC wrapped key

◆ SHA256HMAC_GenerateUpdate

fsp_err_t(* sce_api_t::SHA256HMAC_GenerateUpdate) (sce_hmac_sha_handle_t *handle, uint8_t *message, uint32_t message_length)

Update HMAC-SHA256 generation.

Implemented as
Parameters
[in,out]handleSHA-HMAC handle (work area)
[in]messageMessage area
[in]message_lengthMessage length

◆ SHA256HMAC_GenerateFinal

fsp_err_t(* sce_api_t::SHA256HMAC_GenerateFinal) (sce_hmac_sha_handle_t *handle, uint8_t *mac)

Finalize HMAC-SHA256 generation.

Implemented as
Parameters
[in,out]handleSHA-HMAC handle (work area)
[in,out]macHMAC area (32 bytes)

◆ SHA256HMAC_VerifyInit

fsp_err_t(* sce_api_t::SHA256HMAC_VerifyInit) (sce_hmac_sha_handle_t *handle, sce_hmac_sha_wrapped_key_t *wrapped_key)

Initialize HMAC-SHA256 verification.

Implemented as
Parameters
[in,out]handleSHA-HMAC handler (work area)
[in]wrapped_keyMAC wrapped key

◆ SHA256HMAC_VerifyUpdate

fsp_err_t(* sce_api_t::SHA256HMAC_VerifyUpdate) (sce_hmac_sha_handle_t *handle, uint8_t *message, uint32_t message_length)

Update HMAC-SHA256 verification.

Implemented as
Parameters
[in,out]handleSHA-HMAC handle (work area)
[in]messageMessage area
[in]message_lengthMessage length

◆ SHA256HMAC_VerifyFinal

fsp_err_t(* sce_api_t::SHA256HMAC_VerifyFinal) (sce_hmac_sha_handle_t *handle, uint8_t *mac, uint32_t mac_length)

Finalize HMAC-SHA256 verification.

Implemented as
Parameters
[in,out]handleSHA-HMAC handle (work area)
[in]macHMAC area
[in]mac_lengthHMAC length

◆ ECC_secp192r1_WrappedKeyPairGenerate

fsp_err_t(* sce_api_t::ECC_secp192r1_WrappedKeyPairGenerate) (sce_ecc_wrapped_pair_key_t *wrapped_pair_key)

This API outputs secp192r1 wrapped pair key.

Implemented as
Parameters
[in,out]wrapped_pair_keyWrapped pair key for secp192r1 public key and private key pair

◆ ECC_secp224r1_WrappedKeyPairGenerate

fsp_err_t(* sce_api_t::ECC_secp224r1_WrappedKeyPairGenerate) (sce_ecc_wrapped_pair_key_t *wrapped_pair_key)

This API outputs secp224r1 wrapped pair key.

Implemented as
Parameters
[in,out]wrapped_pair_keyWrapped pair key for secp224r1 public key and private key pair

◆ ECC_secp256r1_WrappedKeyPairGenerate

fsp_err_t(* sce_api_t::ECC_secp256r1_WrappedKeyPairGenerate) (sce_ecc_wrapped_pair_key_t *wrapped_pair_key)

This API outputs secp256r1 wrapped pair key.

Implemented as
Parameters
[in,out]wrapped_pair_keyWrapped pair key for secp256r1 public key and private key pair

◆ ECC_secp384r1_WrappedKeyPairGenerate

fsp_err_t(* sce_api_t::ECC_secp384r1_WrappedKeyPairGenerate) (sce_ecc_wrapped_pair_key_t *wrapped_pair_key)

This API outputs secp384r1 wrapped pair key.

Implemented as
Parameters
[in,out]wrapped_pair_keyWrapped pair key for secp384r1 public key and private key pair

◆ ECC_secp192r1_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::ECC_secp192r1_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)

This API outputs secp192r1 public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp192r1 public wrapped key

◆ ECC_secp224r1_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::ECC_secp224r1_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)

This API outputs secp224r1 public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp224r1 public wrapped key

◆ ECC_secp256r1_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::ECC_secp256r1_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)

This API outputs secp256r1 public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp256r1 public wrapped key

◆ ECC_secp384r1_EncryptedPublicKeyWrap

fsp_err_t(* sce_api_t::ECC_secp384r1_EncryptedPublicKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_public_wrapped_key_t *wrapped_key)

This API outputs secp384r1 public wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp384r1 public wrapped key

◆ ECC_secp192r1_EncryptedPrivateKeyWrap

fsp_err_t(* sce_api_t::ECC_secp192r1_EncryptedPrivateKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)

This API outputs secp192r1 private wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp192r1 private wrapped key

◆ ECC_secp224r1_EncryptedPrivateKeyWrap

fsp_err_t(* sce_api_t::ECC_secp224r1_EncryptedPrivateKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)

This API outputs secp224r1 private wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp224r1 private wrapped key

◆ ECC_secp256r1_EncryptedPrivateKeyWrap

fsp_err_t(* sce_api_t::ECC_secp256r1_EncryptedPrivateKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)

This API outputs secp256r1 private wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp256r1 private wrapped key

◆ ECC_secp384r1_EncryptedPrivateKeyWrap

fsp_err_t(* sce_api_t::ECC_secp384r1_EncryptedPrivateKeyWrap) (uint8_t *initial_vector, uint8_t *encrypted_key, sce_key_update_key_t *key_update_key, sce_ecc_private_wrapped_key_t *wrapped_key)

This API outputs secp384r1 private wrapped key.

Implemented as
Parameters
[in]initial_vectorInitialization vector when generating encrypted_key
[in]encrypted_keyUser key encryptedand MAC appended
[in]key_update_keyKey update keyring
[in,out]wrapped_keysecp384r1 private wrapped key

◆ ECDSA_secp192r1_SignatureGenerate

fsp_err_t(* sce_api_t::ECDSA_secp192r1_SignatureGenerate) (sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)

ECDSA signature generation.

Implemented as
Parameters
[in]message_hashMessage or hash value to which to attach signature
[in,out]signatureSignature text storage destination information
[in]wrapped_keyInput wrapped key of secp192r1 private key.

◆ ECDSA_secp224r1_SignatureGenerate

fsp_err_t(* sce_api_t::ECDSA_secp224r1_SignatureGenerate) (sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)

ECDSA signature generation.

Implemented as
Parameters
[in]message_hashMessage or hash value to which to attach signature
[in,out]signatureSignature text storage destination information
[in]wrapped_keyInput wrapped key of secp224r1 private key.

◆ ECDSA_secp256r1_SignatureGenerate

fsp_err_t(* sce_api_t::ECDSA_secp256r1_SignatureGenerate) (sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)

ECDSA signature generation.

Implemented as
Parameters
[in]message_hashMessage or hash value to which to attach signature
[in,out]signatureSignature text storage destination information
[in]wrapped_keyInput wrapped key of secp256r1 private key.

◆ ECDSA_secp384r1_SignatureGenerate

fsp_err_t(* sce_api_t::ECDSA_secp384r1_SignatureGenerate) (sce_ecdsa_byte_data_t *message_hash, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)

ECDSA signature generation.

Implemented as
Parameters
[in]message_hashMessage or hash value to which to attach signature
[in,out]signatureSignature text storage destination information
[in]wrapped_keyInput wrapped key of secp384r1 private key.

◆ ECDSA_secp192r1_SignatureVerify

fsp_err_t(* sce_api_t::ECDSA_secp192r1_SignatureVerify) (sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)

ECDSA signature verification.

Implemented as
Parameters
[in]signatureSignature text information to be verified
[in,out]message_hashMessage or hash value to be verified
[in]wrapped_keyInput wrapped key of secp192r1 public key.

◆ ECDSA_secp224r1_SignatureVerify

fsp_err_t(* sce_api_t::ECDSA_secp224r1_SignatureVerify) (sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)

ECDSA signature verification.

Implemented as
Parameters
[in]signatureSignature text information to be verified
[in,out]message_hashMessage or hash value to be verified
[in]wrapped_keyInput wrapped key of secp224r1 public key.

◆ ECDSA_secp256r1_SignatureVerify

fsp_err_t(* sce_api_t::ECDSA_secp256r1_SignatureVerify) (sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)

ECDSA signature verification.

Implemented as
Parameters
[in]signatureSignature text information to be verified
[in,out]message_hashMessage or hash value to be verified
[in]wrapped_keyInput wrapped key of secp256r1 public key.

◆ ECDSA_secp384r1_SignatureVerify

fsp_err_t(* sce_api_t::ECDSA_secp384r1_SignatureVerify) (sce_ecdsa_byte_data_t *signature, sce_ecdsa_byte_data_t *message_hash, sce_ecc_public_wrapped_key_t *wrapped_key)

ECDSA signature verification.

Implemented as
Parameters
[in]signatureSignature text information to be verified
[in,out]message_hashMessage or hash value to be verified
[in]wrapped_keyInput wrapped key of secp384r1 public key.

◆ ECDH_secp256r1_Init

fsp_err_t(* sce_api_t::ECDH_secp256r1_Init) (sce_ecdh_handle_t *handle, uint32_t key_type, uint32_t use_key_id)

secp256r1 ECDH Initialization.

Implemented as
Parameters
[in,out]handleECDH handler (work area)
[in]key_typeKey exchange type
[in]use_key_iduse key_id or not

◆ ECDH_secp256r1_PublicKeySign

fsp_err_t(* sce_api_t::ECDH_secp256r1_PublicKeySign) (sce_ecdh_handle_t *handle, sce_ecc_public_wrapped_key_t *ecc_public_wrapped_key, sce_ecc_private_wrapped_key_t *ecc_private_wrapped_key, uint8_t *public_key, sce_ecdsa_byte_data_t *signature, sce_ecc_private_wrapped_key_t *wrapped_key)

secp256r1 ECDH public key Signature.

Implemented as
Parameters
[in,out]handleECDH handler (work area)
[in]ecc_public_wrapped_keyFor ECDHE, input a null pointer. For ECDH, input the wrapped key of a secp256r1 public key.
[in]ecc_private_wrapped_keysecp256r1 private key for signature generation
[in,out]public_keyUser secp256r1 public key (512-bit) for key exchange.
[in,out]signatureSignature text storage destination information
[in,out]wrapped_keyFor ECDHE, a private wrapped key generated from a random number. Not output for ECDH.

◆ ECDH_secp256r1_PublicKeyVerify

fsp_err_t(* sce_api_t::ECDH_secp256r1_PublicKeyVerify) (sce_ecdh_handle_t *handle, sce_ecc_public_wrapped_key_t *ecc_public_wrapped_key, uint8_t *public_key_data, sce_ecdsa_byte_data_t *signature, sce_ecc_public_wrapped_key_t *wrapped_key)

secp256r1 ECDH public key verification.

Implemented as
Parameters
[in,out]handleECDH handler (work area)
[in]ecc_public_wrapped_keyPublic wrapped key area for signature verification
[in]public_key_datasecp256r1 public key (512-bit)
[in]signatureECDSA secp256r1 signature of ecc_public_wrapped_key
[in,out]wrapped_keywrapped key of ecc_public_wrapped_key

◆ ECDH_secp256r1_PublicKeyReadWithoutSignature

fsp_err_t(* sce_api_t::ECDH_secp256r1_PublicKeyReadWithoutSignature) (sce_ecdh_handle_t *handle, uint8_t *public_key_data, sce_ecc_public_wrapped_key_t *wrapped_key)

Output the key index of QeU without signature verification.

Implemented as
Parameters
[in,out]handleECDH handler (work area)
[in]public_key_datasecp256r1 public key (512-bit). When key_id is used: key_id (8-bit) || public key (512-bit)
[in,out]wrapped_keywrapped key of ecc_public_wrapped_key

◆ ECDH_secp256r1_SharedSecretCalculate

fsp_err_t(* sce_api_t::ECDH_secp256r1_SharedSecretCalculate) (sce_ecdh_handle_t *handle, sce_ecc_public_wrapped_key_t *ecc_public_wrapped_key, sce_ecc_private_wrapped_key_t *ecc_private_wrapped_key, sce_ecdh_wrapped_key_t *shared_secret_wrapped_key)

secp256r1 ECDH shared secret calculation.

Implemented as
Parameters
[in,out]handleECDH handler (work area)
[in]ecc_public_wrapped_keyPublic wrapped key
[in]ecc_private_wrapped_keyPrivate wrapped key
[in,out]shared_secret_wrapped_keyWrapped key of shared secret Z calculated by ECDH key exchange

◆ ECDH_secp256r1_KeyDerivation

fsp_err_t(* sce_api_t::ECDH_secp256r1_KeyDerivation) (sce_ecdh_handle_t *handle, sce_ecdh_wrapped_key_t *shared_secret_wrapped_key, uint32_t key_type, uint32_t kdf_type, uint8_t *other_info, uint32_t other_info_length, sce_hmac_sha_wrapped_key_t *salt_wrapped_key, sce_aes_wrapped_key_t *wrapped_key)

secp256r1 ECDH key derivation.

Implemented as
Parameters
[in,out]handleECDH handler (work area)
[in]shared_secret_wrapped_keyZ wrapped key calculated by R_SCE_ECDH_secp256r1_SharedSecretCalculate
[in]key_typeDerived key type
[in]kdf_typeAlgorithm used for key derivation calculation
[in]other_infoAdditional data used for key derivation calculation
[in]other_info_lengthData length of other_info
[in]salt_wrapped_keySalt wrapped key
[in,out]wrapped_keyWrapped key corresponding to key_type.

◆ TLS_RootCertificateRSA2048PublicKeyInstall

fsp_err_t(* sce_api_t::TLS_RootCertificateRSA2048PublicKeyInstall) (uint8_t *encrypted_provisioning_key, uint8_t *initial_vector, uint8_t *encrypted_key, sce_tls_ca_certification_public_wrapped_key_t *wrapped_key)

Generate TLS RSA Public key index data

Implemented as
Parameters
[in]encrypted_provisioning_keythe provisioning key includes encrypted CBC/CBC-MAC key for user key
[in]initial_vectorthe initial_vector for user key CBC encrypt
[in]encrypted_keythe user key encrypted with AES128-ECB mode
[out]wrapped_keythe user Key Generation Information (141 words) of RSA2048 bit
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_ECC_secp256r1_EphemeralWrappedKeyPairGenerate

fsp_err_t(* sce_api_t::TLS_ECC_secp256r1_EphemeralWrappedKeyPairGenerate) (sce_tls_p256_ecc_wrapped_key_t *tls_p256_ecc_wrapped_key, uint8_t *ephemeral_ecdh_public_key)

Generate TLS ECC key pair

Implemented as
Parameters
[in]tls_p256_ecc_wrapped_keyP256 ECC key index for TLS
[in]ephemeral_ecdh_public_keyephemeral ECDH public key
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_RootCertificateVerify

fsp_err_t(* sce_api_t::TLS_RootCertificateVerify) (uint32_t public_key_type, uint8_t *certificate, uint32_t certificate_length, uint32_t public_key_n_start_position, uint32_t public_key_n_end_position, uint32_t public_key_e_start_position, uint32_t public_key_e_end_position, uint8_t *signature, uint32_t *encrypted_root_public_key)

Verify root CA certificate.

Implemented as
Parameters
[in]public_key_typekey type
[in]certificatecertificates.
[in]certificate_lengthbyte size of certificates.
[in]public_key_n_start_positionstart position of public key n.
[in]public_key_n_end_positionend position of public key n.
[in]public_key_e_start_positionstart position of public key e.
[in]public_key_e_end_positionend position of public key e.
[in]signaturesignature for certificates.
[out]encrypted_root_public_keypublic key for RSA 2048bit.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_CertificateVerify

fsp_err_t(* sce_api_t::TLS_CertificateVerify) (uint32_t public_key_type, uint32_t *encrypted_input_public_key, uint8_t *certificate, uint32_t certificate_length, uint8_t *signature, uint32_t public_key_n_start_position, uint32_t public_key_n_end_position, uint32_t public_key_e_start_position, uint32_t public_key_e_end_position, uint32_t *encrypted_output_public_key)

Verify server certificate and intermediate certificate.

Implemented as
Parameters
[in]public_key_typekey type
[in]input_public_keypublic key.
[in]certificatecertificates.
[in]certificate_lengthbyte size of certificates.
[in]signaturesignature for certificates.
[in]public_key_n_start_positionstart position of public key n.
[in]public_key_n_end_positionend position of public key n.
[in]public_key_e_start_positionstart position of public key e.
[in]public_key_e_end_positionend position of public key e.
[out]encrypted_output_public_keypublic key for RSA 2048bit.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_PreMasterSecretGenerateForRSA2048

fsp_err_t(* sce_api_t::TLS_PreMasterSecretGenerateForRSA2048) (uint32_t *sce_pre_master_secret)

Generate encrypted pre-master secret.

Implemented as
Parameters
[out]sce_pre_master_secretpre-master secret value for SCE.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.

◆ TLS_MasterSecretGenerate

fsp_err_t(* sce_api_t::TLS_MasterSecretGenerate) (uint32_t select_cipher_suite, uint32_t *sce_pre_master_secret, uint8_t *client_random, uint8_t *server_random, uint32_t *sce_master_secret)

Generate encrypted master secret.

Implemented as
Parameters
[in]select_cipher_suitecipher suite type
[in]sce_pre_master_secretpre-master secret value for SCE.
[in]client_randomrandom value reported ClientHello.
[in]server_randomrandom value reported ServerHello.
[out]sce_master_secretmaster secret value with SCE-specific conversion.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_PreMasterSecretEncryptWithRSA2048

fsp_err_t(* sce_api_t::TLS_PreMasterSecretEncryptWithRSA2048) (uint32_t *encrypted_public_key, uint32_t *sce_pre_master_secret, uint8_t *encrypted_pre_master_secret)

Output the result encrypted pre-master secret with RSA 2048bit

Implemented as
Parameters
[in]encrypted_public_keypublic key data.
[in]sce_pre_master_secretpre-master secret value.
[out]encrypted_pre_master_secretthe value encrypted pre-master secret.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_SessionKeyGenerate

fsp_err_t(* sce_api_t::TLS_SessionKeyGenerate) (uint32_t select_cipher_suite, uint32_t *sce_master_secret, uint8_t *client_random, uint8_t *server_random, uint8_t *nonce_explicit, sce_hmac_sha_wrapped_key_t *client_mac_wrapped_key, sce_hmac_sha_wrapped_key_t *server_mac_wrapped_key, sce_aes_wrapped_key_t *client_crypto_wrapped_key, sce_aes_wrapped_key_t *server_crypto_wrapped_key, uint8_t *client_initial_vector, uint8_t *server_initial_vector)

Output various key information.

Implemented as
Parameters
[in]select_cipher_suiteKey suite information number.
[in]sce_master_secretmaster secret value.
[in]client_randomrandom value reported ClientHello.
[in]server_randomrandom value reported ServerHello.
[in]nonce_explicitnonce value
[out]client_mac_wrapped_keythe mac key during communication from client to server.
[out]server_mac_wrapped_keythe mac key during communication from server to client.
[out]client_crypto_wrapped_keythe crypto key during communication from client to server.
[out]server_crypto_wrapped_keythe crypto key during communication from server to client.
[in]client_initial_vectornot use.
[in]server_initial_vectornot use.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_VerifyDataGenerate

fsp_err_t(* sce_api_t::TLS_VerifyDataGenerate) (uint32_t select_verify_data, uint32_t *sce_master_secret, uint8_t *hand_shake_hash, uint8_t *verify_data)

Generate verify data.

Implemented as
Parameters
[in]select_verify_dataSelect Client/Server data.
[in]sce_master_secretmaster secret data.
[in]hand_shake_hashTLS hand shake message SHA256 HASH value.
[out]verify_dataverify data.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_ServerKeyExchangeVerify

fsp_err_t(* sce_api_t::TLS_ServerKeyExchangeVerify) (uint32_t public_key_type, uint8_t *client_random, uint8_t *server_random, uint8_t *server_ephemeral_ecdh_public_key, uint8_t *server_key_exchange_signature, uint32_t *encrypted_public_key, uint32_t *encrypted_ephemeral_ecdh_public_key)

Retrives ECDH public key.

Implemented as
Parameters
[in]public_key_typekey type
[in]client_randomrandom value reported ClientHello.
[in]server_randomrandom value reported ServerHello.
[in]server_ephemeral_ecdh_public_keyEphemeral ECDH public key from Server.
[in]server_key_exchange_sigunatureServer Key Exchange sigunature.
[in]encrypted_public_keyencrypted public key.
[out]encrypted_ephemeral_ecdh_public_keyencrypted Ephemeral ECDH public key.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ TLS_PreMasterSecretGenerateForECC_secp256r1

fsp_err_t(* sce_api_t::TLS_PreMasterSecretGenerateForECC_secp256r1) (uint32_t *encrypted_public_key, sce_tls_p256_ecc_wrapped_key_t *tls_p256_ecc_wrapped_key, uint32_t *sce_pre_master_secret)

Generate encrypted pre-master secret.

Implemented as
Parameters
[in]encrypted_public_keyencrypted public key
[in]tls_p256_ecc_wrapped_keyP-256 ECC key index.
[out]sce_pre_master_secretencrypted pre-master secret value for SCE.
Return values
FSP_SUCCESSNormal termination
FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICTA resource conflict occurred because a hardware resource needed by the processing routine was in use by another processing routine.
FSP_ERR_CRYPTO_SCE_FAILAn internal error occurred.

◆ sce_instance_t

struct sce_instance_t

This structure encompasses everything that is needed to use an instance of this interface.

Data Fields
sce_ctrl_t * p_ctrl Pointer to the control structure for this instance.
sce_cfg_t const * p_cfg Pointer to the configuration structure for this instance.
sce_api_t const * p_api Pointer to the API structure for this instance.

Typedef Documentation

◆ sce_rsa_byte_data_t

byte data

RSA byte data structure

◆ sce_ecdsa_byte_data_t

byte data

ECDSA byte data structure

◆ sce_ctrl_t

typedef void sce_ctrl_t

SCE Control block. Allocate an instance specific control block to pass into the API calls.

Implemented as

Enumeration Type Documentation

◆ lifecycle_t

Data lifecycle