RA Flexible Software Package Documentation  Release v6.0.0

 
RSIP key injection Interface

Detailed Description

Interface for key injection by Renesas Secure IP (RSIP) functions.

Summary

The RSIP key injection interface provides RSIP functionality.

Data Structures

struct  rsip_aes_wrapped_key_t
 
struct  rsip_chacha20_wrapped_key_t
 
struct  rsip_rsa2048_private_wrapped_key_t
 
struct  rsip_rsa3072_private_wrapped_key_t
 
struct  rsip_rsa4096_private_wrapped_key_t
 
struct  rsip_ecc_private_wrapped_key_t
 
struct  rsip_hmac_sha_wrapped_key_t
 
struct  rsip_key_injection_api_t
 

Enumerations

enum  rsip_key_injection_type_t
 

Data Structure Documentation

◆ rsip_aes_wrapped_key_t

struct rsip_aes_wrapped_key_t

AES128/256 wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type Key type.
uint32_t value[R_RSIP_AES256_XTS_KEY_INDEX_WORD_SIZE] Wrapped key value.

◆ rsip_chacha20_wrapped_key_t

struct rsip_chacha20_wrapped_key_t

CHACHA20 wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type Key type.
uint32_t value[R_RSIP_CHACHA20_KEY_INDEX_WORD_SIZE] Wrapped key value.

◆ rsip_rsa2048_private_wrapped_key_t

struct rsip_rsa2048_private_wrapped_key_t

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

Data Fields
uint32_t type Key type.
uint32_t value[R_RSIP_RSA2048_PRIVATE_KEY_INDEX_WORD_SIZE] Wrapped key value.

◆ rsip_rsa3072_private_wrapped_key_t

struct rsip_rsa3072_private_wrapped_key_t

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

Data Fields
uint32_t type Key type.
uint32_t value[R_RSIP_RSA3072_PRIVATE_KEY_INDEX_WORD_SIZE] Wrapped key value.

◆ rsip_rsa4096_private_wrapped_key_t

struct rsip_rsa4096_private_wrapped_key_t

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

Data Fields
uint32_t type Key type.
uint32_t value[R_RSIP_RSA4096_PRIVATE_KEY_INDEX_WORD_SIZE] Wrapped key value.

◆ rsip_ecc_private_wrapped_key_t

struct rsip_ecc_private_wrapped_key_t

ECC 256/384/512/521 private wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type Key type.
uint32_t value[R_RSIP_ECCP521_PRIVATE_KEY_INDEX_WORD_SIZE] Wrapped key value.

◆ rsip_hmac_sha_wrapped_key_t

struct rsip_hmac_sha_wrapped_key_t

HMAC 256/342/512 wrapped key data structure. DO NOT MODIFY.

Data Fields
uint32_t type Key type.
uint32_t value[R_RSIP_HMAC_SHA512_KEY_INDEX_WORD_SIZE] Wrapped key value.

◆ rsip_key_injection_api_t

struct rsip_key_injection_api_t

Functions implemented at the HAL layer will follow this API.

Data Fields

fsp_err_t(* AES128_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* AES192_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* AES256_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* AES128_XTS_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* AES256_XTS_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ChaCha20_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_chacha20_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* RSA2048_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_rsa2048_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* RSA3072_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_rsa3072_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* RSA4096_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_rsa4096_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_secp256r1_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_secp384r1_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_secp521r1_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_secp256k1_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_brainpoolP256r1_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_brainpoolP384r1_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_brainpoolP512r1_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* ECC_Ed25519_InitialPrivateKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* HMAC_SHA224_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* HMAC_SHA256_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* HMAC_SHA384_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* HMAC_SHA512_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* HMAC_SHA512_224_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)
 
fsp_err_t(* HMAC_SHA512_256_InitialKeyWrap )(rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)
 

Field Documentation

◆ AES128_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::AES128_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)

This API outputs 128-bit AES wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key128-bit AES wrapped key

◆ AES192_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::AES192_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)

This API outputs 192-bit AES wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key192-bit AES wrapped key

◆ AES256_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::AES256_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit AES wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit AES wrapped key

◆ AES128_XTS_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::AES128_XTS_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)

