Infineon OPTIGA(TM) Trust X mutual authentication APIs

nRF5 SDK v17.1.0

Infineon OPTIGA(TM) Trust X mutual authentication APIs. More...

Data Structures

struct sHardwareCrypto_d
Structure for Hardware Crypto. More...
struct sHandshake_d
Structure containing Handshake related data. More...
struct sCL_d
Structure containing Crypto Layer information. More...
struct sConfigCL_d
Structure to configure Crypto Layer. More...
struct sRL_d
Structure containing Record Layer information. More...
struct sConfigRL_d
Structure to configure Record Layer. More...
struct sTL_d
Structure holding Transport Layer Information. More...
struct sConfigTL_d
Structure to configure Transport Layer. More...

Macros

#define MODULE_ENABLE_READ_WRITE
#define MODULE_ENABLE_ONE_WAY_AUTH
#define MODULE_ENABLE_TOOLBOX
#define OPTIMIZE_CODE (x)
#define OPTIMIZE_CODE_ENDS (x)
#define ERROR_CODE_BASE 0x80000000
Base Error Code.
#define BASE_ERROR_COMMS ( ERROR_CODE_BASE | 0x00000000)
Base Error code for Comms.
#define BASE_ERROR_CMDLIB ( ERROR_CODE_BASE | 0x00000100)
Base Error code for Command Lib.
#define BASE_ERROR_INTLIB ( ERROR_CODE_BASE | 0x00000200)
Base Error code for Integration Lib.
#define BASE_ERROR_CRYPTOLIB ( ERROR_CODE_BASE | 0x00000300)
Base Error code for Crypto Lib.
#define BASE_ERROR_ALERT ( ERROR_CODE_BASE | 0x00000500)
Base Error code for Alert.
#define BASE_ERROR_HANDSHAKELAYER ( ERROR_CODE_BASE | 0x00000600)
Base Error code for Handshake Layer.
#define BASE_ERROR_TRANSPORTLAYER ( ERROR_CODE_BASE | 0x00000700)
Base Error code for Transport Layer.
#define BASE_ERROR_OCPLAYER ( ERROR_CODE_BASE | 0x00000800)
Base Error code for OCP.
#define BASE_ERROR_RECORDLAYER ( ERROR_CODE_BASE | 0x00000900)
Base Error code for Record Layer.
#define BASE_ERROR_WINDOW ( ERROR_CODE_BASE | 0x00000A00)
Base Error code for Windowing.
#define BASE_ERROR_MESSAGELAYER ( ERROR_CODE_BASE | 0x00000B00)
Base Error code for Message Layer.
#define BASE_ERROR_FLIGHT ( ERROR_CODE_BASE | 0x00000C00)
Base Error code for Flight Handler.
#define BASE_ERROR_CRYPTO_LAYER ( ERROR_CODE_BASE | 0x00000D00)
Base Error code for Crypto Layer.
#define BASE_ERROR_UDP ( ERROR_CODE_BASE | 0x00000E00)
Base Error code UDP.
#define OCP_HL_OK 0x75236512
Successful execution.
#define OCP_HL_ERROR 0XF3CA3154
Failure in execution.
#define OCP_HL_NULL_PARAM BASE_ERROR_HANDSHAKELAYER
Null Parameter(s)
#define OCP_HL_LENZERO_ERROR ( BASE_ERROR_HANDSHAKELAYER + 1)
Length of input is zero.
#define MAX_PMTU 1500
Maximum PMTU value.
#define MIN_PMTU 296
Minimum PMTU Value.
#define TLBUFFER_SIZE 1500
Buffer size to hold the received data.
#define ENCRYPTED_APP_OVERHEAD ( UDP_RECORD_OVERHEAD + EXPLICIT_NOUNCE_LENGTH + MAC_LENGTH )
Overhead length for encrypted message.
#define MAX_APP_DATALEN (PhAppOCPCtx)   ((((sAppOCPCtx_d*)PhAppOCPCtx)->sHandshake.wMaxPmtu) - ENCRYPTED_APP_OVERHEAD )
Macro to get the Maximum length of the Application data which can be sent.
#define OCP_CL_ERROR 0x51667F82
Failure in execution.
#define OCP_CL_OK 0x4C36F247
Successful Execution.
#define OCP_CL_NULL_PARAM BASE_ERROR_CRYPTO_LAYER
Null paramter.
#define OCP_CL_MALLOC_FAILURE ( BASE_ERROR_CRYPTO_LAYER + 1)
Malloc Failure in Crypto.
#define OCP_CL_ZERO_LEN ( BASE_ERROR_CRYPTO_LAYER + 2)
Zero Length Failure.
#define OCP_CL_INSUFFICIENT_MEMORY ( BASE_ERROR_CRYPTO_LAYER + 3)
Insufficient memory.
#define OCP_RL_ERROR 0x55667F82
Failure in execution.
#define OCP_RL_OK 0x297D9015
Internal status for success.
#define OCP_RL_INVALID_RECORD_LENGTH BASE_ERROR_RECORDLAYER
Invalid record length.
#define OCP_RL_INVALID_CONTENTTYPE ( BASE_ERROR_RECORDLAYER + 1)
Invalid record content type.
#define OCP_RL_INVALID_DEC_PAYLOAD_LEN ( BASE_ERROR_RECORDLAYER + 2)
Invalid decrypt payload lenght.
#define OCP_RL_INVALID_PROTOCOL_VERSION ( BASE_ERROR_RECORDLAYER + 3)
Invalid protocol version.
#define OCP_RL_INCORRECT_EPOCH ( BASE_ERROR_RECORDLAYER + 4)
Incorrect epoch.
#define OCP_RL_RECORD_LEN_MISMATCH ( BASE_ERROR_RECORDLAYER + 5)
Record length mismatch.
#define OCP_RL_BAD_RECORD ( BASE_ERROR_RECORDLAYER + 6)
Bad record.
#define OCP_RL_NO_DATA ( BASE_ERROR_RECORDLAYER + 7)
No data.
#define OCP_RL_LEN_GREATER_PMTU ( BASE_ERROR_RECORDLAYER + 8)
Data length is greater than PMTU.
#define OCP_RL_INVALID_INSTANCE ( BASE_ERROR_RECORDLAYER + 9)
Invalid record instance.
#define OCP_RL_ALERT_RECEIVED ( BASE_ERROR_RECORDLAYER + 10)
Alert record received.
#define OCP_RL_APPDATA_RECEIVED ( BASE_ERROR_RECORDLAYER + 11)
Alert record received.
#define OCP_RL_MALLOC_FAILURE ( BASE_ERROR_RECORDLAYER + 12)
Malloc Failure.
#define CONTENTTYPE_CIPHER_SPEC 0x14
Cipher Spec Content Spec.
#define CONTENTTYPE_ALERT 0x15
Alert Content Spec.
#define CONTENTTYPE_HANDSHAKE 0x16
Handshake Content Spec.
#define CONTENTTYPE_APP_DATA 0x17
Application Data Content Spec.
#define UDP_RECORD_OVERHEAD 41
UDP REcord overhead length.
#define MAC_LENGTH 8
Length of the MAC generated for encrypted message.
#define EXPLICIT_NOUNCE_LENGTH 8
Length of Explicit Nounce.
#define OCP_TL_ERROR 0xF1267AB3
General error.
#define OCP_TL_OK 0x72309781
Successful execution.
#define OCP_TL_NULL_PARAM BASE_ERROR_TRANSPORTLAYER
Null Parameter(S)
#define OCP_TL_BINDING_FAILURE ( BASE_ERROR_TRANSPORTLAYER + 1)
Null Parameter(S)
#define OCP_TL_NO_DATA ( BASE_ERROR_TRANSPORTLAYER + 2)
NO Data received.
#define OCP_TL_MALLOC_FAILURE ( BASE_ERROR_TRANSPORTLAYER + 3)
Malloc failure.
#define E_COMMS_UDP_ALLOCATE_FAILURE 0x80000100
Failure to allocate memory.
#define E_COMMS_UDP_BINDING_FAILURE 0x80000101
Binding failure to a port.
#define E_COMMS_UDP_NO_DATA_TO_SEND 0x80000102
No data present to send.
#define E_COMMS_UDP_NO_DATA_RECEIVED 0x80000103
No data received from the target.
#define E_COMMS_UDP_ROUTING_FAILURE 0x80000104
Failure to route the UDP packet.
#define E_COMMS_UDP_DEALLOCATION_FAILURE 0x80000105
Failure to deallocate the memory.
#define E_COMMS_UDP_COPY_BUFFER_FAILURE 0x80000106
Copy to the buffer failure.
#define E_COMMS_UDP_CONNECT_FAILURE 0x80000107
UDP connect failure.

