security_pal.h File Reference
#include "security_pal_cfg.h"
#include "security_pal_mapping.h"
#include "status.h"
#include "callbacks.h"

Go to the source code of this file.

Data Structures

struct  security_user_config_t
 Define user configuration Implements : security_user_config_t_Class. More...
 

Enumerations

enum  security_instance_t { SECURITY_INSTANCE0 = 0U }
 Define instances for SECURITY PAL Implements : security_instance_t_Class. More...
 
enum  security_key_id_t {
  SECURITY_SECRET_KEY = 0x0U, SECURITY_MASTER_ECU = 0x1U, SECURITY_BOOT_MAC_KEY = 0x2U, SECURITY_BOOT_MAC = 0x3U,
  SECURITY_KEY_1, SECURITY_KEY_2, SECURITY_KEY_3, SECURITY_KEY_4,
  SECURITY_KEY_5, SECURITY_KEY_6, SECURITY_KEY_7, SECURITY_KEY_8,
  SECURITY_KEY_9, SECURITY_KEY_10, SECURITY_KEY_11 = 0x14U, SECURITY_KEY_12,
  SECURITY_KEY_13, SECURITY_KEY_14, SECURITY_KEY_15, SECURITY_KEY_16,
  SECURITY_KEY_17
}
 Defines the security keys Implements : security_key_id_t_Class. More...
 
enum  security_boot_flavor_t { SECURITY_BOOT_STRICT = 0U, SECURITY_BOOT_SERIAL = 1U, SECURITY_BOOT_PARALLEL = 2U, SECURITY_BOOT_NOT_DEFINED = 3U }
 Defines the security boot flavor Implements : security_boot_flavor_t_Class. More...
 
enum  security_cmd_t {
  SECURITY_CMD_ENC_ECB = 1U, SECURITY_CMD_ENC_CBC, SECURITY_CMD_DEC_ECB, SECURITY_CMD_DEC_CBC,
  SECURITY_CMD_GENERATE_MAC, SECURITY_CMD_VERIFY_MAC, SECURITY_CMD_LOAD_KEY, SECURITY_CMD_LOAD_PLAIN_KEY,
  SECURITY_CMD_EXPORT_RAM_KEY, SECURITY_CMD_INIT_RNG, SECURITY_CMD_EXTEND_SEED, SECURITY_CMD_RND,
  SECURITY_CMD_BOOT_FAILURE, SECURITY_CMD_BOOT_OK, SECURITY_CMD_GET_ID, SECURITY_CMD_DBG_CHAL,
  SECURITY_CMD_DBG_AUTH
}
 Defines the security command Implements : security_cmd_t_Class. More...
 

Functions

status_t SECURITY_Init (security_instance_t instance, const security_user_config_t *config)
 Initializes the SECURITY module. More...
 
status_t SECURITY_Deinit (security_instance_t instance)
 De-initializes the SECURITY module. More...
 
status_t SECURITY_EncryptEcbBlocking (security_instance_t instance, security_key_id_t keyId, const uint8_t *plainText, uint32_t msgLen, uint8_t *cipherText, uint32_t timeout)
 ECB Encryption. More...
 
status_t SECURITY_DecryptEcbBlocking (security_instance_t instance, security_key_id_t keyId, const uint8_t *cipherText, uint32_t msgLen, uint8_t *plainText, uint32_t timeout)
 ECB Decryption. More...
 
status_t SECURITY_EncryptCbcBlocking (security_instance_t instance, security_key_id_t keyId, const uint8_t *plainText, uint32_t msgLen, const uint8_t *iv, uint8_t *cipherText, uint32_t timeout)
 CBC Decryption. More...
 
status_t SECURITY_DecryptCbcBlocking (security_instance_t instance, security_key_id_t keyId, const uint8_t *cipherText, uint32_t msgLen, const uint8_t *iv, uint8_t *plainText, uint32_t timeout)
 CBC Decryption. More...
 
status_t SECURITY_GenerateMacBlocking (security_instance_t instance, security_key_id_t keyId, const uint8_t *msg, uint64_t msgLen, uint8_t *cmac, uint32_t timeout)
 MAC Generation. More...
 
