C API for BALTECH SDK
errorcodes.h File Reference

Contains all possible error codes that could be returned by BRP library. More...

Go to the source code of this file.

Macros

BRP_MASK_XXX

Defines bitmasks for :brp_errcode. If a errcode is and'ed with one of the bitmasks the corresponding part of the error can be extracted.

#define BRP_ERRMASK_GROUP   0xFFFF0000
 
#define BRP_ERRMASK_CODE   0x0000FFFF
 
BRP_ERRGRP_XXX

#define BRP_ERRGRP_DEVICE   0x00010000u
 A command failed to execute due to a error on the device side which is not host communication related (card error, ...) More...
 
#define BRP_ERRGRP_COMM_UNSUPPORTED   0x00800000u
 A command cannot be executed as the device does not support the requested feature. More...
 
#define BRP_ERRGRP_COMM_ACCESSDENIED   0x01000000u
 A command cannot be executed as the device does not allow access this features in the current operations mode. More...
 
#define BRP_ERRGRP_COMM_TIMEOUT   0x02000000u
 A the device or host exceeded the allowed time for sending a frame. More...
 
#define BRP_ERRGRP_COMM_FRAMEFORMAT   0x04000000u
 The device or host send a frame that does not correspond the expected frame. More...
 
#define BRP_ERRGRP_COMM_UNDEFINED   0x08000000u
 any device <-> host communication problem which is not categoriezed by one of the BRP_ERRGRP_COMM_* macros More...
 
#define BRP_ERRGRP_COMMUNICATION   0x0F800000u
 Any kind of device <-> host communication problem. More...
 
#define BRP_ERRGRP_LIB_INVALIDCALL   0x10000000u
 The libraries API was used in an invalid manner. More...
 
#define BRP_ERRGRP_LIB_NONRECOVERABLE   0x20000000u
 A fatal error occured, which the library cannot recover from. More...
 