This API outputs 128-bit AES-XTS wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key128-bit AES-XTS wrapped key

◆ AES256_XTS_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::AES256_XTS_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_aes_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit AES-XTS wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit AES-XTS wrapped key

◆ ChaCha20_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ChaCha20_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_chacha20_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit ChaCha20 wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit ChaCha20 wrapped key

◆ RSA2048_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::RSA2048_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_rsa2048_private_wrapped_key_t *const p_wrapped_key)

This API outputs 2048-bit RSA wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key2048-bit RSA wrapped private key

◆ RSA3072_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::RSA3072_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_rsa3072_private_wrapped_key_t *const p_wrapped_key)

This API outputs 3072-bit RSA wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key3072-bit RSA wrapped private key

◆ RSA4096_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::RSA4096_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_rsa4096_private_wrapped_key_t *const p_wrapped_key)

This API outputs 4096-bit RSA wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key4096-bit RSA wrapped private key

◆ ECC_secp256r1_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_secp256r1_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit ECC wrapped private key

◆ ECC_secp384r1_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_secp384r1_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 384-bit ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key384-bit ECC wrapped private key

◆ ECC_secp521r1_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_secp521r1_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 521-bit ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key521-bit ECC wrapped private key

◆ ECC_secp256k1_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_secp256k1_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit ECC wrapped private key

◆ ECC_brainpoolP256r1_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_brainpoolP256r1_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit brainpool ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit ECC wrapped private key

◆ ECC_brainpoolP384r1_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_brainpoolP384r1_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 384-bit brainpool ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key384-bit ECC wrapped private key

◆ ECC_brainpoolP512r1_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_brainpoolP512r1_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 512-bit brainpool ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key512-bit ECC wrapped private key

◆ ECC_Ed25519_InitialPrivateKeyWrap

fsp_err_t(* rsip_key_injection_api_t::ECC_Ed25519_InitialPrivateKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_ecc_private_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit Edwards curve ECC wrapped private key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit ECC wrapped private key

◆ HMAC_SHA224_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::HMAC_SHA224_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)

This API outputs 224-bit HMAC-SHA wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key224-bit HMAC-SHA wrapped key

◆ HMAC_SHA256_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::HMAC_SHA256_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)

This API outputs 256-bit HMAC-SHA wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key256-bit HMAC-SHA wrapped key

◆ HMAC_SHA384_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::HMAC_SHA384_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)

This API outputs 384-bit HMAC-SHA wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key384-bit HMAC-SHA wrapped key

◆ HMAC_SHA512_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::HMAC_SHA512_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)

This API outputs 512-bit HMAC-SHA wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key512-bit HMAC-SHA wrapped key

◆ HMAC_SHA512_224_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::HMAC_SHA512_224_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)

This API outputs 512/224-bit HMAC-SHA wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key512/224-bit HMAC-SHA wrapped key

◆ HMAC_SHA512_256_InitialKeyWrap

fsp_err_t(* rsip_key_injection_api_t::HMAC_SHA512_256_InitialKeyWrap) (rsip_key_injection_type_t const key_injection_type, uint8_t const *const p_wrapped_user_factory_programming_key, uint8_t const *const p_initial_vector, uint8_t const *const p_user_key, rsip_hmac_sha_wrapped_key_t *const p_wrapped_key)

This API outputs 512/256-bit HMAC-SHA wrapped key.

Parameters
[in]key_injection_typeSelection key injection type when generating wrapped key
[in]p_wrapped_user_factory_programming_keyWrapped user factory programming key by the Renesas Key Wrap Service. When key injection type is plain, this is not required and any value can be specified.
[in]p_initial_vectorInitialization vector when generating encrypted key. When key injection type is plain, this is not required and any value can be specified.
[in]p_user_keyUser key. If key injection type is not plain, it must be encrypted and have MAC appended.
[out]p_wrapped_key512/256-bit HMAC-SHA wrapped key

Enumeration Type Documentation

◆ rsip_key_injection_type_t

Key injection type.

Enumerator
RSIP_KEY_INJECTION_TYPE_ENCRYPTED 

Input encrypted user key.

RSIP_KEY_INJECTION_TYPE_PLAIN 

Input plain user key.