Typedefs

typedef struct sHardwareCrypto_d sHardwareCrypto_d
Structure for Hardware Crypto.
typedef int32_t(* fGetUnixTime_d )(uint32_t *)
Function pointer to get the unix time.
typedef enum eMode_d eMode_d
Enumeration to specify the mode of operation of OCP.
typedef enum eProtVersion_d eProtVersion_d
Enumeration to specify the Protocol version.
typedef enum eAuthState_d eAuthState_d
Enum for Mutual Authentication states.
typedef struct sHandshake_d sHandshake_d
Structure containing Handshake related data.
typedef enum eFlight_d eFlight_d
Enum for Flights.
typedef int32_t(* fPerformHandshake_d )( sHandshake_d *)
Function pointer to perform Handshake.
typedef struct sCL_d sCL_d
Structure containing Crypto Layer information.
typedef int32_t(* fCLInit )( sCL_d *psCL, const void *)
Function pointer to Initialize Record Layer.
typedef int32_t(* fCLEncrypt )(const sCL_d *psCL, const sbBlob_d *PpsBlobPlainText, sbBlob_d *PpsBlobCipherText, uint16_t wLen)
Function pointer for Record Layer Send.
typedef int32_t(* fCLDecrypt )(const sCL_d *psCL, const sbBlob_d *PpsBlobCipherText, sbBlob_d *PpsBlobPlainText, uint16_t wLen)
Function pointer for Record Layer Receive.
typedef void(* fCLClose )( sCL_d *psCL)
Function pointer to close Record Layer.
typedef struct sConfigCL_d sConfigCL_d
Structure to configure Crypto Layer.
typedef struct sRL_d sRL_d
Structure containing Record Layer information.
typedef int32_t(* fRLInit )( sRL_d *psRL)
Function pointer to Initialize Record Layer.
typedef int32_t(* fRLSend )( sRL_d *psRL, uint8_t *pbBuffer, uint16_t wLen)
Function pointer for Record Layer Send.
typedef int32_t(* fRLRecv )( sRL_d *psRL, uint8_t *pbBuffer, uint16_t *pwLen)
Function pointer for Record Layer Receive.
typedef void(* fRLClose )( sRL_d *psRL)
Function pointer to close Record Layer.
typedef struct sConfigRL_d sConfigRL_d
Structure to configure Record Layer.
typedef enum eConnectionState_d eConnectionState_d
Enumeration to represent transport layer communication state.
typedef enum eReceiveCall_d eReceiveCall_d
This structure contains Ethernet communication data.
typedef struct sTL_d sTL_d
Structure holding Transport Layer Information.
typedef int32_t(* fTLInit )( sTL_d *psTL)
Function pointer for Transport Layer Init.
typedef int32_t(* fTLConnect )( sTL_d *psTL)
Function pointer for Transport Layer Connect.
typedef void(* fTLDisconnect )( sTL_d *psTL)
Function pointer for Transport Layer Disconnect.
typedef int32_t(* fTLSend )(const sTL_d *psTL, uint8_t *pbBuffer, uint16_t wLen)
Function pointer for Transport Layer Send.
typedef int32_t(* fTLRecv )(const sTL_d *psTL, uint8_t *pbBuffer, uint16_t *pwLen)
Function pointer for Transport Layer Receive.
typedef struct sConfigTL_d sConfigTL_d
Structure to configure Transport Layer.