status_t SECURITY_VerifyMacBlocking (security_instance_t instance, security_key_id_t keyId, const uint8_t *msg, uint64_t msgLen, const uint8_t *mac, uint16_t macLen, bool *verifStatus, uint32_t timeout)
 MAC Verification. More...
 
status_t SECURITY_LoadKey (security_instance_t instance, security_key_id_t keyId, const uint8_t *m1, const uint8_t *m2, const uint8_t *m3, uint8_t *m4, uint8_t *m5, uint32_t timeout)
 Load Key. More...
 
status_t SECURITY_LoadPlainKey (security_instance_t instance, const uint8_t *plainKey, uint32_t timeout)
 Load Plain Key. More...
 
status_t SECURITY_ExportRamKey (security_instance_t instance, uint8_t *m1, uint8_t *m2, uint8_t *m3, uint8_t *m4, uint8_t *m5, uint32_t timeout)
 Export RAM key. More...
 
status_t SECURITY_ExtendSeed (security_instance_t instance, const uint8_t *entropy, uint32_t timeout)
 Initialize Random Number Generator. More...
 
status_t SECURITY_InitRng (security_instance_t instance, uint32_t timeout)
 Initialize Random Number Generator. More...
 
status_t SECURITY_GenerateRnd (security_instance_t instance, uint8_t *rnd, uint32_t timeout)
 Generate RND. More...
 
status_t SECURITY_GetId (security_instance_t instance, const uint8_t *challenge, uint8_t *uid, uint8_t *sreg, uint8_t *mac, uint32_t timeout)
 Get ID. More...
 
status_t SECURITY_SecureBoot (security_instance_t instance, uint32_t bootImageSize, const uint8_t *bootImagePtr, uint32_t timeout)
 Secure boot. More...
 
status_t SECURITY_BootFailure (security_instance_t instance, uint32_t timeout)
 Boot Failure. More...
 
status_t SECURITY_BootOk (security_instance_t instance, uint32_t timeout)
 Boot Ok. More...
 
status_t SECURITY_BootDefine (security_instance_t instance, uint32_t bootSize, security_boot_flavor_t bootFlavor, uint32_t timeout)
 Boot Define. More...
 
status_t SECURITY_DbgChal (security_instance_t instance, uint8_t *challenge, uint32_t timeout)
 Debug Challenge. More...
 
status_t SECURITY_DbgAuth (security_instance_t instance, const uint8_t *authorization, uint32_t timeout)
 Debug Authentification. More...
 
status_t SECURITY_MPCompress (security_instance_t instance, const uint8_t *msg, uint32_t msgLen, uint8_t *mpCompress, uint32_t timeout)
 Miyaguchi-Prenell Compression. More...
 
status_t SECURITY_GenerateTrnd (security_instance_t instance, uint8_t *trnd, uint32_t timeout)
 Generate True Random Number. More...
 
status_t SECURITY_CancelCommand (security_instance_t instance)
 Cancel Command. More...
 
status_t SECURITY_GetAsyncCmdStatus (security_instance_t instance)
 Get asynchronous command status. More...
 
status_t SECURITY_EncryptEcb (security_instance_t instance, security_key_id_t keyId, const uint8_t *plainText, uint32_t msgLen, uint8_t *cipherText)
 Encrypt ECB. More...
 
status_t SECURITY_DecryptEcb (security_instance_t instance, security_key_id_t keyId, const uint8_t *cipherText, uint32_t msgLen, uint8_t *plainText)
 Decrypt ECB. More...
 
status_t SECURITY_EncryptCbc (security_instance_t instance, security_key_id_t keyId, const uint8_t *plainText, uint32_t msgLen, const uint8_t *iv, uint8_t *cipherText)
 Encrypt CBC. More...
 
status_t SECURITY_DecryptCbc (security_instance_t instance, security_key_id_t keyId, const uint8_t *cipherText, uint32_t msgLen, const uint8_t *iv, uint8_t *plainText)
 Decrypt CBC. More...
 
status_t SECURITY_GenerateMac (security_instance_t instance, security_key_id_t keyId, const uint8_t *msg, uint64_t msgLen, uint8_t *cmac)
 Generate MAC. More...
 
status_t SECURITY_VerifyMac (security_instance_t instance, security_key_id_t keyId, const uint8_t *msg, uint64_t msgLen, const uint8_t *mac, uint16_t macLen, bool *verifStatus)
 Verify MAC. More...