#define BRP_ERRGRP_LIB_OS   0x40000000u
 A error in the operating system layer (i.e. More...
 
#define BRP_ERRGRP_LIB_UNDEFINED   0x80000000u
 any library specific error which is not one of the BRP_ERRGRP_LIB_* macros. More...
 
#define BRP_ERRGRP_LIBRARY   0xF0000000u
 Any error which occured in the library. More...
 
BRP_ERR_XXX

A list of standard error codes that required all over this library.

#define BRP_OK   0x00000000u
 If a function of return type :brp_errcode runs properly, it returns this value. More...
 
#define BRP_ERR_INTERNAL   (0x0001u | BRP_ERRGRP_LIB_NONRECOVERABLE)
 This error must not be returned if the library operatares correctly. More...
 
#define BRP_ERR_CMD_TIMEOUT   (0x0002u | BRP_ERRGRP_COMM_TIMEOUT)
 A BRP command that was send by brp_send_frame() exceeded the specified timeout (see also brp_send_cmd() / brp_exec_cmd()). More...
 
#define BRP_ERR_FRAMEFORMAT   (0x0003u | BRP_ERRGRP_COMM_FRAMEFORMAT)
 The frame returned from the reader does not match the format expected by the BRP protocol. More...
 
#define BRP_ERR_INVALID_API_CALL   (0x0004u | BRP_ERRGRP_LIB_INVALIDCALL)
 Returned if the a parameter contains an invalid value. More...
 
#define BRP_ERR_OUT_OF_MEMORY   (0x0005u | BRP_ERRGRP_LIB_NONRECOVERABLE)
 The heap has not enough memory to allocate a buffer that is required for the wanted operation. More...
 
#define BRP_ERR_NOT_IMPLEMENTED   (0x0006u | BRP_ERRGRP_LIB_INVALIDCALL)
 The requested feature is not implemented yet. More...
 
#define BRP_ERR_BUSY   (0x0007u | BRP_ERRGRP_LIB_INVALIDCALL)
 The Library is not ready to send/receive data. More...
 
#define BRP_ERR_CLOSED   (0x0008u | BRP_ERRGRP_LIB_INVALIDCALL)
 The protocol/device is not opened. More...
 
#define BRP_ERR_BUFFER_OVERFLOW   (0x0009u | BRP_ERRGRP_COMM_FRAMEFORMAT)
 A Command's response is bigger than the buffer provided for the response. More...
 
#define BRP_ERR_OPEN_IO   (0x000Au | BRP_ERRGRP_LIB_OS)
 Failed to open the I/O connection. More...
 
#define BRP_ERR_WRITE_IO   (0x000Bu | BRP_ERRGRP_LIB_OS)
 Failed to send data via IO connection. More...
 
#define BRP_ERR_WAIT_IO   (0x000Cu | BRP_ERRGRP_LIB_OS)
 Failed to wait for data via IO connection. More...
 
#define BRP_ERR_READ_IO   (0x000Du | BRP_ERRGRP_LIB_OS)
 Failed to wait for data via IO connection. More...
 
#define BRP_ERR_CLOSE_IO   (0x000Eu | BRP_ERRGRP_LIB_OS)
 Failed to open the I/O connection. More...
 
#define BRP_ERR_PAYLOAD_FORMAT   (0x000Fu | BRP_ERRGRP_COMM_FRAMEFORMAT)
 The payload of a frame has invalid format. More...
 
#define BRP_ERR_CRYPTO_FORMAT   (0x0010u | BRP_ERRGRP_COMM_FRAMEFORMAT)
 The payload of a encrypted/PKI command or a PKI certificate had invalid format/response. More...
 
#define BRP_ERR_PKI_FORMAT   BRP_ERR_CRYPTO_FORMAT
 
#define BRP_ERR_DEV_CERT_FORMAT   (0x0011u | BRP_ERRGRP_COMM_FRAMEFORMAT)
 The devices PKI end-Certificate had invalid format. More...
 
#define BRP_ERR_HOST_CERT_FORMAT   (0x00012u | BRP_ERRGRP_COMM_FRAMEFORMAT)
 The hosts PKI Certificate or the devices CA certificates (which are stored on the host!) had invalid format. More...
 
#define BRP_ERR_PKI_OPERATION_FAILED   (0x0013u | BRP_ERRGRP_LIB_NONRECOVERABLE)
 A PKI operation cannot be executed. More...
 
#define BRP_ERR_DEV_CERT_INVALID_SIGNATURE   (0x0014u | BRP_ERRGRP_COMM_ACCESSDENIED)
 The ECC certificate of the device is invalid. More...
 
#define BRP_ERR_HOST_CERT_INVALID_SIGNATURE   (0x0015u | BRP_ERRGRP_COMM_ACCESSDENIED)
 The ECC certificate of the host is invalid or the devices CA certificates (which are stored on the host!) have invalid signature. More...
 
#define BRP_ERR_SEC_LEVEL_NOT_SUPPORTED   (0x0016u | BRP_ERRGRP_COMM_ACCESSDENIED)
 The given securitylevel is not supported. More...
 
#define BRP_ERR_SEQ_CTR_NOT_IN_SYNC   (0x0017u | BRP_ERRGRP_COMM_ACCESSDENIED)
 The sequence counter is not in sync any more. More...
 
#define BRP_ERR_INVALID_HMAC   (0x0018u | BRP_ERRGRP_COMM_ACCESSDENIED)
 The HMAC is invalid. More...
 
#define BRP_ERR_CRYPTO_RECV_DEV   (0x0019u | BRP_ERRGRP_COMM_ACCESSDENIED)
 device failed to decrypt PKI command successfully More...
 
#define BRP_ERR_UNSUPPORTED_COMMAND   (0x0020u | BRP_ERRGRP_COMM_UNSUPPORTED)
 The specified BRP command is not supported by the connected device. More...
 
#define BRP_ERR_COMMAND_DENIED   (0x0021u |BRP_ERRGRP_COMM_ACCESSDENIED)
 The BRP command is not allowed to be executed from the current security level. More...
 
#define BRP_ERR_UNEXPECTED_FRAME   (0x0022u | BRP_ERRGRP_COMM_FRAMEFORMAT)
 The received frame is a valid BRP frame but not expected in this protocol state. More...
 
#define BRP_ERR_TIMEOUT   (0x0023u | BRP_ERRGRP_COMM_TIMEOUT)
 The response to a brp_recv_frame() / brp_recv_any_frame() is not returned within the specified timeout. More...
 
#define BRP_ERR_CALLED_INVALID_FRAME   (0x0024u | BRP_ERRGRP_LIB_INVALIDCALL)
 Returned if the a frame passed to a function to be transferred to the device has invalid format. More...
 
#define BRP_ERR_EXISTING_LAYER   (0x0025u | BRP_ERRGRP_LIB_INVALIDCALL)
 The layer is tried to be added to a composite protocol (see brp_add_layer() / brp_set_layer()) although already added earliert. More...
 
#define BRP_ERR_GEN_RANDOM_DATA   (0x0026u | BRP_ERRGRP_LIB_OS)
 The OS failed to generate a random number. More...
 
#define BRP_ERR_INVALID_KEY   (0x0027u | BRP_ERRGRP_COMM_ACCESSDENIED)
 The readers KEY does not match the key of the host. More...
 
#define BRP_ERR_STATUS(cmd_code, statuscode)
 Error codes that happen on the reader side are encoded by this macro. More...
 

Typedefs

typedef unsigned int brp_errcode
 This type is used library-wide for passing error codes in the return value of functions. More...
 

Detailed Description

Contains all possible error codes that could be returned by BRP library.

Please note that this does not include error codes, that are generated in the device (see BRP_ERRGRP_DEVICE)

Definition in file errorcodes.h.