Enumerations

enum eMode_d {
eClient = 0x24,
eServer = 0x81
}
Enumeration to specify the mode of operation of OCP. More...
enum eProtVersion_d {
eDTLS_1_2 ,
eTLS_1_2
}
Enumeration to specify the Protocol version. More...
enum eAuthState_d {
eAuthInitialised ,
eAuthStarted ,
eAuthCompleted ,
eAuthSessionClosed
}
Enum for Mutual Authentication states.
enum eFlight_d {
eFlight0 = 0,
eFlight1 = 1,
eFlight2 = 2,
eFlight3 = 3,
eFlight4 = 4,
eFlight5 = 5,
eFlight6 = 6,
eDefault
}
Enum for Flights. More...
enum eConnectionState_d {
eConnected = 0x01,
eDisconnected = 0x02
}
Enumeration to represent transport layer communication state. More...
enum eReceiveCall_d {
eBlocking = 0x10,
eNonBlocking = 0x20
}
This structure contains Ethernet communication data. More...

Functions

int32_t HWCL_Init ( sCL_d *PpsCL, const void *PpParam)
Initialises the Hardware Crypto Layer.
int32_t HWCL_Encrypt (const sCL_d *PpsCL, const sbBlob_d *PpsBlobPlainText, sbBlob_d *PpsBlobCipherText, uint16_t PwLen)
Encrypts the input plain text using Security chip.
int32_t HWCL_Decrypt (const sCL_d *PpsCL, const sbBlob_d *PpsBlobCipherText, sbBlob_d *PpsBlobPlainText, uint16_t PwLen)
Decrypts the input cipher text using Security chip.
void HWCL_Close ( sCL_d *PpsCL)
Closes the Crypto layer.

Detailed Description

Infineon OPTIGA(TM) Trust X mutual authentication APIs.

Enumeration Type Documentation

Enumeration to represent transport layer communication state.

Enumerator
eConnected

Connected to network.

eDisconnected

Disconnected from network.

Enum for Flights.

Enumerator
eFlight0

Flight 0.

eFlight1

Flight 1.

eFlight2

Flight 2.

eFlight3

Flight 3.

eFlight4

Flight 4.

eFlight5

Flight 5.

eFlight6

Flight 6.

eDefault

Default.

Enumeration to specify the mode of operation of OCP.

Enumerator
eClient

Client.

eServer

Server.

Enumeration to specify the Protocol version.

Enumerator
eDTLS_1_2

DTLS 1.2.

eTLS_1_2

TLS 1.2.

This structure contains Ethernet communication data.

Enumerator
eBlocking

Blocking Ethernet call.

eNonBlocking

Non Blocking Ethernet call.