uFCoder 2.62
Loading...
Searching...
No Matches
uFCoder.h File Reference
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <jni.h>
#include <TargetConditionals.h>

Go to the source code of this file.

Classes

struct  ecc_curve_domain_params_t
 
struct  ecc_key_param_t
 
struct  icaoMlSearchCriteria_t
 
struct  t2t_version_struct
 

Macros

#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_CHANGE   0x09
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x0B
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_CHANGE_APP_IDS_WITH_AUTH   0x09
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_NOT_CHANGE   0x08
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_NOT_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x0A
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_NOT_CHANGE_APP_IDS_WITH_AUTH   0x08
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_CHANGE   0x01
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x03
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_CHANGE_APP_IDS_WITH_AUTH   0x01
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE   0x00
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x02
 
#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE_APP_IDS_WITH_AUTH   0x00
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_CHANGE   0x0F
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_CHANGE_APP_IDS_WIDTH_AUTH   0x0D
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x0F
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_NOT_CHANGE   0x0E
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_NOT_CHANGE_APP_IDS_WIDTH_AUTH   0x0C
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_NOT_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x0E
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_CHANGE   0x07
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x07
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_CHANGE_APP_IDS_WITH_AUTH   0x05
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE   0x06
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE_APP_IDS_WIDTHOUT_AUTH   0x06
 
#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE_APP_IDS_WITH_AUTH   0x04
 
#define DL_AID_RID_PLUS   "\xF0" "DLogic"
 
#define DL_API   /*__declspec(dllimport) */ __stdcall
 
#define DL_APPLE_VAS_V1   0x6A
 
#define DL_APPLE_VAS_V2   0x6B
 
#define DL_GENERIC_ISO14443_3_TYPE_B   0x42
 
#define DL_GENERIC_ISO14443_4   0x40
 
#define DL_GENERIC_ISO14443_4_TYPE_B   0x41
 
#define DL_IMEI_UID   0x80
 
#define DL_MIFARE_CLASSIC_1K   0x21
 
#define DL_MIFARE_CLASSIC_2K   0x19
 
#define DL_MIFARE_CLASSIC_4K   0x22
 
#define DL_MIFARE_DESFIRE   0x27
 
#define DL_MIFARE_DESFIRE_EV1_2K   0x28
 
#define DL_MIFARE_DESFIRE_EV1_4K   0x29
 
#define DL_MIFARE_DESFIRE_EV1_8K   0x2A
 
#define DL_MIFARE_DESFIRE_EV2_2K   0x2B
 
#define DL_MIFARE_DESFIRE_EV2_4K   0x2C
 
#define DL_MIFARE_DESFIRE_EV2_8K   0x2D
 
#define DL_MIFARE_DESFIRE_EV3_2K   0x45
 
#define DL_MIFARE_DESFIRE_EV3_4K   0x46
 
#define DL_MIFARE_DESFIRE_EV3_8K   0x47
 
#define DL_MIFARE_DESFIRE_LIGHT   0x3F
 
#define DL_MIFARE_MINI   0x20
 
#define DL_MIFARE_PLUS_EV1_2K_SL0   0x43
 
#define DL_MIFARE_PLUS_EV1_2K_SL1   0x30
 
#define DL_MIFARE_PLUS_EV1_2K_SL3   0x34
 
#define DL_MIFARE_PLUS_EV1_4K_SL0   0x44
 
#define DL_MIFARE_PLUS_EV1_4K_SL1   0x37
 
#define DL_MIFARE_PLUS_EV1_4K_SL3   0x3B
 
#define DL_MIFARE_PLUS_S_2K_SL0   0x23
 
#define DL_MIFARE_PLUS_S_2K_SL1   0x2E
 
#define DL_MIFARE_PLUS_S_2K_SL3   0x32
 
#define DL_MIFARE_PLUS_S_4K_SL0   0x24
 
#define DL_MIFARE_PLUS_S_4K_SL1   0x35
 
#define DL_MIFARE_PLUS_S_4K_SL3   0x39
 
#define DL_MIFARE_PLUS_SE_SL0   0x3C
 
#define DL_MIFARE_PLUS_SE_SL1   0x3D
 
#define DL_MIFARE_PLUS_SE_SL3   0x3E
 
#define DL_MIFARE_PLUS_X_2K_SL0   0x25
 
#define DL_MIFARE_PLUS_X_2K_SL1   0x2F
 
#define DL_MIFARE_PLUS_X_2K_SL2   0x31
 
#define DL_MIFARE_PLUS_X_2K_SL3   0x33
 
#define DL_MIFARE_PLUS_X_4K_SL0   0x26
 
#define DL_MIFARE_PLUS_X_4K_SL1   0x36
 
#define DL_MIFARE_PLUS_X_4K_SL2   0x38
 
#define DL_MIFARE_PLUS_X_4K_SL3   0x3A
 
#define DL_MIFARE_ULTRALIGHT   0x01
 
#define DL_MIFARE_ULTRALIGHT_C   0x04
 
#define DL_MIFARE_ULTRALIGHT_EV1_11   0x02
 
#define DL_MIFARE_ULTRALIGHT_EV1_21   0x03
 
#define DL_MIKRON_MIK640D   0x0B
 
#define DL_MOBILE_AID   0x60
 
#define DL_NT3H_1101   0x0D
 
#define DL_NT3H_1201   0x0E
 
#define DL_NT3H_2111   0x0F
 
#define DL_NT3H_2211   0x10
 
#define DL_NTAG_203   0x05
 
#define DL_NTAG_210   0x06
 
#define DL_NTAG_210U   0x14
 
#define DL_NTAG_212   0x07
 
#define DL_NTAG_213   0x08
 
#define DL_NTAG_213_TT   0x15
 
#define DL_NTAG_215   0x09
 
#define DL_NTAG_216   0x0A
 
#define DL_NTAG_413_DNA   0x11
 
#define DL_NTAG_424_DNA   0x12
 
#define DL_NTAG_424_DNA_TT   0x13
 
#define DL_RAW_SIZEOF_SZ(x)   (sizeof(x) - 1)
 
#define DL_SIGNER_AID   DL_AID_RID_PLUS DL_SIGNER_PIX
 
#define DL_SIGNER_AID_SIZE   9
 
#define DL_SIGNER_PIX   "\x00\x01"
 
#define DL_STORAGE_AID   DL_AID_RID_PLUS DL_STORAGE_PIX
 
#define DL_STORAGE_AID_SIZE   9
 
#define DL_STORAGE_PIX   "\x01\x01"
 
#define DL_UNKNOWN_ISO_14443_4   0x40
 
#define DLSigner10   0xA3
 
#define DLSigner145   0xAA
 
#define DLSigner22   0xA1
 
#define DLSigner30   0xA2
 
#define DLSigner81   0xA0
 
#define ECC_SIG_LEN   32
 
#define IN
 
#define INS_DEL_EC_KEY_PAIR   0x6F
 
#define INS_DEL_RSA_KEY_PAIR   0x5F
 
#define INS_DELETE_FILE   0x3F
 
#define INS_GEN_EC_KEY_PAIR   0x62
 
#define INS_GEN_RSA_KEY_PAIR   0x52
 
#define INS_GET_EC_AB   0x65
 
#define INS_GET_EC_FIELD   0x64
 
#define INS_GET_EC_G   0x66
 
#define INS_GET_EC_PUBKEY   0x63
 
#define INS_GET_EC_RK_SIZE   0x67
 
#define INS_GET_FILE_SIZE   0x32
 
#define INS_GET_OBJ   0x41
 
#define INS_GET_OBJ_ID   0x42
 
#define INS_GET_OBJ_SUBJECT   0x43
 
#define INS_GET_PIN_TRIES_REMAINING   0x21
 
#define INS_GET_RSA_PUBKEY_EXPONENT   0x54
 
#define INS_GET_RSA_PUBKEY_MODULUS   0x53
 
#define INS_GET_SIGNATURE   0x71
 
#define INS_INVALIDATE_CERT   0x33
 
#define INS_LIST_FILES   0x31
 
#define INS_LOGIN   0x20
 
#define INS_PIN_CHANGE   0x22
 
#define INS_PIN_DISABLE   0x25
 
#define INS_PIN_ENABLE   0x24
 
#define INS_PIN_UNBLOCK   0x23
 
#define INS_PUT_OBJ   0x31
 
#define INS_PUT_OBJ_SUBJECT   0x32
 
#define INS_READ_FILE   0x33
 
#define INS_SET_EC_PRIKEY   0x61
 
#define INS_SET_RSA_PRIKEY   0x51
 
#define INS_WRITE_FILE   0x34
 
#define JC_APP_MAX_CA_CERT_INDEX   ((12) - 1)
 
#define JC_APP_MAX_ID_SIZE   253
 
#define JC_APP_MAX_KEY_INDEX   ((3) - 1)
 
#define JC_APP_MAX_PIN_LENGTH   8
 
#define JC_APP_MAX_SIGNATURE_LEN   256
 
#define JC_APP_MAX_SUBJECT_SIZE   255
 
#define JC_DL_STORAGE_MAX_FILE_SIZE   (32 * 1024 - 2)
 
#define JC_DL_STORAGE_MAX_FILES   16
 
#define M24SR02   0x82
 
#define M24SR02_AUTOMOTIVE   0x8A
 
#define M24SR04   0x86
 
#define M24SR04_AUTOMOTIVE   0x8E
 
#define M24SR16   0x85
 
#define M24SR16_AUTOMOTIVE   0x8D
 
#define M24SR64   0x84
 
#define M24SR64_AUTOMOTIVE   0x8C
 
#define MAX_ATS_LEN   25
 
#define MAX_ECC_CURVE_NAME_LEN   30
 
#define MAX_UID_LEN   10
 
#define MF1ICS20   0x09
 
#define MF1ICS50   0x08
 
#define MF1ICS70   0x18
 
#define MIFARE_CLASSIC_1k   0x08
 
#define MIFARE_CLASSIC_4k   0x18
 
#define MIFARE_CLASSIC_MINI   0x09
 
#define NFC_T2T_GENERIC   0x0C
 
#define OUT
 
#define PAD_PKCS1   PAD_PKCS1_V1_5
 
#define PIN_MAX_LENGTH   8
 
#define PIN_MAX_TRIES   5
 
#define PIN_MIN_LENGTH   4
 
#define PUK_LENGTH   8
 
#define PUK_MAX_TRIES   10
 
#define SLE66R35   0x88
 
#define TAG_UNKNOWN   0
 
#define VAR
 

Typedefs

typedef const char * c_string
 
typedef void(* CardDetectedCallback) (void *_Nonnull context, const char *uid, const char *dl_card_type, const char *manufacturer)
 
typedef void(* CardRemovedCallback) (void *_Nonnull context)
 
typedef enum E_EMULATION_MODES emul_modes_t
 
typedef enum E_EMULATION_STATES emul_states_t
 
typedef enum E_PCD_MGR_STATES pcd_states_t
 
typedef enum E_SAM_HW_VER SAM_HW_TYPE
 
typedef void(* SessionErrorCallback) (void *_Nonnull context, UFR_SESSION_STATUS error_code, const char *error_description)
 
typedef struct t2t_version_struct t2t_version_t
 
typedef struct S_UFR_HANDLE * UFR_HANDLE
 
typedef enum UFCODER_SESSION_CODES UFR_SESSION_STATUS
 
typedef enum UFCODER_ERROR_CODES UFR_STATUS
 

Enumerations

enum  ADDRESS_MODE { ADDRESS_MODE_BLOCK = 0 , ADDRESS_MODE_SECTOR }
 
enum  CARD_ENCRYPTION_CODE_TYPE { CODE_TYPE_STANDARD , CODE_TYPE_GROUP , CODE_TYPE_DAILY_RANGE }
 
enum  dl_sec_code_t { USER_PIN = 0 , SO_PIN , USER_PUK , SO_PUK }
 
enum  E_ASYMMETRIC_KEY_TYPES { RSA_PRIVATE_KEY = 0 , ECDSA_PRIVATE_KEY , ASYMMETRIC_KEY_TYPES_NUM }
 
enum  E_BIT_ENCODINGS { ENCODING_BIN , ENCODING_HEX }
 
enum  E_CARD_IN_SAM_SLOT { SAM_SLOT_MIFARE_SAM_AV2 = 1 , SAM_SLOT_GENERIC = 4 }
 
enum  E_CERTIFICATE_TYPES { X509_PEM , X509_DER , X509_GIDS_NFC , E_CERTIFICATE_TYPES_NUM }
 
enum  E_CUSTOM_UI_DETECTED_MODES {
  CUSTOM_UI_DETECTED_MODE_NONE = 0 , CUSTOM_UI_DETECTED_MODE_STATIC_LED , CUSTOM_UI_DETECTED_MODE_STATIC_LED_BEEP , CUSTOM_UI_DETECTED_MODE_BEEP ,
  CUSTOM_UI_DETECTED_MODE_BLINKING_LED , CUSTOM_UI_DETECTED_MODE_BLINKING_LED_BEEP , CUSTOM_UI_DETECTED_MODES_NUMBER_INDICATOR
}
 
enum  E_CUSTOM_UI_IDLE_MODES { CUSTOM_UI_IDLE_MODE_NONE = 0 , CUSTOM_UI_IDLE_MODE_STATIC_LED , CUSTOM_UI_IDLE_MODE_BLINKING_LED , CUSTOM_UI_IDLE_MODES_NUMBER_INDICATOR }
 
enum  E_ECC_CURVE_DEFINITION_TYPES { ECC_CURVE_INDEX , ECC_CURVE_NAME , ECC_CURVE_DOMAIN_PARAMETERS , ECC_CURVE_DEFINITION_TYPES_NUM }
 
enum  E_ECC_CURVES {
  secp112r1 , secp112r2 , secp128r1 , secp128r2 ,
  secp160r1 , secp160r2 , secp160k1 , secp192r1 ,
  prime192v2 , prime192v3 , secp192k1 , secp224r1 ,
  secp224k1 , secp256r1 , secp256k1 , secp384r1 ,
  secp521r1 , prime239v1 , prime239v2 , prime239v3 ,
  brainpoolP160r1 , brainpoolP192r1 , brainpoolP224r1 , brainpoolP256r1 ,
  brainpoolP320r1 , brainpoolP384r1 , brainpoolP512r1 , brainpoolP160t1 ,
  brainpoolP192t1 , brainpoolP224t1 , brainpoolP256t1 , brainpoolP320t1 ,
  brainpoolP384t1 , brainpoolP512t1 , ECC_CURVES_NUM
}
 
enum  E_EMULATION_MODES { TAG_EMU_DISABLED , TAG_EMU_DEDICATED , TAG_EMU_COMBINED , TAG_EMU_AUTO_AD_HOC }
 
enum  E_EMULATION_STATES {
  EMULATION_NONE , EMULATION_IDLE , EMULATION_AUTO_COLL , EMULATION_ACTIVE ,
  EMULATION_HALT , EMULATION_POWER_OFF
}
 
enum  E_KEY_TYPES { TYPE_RSA_PRIVATE = 0 , TYPE_RSA_CRT_PRIVATE , TYPE_EC_F2M_PRIVATE , TYPE_EC_FP_PRIVATE }
 
enum  E_MRTD_IMG_TYPE { MRTD_IMG_JPEG = 0 , MRTD_IMG_JP2 = 1 , MRTD_IMG_JPEG2000 = 1 , MRTD_IMG_TYPE_UNKNOWN = 0xFFFFFFFF }
 
enum  E_OBJ_TYPES { OBJ_TYPE_RSA_CERT = 0 , OBJ_TYPE_EC_CERT , OBJ_TYPE_CA_CERT , OBJ_TYPES_COUNT }
 
enum  E_PCD_MGR_STATES {
  PCD_MGR_NO_RF_GENERATED , PCD_MGR_14443A_POLLING , PCD_MGR_14443A_SELECTED , PCD_MGR_CE_DEDICATED ,
  PCD_MGR_CE_COMBO_START , PCD_MGR_CE_COMBO , PCD_MGR_CE_COMBO_IN_FIELD
}
 
enum  E_PRINT_VERBOSE_LEVELS { PRINT_NONE , PRINT_ESSENTIALS , PRINT_DETAILS , PRINT_ALL_PLUS_STATUSES }
 
enum  E_PUB_KEY_TYPES { PUB_KEY_TYPE_RSA , PUB_KEY_TYPE_ECDSA_NAMED_CURVE , PUB_KEY_TYPE_ECDSA_DOMAIN_PARAMS , PUB_KEY_TYPES_NUM }
 
enum  E_READER_TYPE {
  AUTO = 0 , UFR_TYPE = 1 , UFR_RS232_TYPE = 2 , BASEHD_UFR_TYPE = 3 ,
  UFR_ONLINE_TYPE = 4 , INTERNAL_NFC = 5
}
 
enum  E_RGB_PORT_NAMES { EXTERNAL_RGB_PORT , INTERNAL_RGB_PORT }
 
enum  E_SAM_HW_VER {
  SAM_UNKNOWN_TYPE , SAM_T1AD2060_AV1_MODE , SAM_T1AD2060_AV2_MODE , SAM_T1AR1070_AV1_MODE ,
  SAM_T1AR1070_AV2_MODE
}
 
enum  E_SIGNATURE_SCH_TYPES { RSA_PKCS1 , RSA_PKCS1_PSS , ECDSA , SIGNATURE_SCH_TYPES_NUM }
 
enum  E_SIGNATURE_SCHEMES {
  SHA1_WITH_RSA , SHA256_WITH_RSA , SHA384_WITH_RSA , SHA512_WITH_RSA ,
  SHA224_WITH_RSA , SHA512_224_WITH_RSA , SHA512_256_WITH_RSA , RSA_PSS ,
  ECDSA_WITH_SHA1 , ECDSA_WITH_SHA256 , ECDSA_WITH_SHA384 , ECDSA_WITH_SHA512 ,
  ECDSA_WITH_SHA224 , SIGNATURE_SCHEMES_NUM
}
 
enum  E_SIGNER_CIPHERS { SIG_CIPHER_RSA = 0 , SIG_CIPHER_ECDSA , SIG_CIPHER_MAX_SUPPORTED }
 
enum  E_SIGNER_DIGESTS {
  ALG_NULL = 0 , ALG_SHA , ALG_SHA_256 , ALG_SHA_384 ,
  ALG_SHA_512 , ALG_SHA_224 , ALG_SHA_512_224 , ALG_SHA_512_256 ,
  SIG_DIGEST_MAX_SUPPORTED
}
 
enum  E_SIGNER_RSA_PADDINGS { PAD_NULL = 0 , PAD_PKCS1_V1_5 , PAD_PKCS1_PSS , SIG_PAD_MAX_SUPPORTED }
 
enum  KEY_TYPE { AES_KEY_TYPE , DES3K_KEY_TYPE , DES_KEY_TYPE , DES2K_KEY_TYPE }
 
enum  MIFARE_AUTHENTICATION { MIFARE_AUTHENT1A = 0x60 , MIFARE_AUTHENT1B = 0x61 }
 
enum  MIFARE_PLUS_AES_AUTHENTICATION { MIFARE_PLUS_AES_AUTHENT1A = 0x80 , MIFARE_PLUS_AES_AUTHENT1B = 0x81 }
 
enum  MIFARE_PLUS_AES_KEY_TYPE { MIFARE_PLUS_AES_KEY_A = 1 , MIFARE_PLUS_AES_KEY_B = 2 }
 
enum  NDEF_SKYPE_ACTION { CALL = 0 , CHAT }
 
enum  NDEF_STORAGE_MODE { STORE_INTO_READER = 0 , STORE_INTO_CARD }
 
enum  T2T_AUTHENTICATION {
  T2T_NO_PWD_AUTH = 0 , T2T_RKA_PWD_AUTH = 1 , T2T_PK_PWD_AUTH = 3 , T2T_WITHOUT_PWD_AUTH = 0x60 ,
  T2T_WITH_PWD_AUTH = 0x61
}
 
enum  T4T_AUTHENTICATION { T4T_WITHOUT_PWD_AUTH = 0x60 , T4T_PK_PWD_AUTH = 0x80 , T4T_RKA_PWD_AUTH = 0x02 }
 
enum  UFCODER_ERROR_CODES {
  UFR_OK = 0x00 , UFR_COMMUNICATION_ERROR = 0x01 , UFR_CHKSUM_ERROR = 0x02 , UFR_READING_ERROR = 0x03 ,
  UFR_WRITING_ERROR = 0x04 , UFR_BUFFER_OVERFLOW = 0x05 , UFR_MAX_ADDRESS_EXCEEDED = 0x06 , UFR_MAX_KEY_INDEX_EXCEEDED = 0x07 ,
  UFR_NO_CARD = 0x08 , UFR_COMMAND_NOT_SUPPORTED = 0x09 , UFR_FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER = 0x0A , UFR_ADDRESSED_BLOCK_IS_NOT_SECTOR_TRAILER = 0x0B ,
  UFR_WRONG_ADDRESS_MODE = 0x0C , UFR_WRONG_ACCESS_BITS_VALUES = 0x0D , UFR_AUTH_ERROR = 0x0E , UFR_PARAMETERS_ERROR = 0x0F ,
  UFR_MAX_SIZE_EXCEEDED = 0x10 , UFR_UNSUPPORTED_CARD_TYPE = 0x11 , UFR_COMMUNICATION_BREAK = 0x50 , UFR_NO_MEMORY_ERROR = 0x51 ,
  UFR_CAN_NOT_OPEN_READER = 0x52 , UFR_READER_NOT_SUPPORTED = 0x53 , UFR_READER_OPENING_ERROR = 0x54 , UFR_READER_PORT_NOT_OPENED = 0x55 ,
  UFR_CANT_CLOSE_READER_PORT = 0x56 , UFR_BLE_INVALID_PAIRING = 0x57 , UFR_I2C_BUS_ERROR = 0x6A , UFR_ECC_STORAGE_ERROR = 0x6B ,
  UFR_WRITE_VERIFICATION_ERROR = 0x70 , UFR_BUFFER_SIZE_EXCEEDED = 0x71 , UFR_VALUE_BLOCK_INVALID = 0x72 , UFR_VALUE_BLOCK_ADDR_INVALID = 0x73 ,
  UFR_VALUE_BLOCK_MANIPULATION_ERROR = 0x74 , UFR_WRONG_UI_MODE = 0x75 , UFR_KEYS_LOCKED = 0x76 , UFR_KEYS_UNLOCKED = 0x77 ,
  UFR_WRONG_PASSWORD = 0x78 , UFR_CAN_NOT_LOCK_DEVICE = 0x79 , UFR_CAN_NOT_UNLOCK_DEVICE = 0x7A , UFR_DEVICE_EEPROM_BUSY = 0x7B ,
  UFR_RTC_SET_ERROR = 0x7C , ANTI_COLLISION_DISABLED = 0x7D , NO_TAGS_ENUMERRATED = 0x7E , CARD_ALREADY_SELECTED = 0x7F ,
  UFR_WRONG_NDEF_CARD_FORMAT = 0x80 , UFR_NDEF_MESSAGE_NOT_FOUND = 0x81 , UFR_NDEF_UNSUPPORTED_CARD_TYPE = 0x82 , UFR_NDEF_CARD_FORMAT_ERROR = 0x83 ,
  UFR_MAD_NOT_ENABLED = 0x84 , UFR_MAD_VERSION_NOT_SUPPORTED = 0x85 , UFR_NDEF_MESSAGE_NOT_COMPATIBLE = 0x86 , FORBIDDEN_IN_TAG_EMULATION_MODE = 0x90 ,
  UFR_FT_STATUS_ERROR_1 = 0xA0 , UFR_FT_STATUS_ERROR_2 = 0xA1 , UFR_FT_STATUS_ERROR_3 = 0xA2 , UFR_FT_STATUS_ERROR_4 = 0xA3 ,
  UFR_FT_STATUS_ERROR_5 = 0xA4 , UFR_FT_STATUS_ERROR_6 = 0xA5 , UFR_FT_STATUS_ERROR_7 = 0xA6 , UFR_FT_STATUS_ERROR_8 = 0xA7 ,
  UFR_FT_STATUS_ERROR_9 = 0xA8 , UFR_MFP_COMMAND_OVERFLOW = 0xB0 , UFR_MFP_INVALID_MAC = 0xB1 , UFR_MFP_INVALID_BLOCK_NR = 0xB2 ,
  UFR_MFP_NOT_EXIST_BLOCK_NR = 0xB3 , UFR_MFP_COND_OF_USE_ERROR = 0xB4 , UFR_MFP_LENGTH_ERROR = 0xB5 , UFR_MFP_GENERAL_MANIP_ERROR = 0xB6 ,
  UFR_MFP_SWITCH_TO_ISO14443_4_ERROR = 0xB7 , UFR_MFP_ILLEGAL_STATUS_CODE = 0xB8 , UFR_MFP_MULTI_BLOCKS_READ = 0xB9 , NT4H_COMMAND_ABORTED = 0xC0 ,
  NT4H_LENGTH_ERROR = 0xC1 , NT4H_PARAMETER_ERROR = 0xC2 , NT4H_NO_SUCH_KEY = 0xC3 , NT4H_PERMISSION_DENIED = 0xC4 ,
  NT4H_AUTHENTICATION_DELAY = 0xC5 , NT4H_MEMORY_ERROR = 0xC6 , NT4H_INTEGRITY_ERROR = 0xC7 , NT4H_FILE_NOT_FOUND = 0xC8 ,
  NT4H_BOUNDARY_ERROR = 0xC9 , NT4H_INVALID_MAC = 0xCA , NT4H_NO_CHANGES = 0xCB , UFR_DEVICE_WRONG_HANDLE = 0x100 ,
  UFR_DEVICE_INDEX_OUT_OF_BOUND , UFR_DEVICE_ALREADY_OPENED , UFR_DEVICE_ALREADY_CLOSED , UFR_DEVICE_IS_NOT_CONNECTED ,
  UFR_NOT_NXP_GENUINE = 0x200 , UFR_OPEN_SSL_DYNAMIC_LIB_FAILED , UFR_OPEN_SSL_DYNAMIC_LIB_NOT_FOUND , READER_ERROR = 0xBB7 ,
  NO_CARD_DETECTED = 0xBB8 , CARD_OPERATION_OK = 0xBB9 , WRONG_KEY_TYPE = 0xBBA , KEY_AUTH_ERROR = 0xBBB ,
  CARD_CRYPTO_ERROR = 0xBBC , READER_CARD_COMM_ERROR = 0xBBD , PC_READER_COMM_ERROR = 0xBBE , COMMIT_TRANSACTION_NO_REPLY = 0xBBF ,
  COMMIT_TRANSACTION_ERROR = 0xBC0 , NOT_SUPPORTED_KEY_TYPE = 0xBC2 , WRONG_FILE_TYPE = 0xBC3 , DESFIRE_CARD_NO_CHANGES = 0x0C0C ,
  DESFIRE_CARD_OUT_OF_EEPROM_ERROR = 0x0C0E , DESFIRE_CARD_ILLEGAL_COMMAND_CODE = 0x0C1C , DESFIRE_CARD_INTEGRITY_ERROR = 0x0C1E , DESFIRE_CARD_NO_SUCH_KEY = 0x0C40 ,
  DESFIRE_CARD_LENGTH_ERROR = 0x0C7E , DESFIRE_CARD_PERMISSION_DENIED = 0x0C9D , DESFIRE_CARD_PARAMETER_ERROR = 0x0C9E , DESFIRE_CARD_APPLICATION_NOT_FOUND = 0x0CA0 ,
  DESFIRE_CARD_APPL_INTEGRITY_ERROR = 0x0CA1 , DESFIRE_CARD_AUTHENTICATION_ERROR = 0x0CAE , DESFIRE_CARD_ADDITIONAL_FRAME = 0x0CAF , DESFIRE_CARD_BOUNDARY_ERROR = 0x0CBE ,
  DESFIRE_CARD_PICC_INTEGRITY_ERROR = 0x0CC1 , DESFIRE_CARD_COMMAND_ABORTED = 0x0CCA , DESFIRE_CARD_PICC_DISABLED_ERROR = 0x0CCD , DESFIRE_CARD_COUNT_ERROR = 0x0CCE ,
  DESFIRE_CARD_DUPLICATE_ERROR = 0x0CDE , DESFIRE_CARD_EEPROM_ERROR_DES = 0x0CEE , DESFIRE_CARD_FILE_NOT_FOUND = 0x0CF0 , DESFIRE_CARD_FILE_INTEGRITY_ERROR = 0x0CF1 ,
  DESFIRE_CATD_AUTHENTICATION_DELAY = 0X0CAD , UFR_NOT_IMPLEMENTED = 0x1000 , UFR_COMMAND_FAILED = 0x1001 , UFR_TIMEOUT_ERR = 0x1002 ,
  UFR_FILE_SYSTEM_ERROR = 0x1003 , UFR_FILE_SYSTEM_PATH_NOT_EXISTS = 0x1004 , UFR_FILE_NOT_EXISTS = 0x1005 , UFR_JSON_INVALID = 0x1012 ,
  UFR_LICENSE_INVALID = 0x1013 , UFR_LICENSE_SAVE_FAILED = 0x1014 , UFR_LICENSE_NOT_FOUND = 0x1015 , UFR_LICENSE_HAS_EXPIRED = 0x1016 ,
  UFR_SAM_APDU_ERROR = 0x2000 , UFR_SAM_AUTH_ERROR , UFR_SAM_CRYPTO_ERROR , TLS_ERR_OPENING_SOCKET = 0x5000 ,
  TLS_ERR_NO_SUCH_HOST = 0x5001 , TLS_CONNECTING_ERROR = 0x5002 , TLS_ERR_SERVER_UNEXPECTEDLY_CLOSED_CONNECTION = 0x5003 , TLS_ERR_UNKNOWN_GIDS_CERTIFICATE_FORMAT = 0x5004 ,
  TLS_ERR_SET_PIN_FOR_GIDS_CERT_ONLY = 0x5005 , TLS_ERR_GIDS_PIN_CODE_WRONG = 0x5006 , TLS_ERR_UNSUPPORTED_CERTIFICATE_TYPE = 0x5007 , TLS_ERR_PRIVATE_KEY_CONTEXT_WRONG = 0x5008 ,
  UFR_APDU_TRANSCEIVE_ERROR = 0xAE , UFR_APDU_JC_APP_NOT_SELECTED = 0x6000 , UFR_APDU_JC_APP_BUFF_EMPTY = 0x6001 , UFR_APDU_WRONG_SELECT_RESPONSE = 0x6002 ,
  UFR_APDU_WRONG_KEY_TYPE = 0x6003 , UFR_APDU_WRONG_KEY_SIZE = 0x6004 , UFR_APDU_WRONG_KEY_PARAMS = 0x6005 , UFR_APDU_WRONG_SIGNING_ALGORITHM = 0x6006 ,
  UFR_APDU_PLAIN_TEXT_MAX_SIZE_EXCEEDED = 0x6007 , UFR_APDU_UNSUPPORTED_KEY_SIZE = 0x6008 , UFR_APDU_UNSUPPORTED_ALGORITHMS = 0x6009 , UFR_APDU_PKI_OBJECT_NOT_FOUND = 0x600A ,
  UFR_APDU_MAX_PIN_LENGTH_EXCEEDED = 0x600B , UFR_DIGEST_LENGTH_DOES_NOT_MATCH = 0x600C , CRYPTO_SUBSYS_NOT_INITIALIZED = 0x6101 , CRYPTO_SUBSYS_SIGNATURE_VERIFICATION_ERROR = 0x6102 ,
  CRYPTO_SUBSYS_MAX_HASH_INPUT_EXCEEDED = 0x6103 , CRYPTO_SUBSYS_INVALID_HASH_ALGORITHM = 0x6104 , CRYPTO_SUBSYS_INVALID_CIPHER_ALGORITHM = 0x6105 , CRYPTO_SUBSYS_INVALID_PADDING_ALGORITHM = 0x6106 ,
  CRYPTO_SUBSYS_WRONG_SIGNATURE = 0x6107 , CRYPTO_SUBSYS_WRONG_HASH_OUTPUT_LENGTH = 0x6108 , CRYPTO_SUBSYS_UNKNOWN_ECC_CURVE = 0x6109 , CRYPTO_SUBSYS_HASHING_ERROR = 0x610A ,
  CRYPTO_SUBSYS_INVALID_SIGNATURE_PARAMS = 0x610B , CRYPTO_SUBSYS_INVALID_RSA_PUB_KEY = 0x610C , CRYPTO_SUBSYS_INVALID_ECC_PUB_KEY_PARAMS = 0x610D , CRYPTO_SUBSYS_INVALID_ECC_PUB_KEY = 0x610E ,
  UFR_WRONG_PEM_CERT_FORMAT = 0x61C0 , X509_CAN_NOT_OPEN_FILE = 0x6200 , X509_WRONG_DATA = 0x6201 , X509_WRONG_LENGTH = 0x6202 ,
  X509_UNSUPPORTED_PUBLIC_KEY_TYPE = 0x6203 , X509_UNSUPPORTED_PUBLIC_KEY_SIZE = 0x6204 , X509_UNSUPPORTED_PUBLIC_KEY_EXPONENT = 0x6205 , X509_EXTENSION_NOT_FOUND = 0x6206 ,
  X509_WRONG_SIGNATURE = 0x6207 , X509_UNKNOWN_PUBLIC_KEY_TYPE = 0x6208 , X509_WRONG_RSA_PUBLIC_KEY_FORMAT = 0x6209 , X509_WRONG_ECC_PUBLIC_KEY_FORMAT = 0x620A ,
  X509_SIGNATURE_NOT_MATCH_CA_PUBLIC_KEY = 0x620B , X509_UNSUPPORTED_SIGNATURE_SCH = 0x620C , X509_UNSUPPORTED_ECC_CURVE = 0x620D , PKCS7_WRONG_DATA = 0x6241 ,
  PKCS7_UNSUPPORTED_SIGNATURE_SCHEME = 0x6242 , PKCS7_SIG_SCH_NOT_MATCH_CERT_KEY_TYPE = 0x6243 , PKCS7_WRONG_SIGNATURE = 0x6247 , MRTD_SECURE_CHANNEL_SESSION_FAILED = 0x6280 ,
  MRTD_WRONG_SOD_DATA = 0x6281 , MRTD_WRONG_SOD_LENGTH = 0x6282 , MRTD_UNKNOWN_DIGEST_ALGORITHM = 0x6283 , MRTD_WARNING_DOES_NOT_CONTAINS_DS_CERT = 0x6284 ,
  MRTD_DATA_GROUOP_INDEX_NOT_EXIST = 0x6285 , MRTD_EF_COM_WRONG_DATA = 0x6286 , MRTD_EF_DG_WRONG_DATA = 0x6287 , MRTD_EF_DG1_WRONG_LDS_VERSION_LENGTH = 0x6288 ,
  MRTD_VERIFY_CSCA_NOT_EXIST = 0x6289 , MRTD_VERIFY_WRONG_DS_SIGNATURE = 0x628A , MRTD_VERIFY_WRONG_CSCA_SIGNATURE = 0x628B , MRTD_MRZ_CHECK_ERROR = 0x628C ,
  ICAO_ML_WRONG_FORMAT = 0x6300 , ICAO_ML_CAN_NOT_OPEN_FILE = 0x6301 , ICAO_ML_CAN_NOT_READ_FILE = 0x6302 , ICAO_ML_CERTIFICATE_NOT_FOUND = 0x6303 ,
  ICAO_ML_WRONG_SIGNATURE = 0x6307 , SYS_ERR_OUT_OF_MEMORY = 0x7001 , EMV_ERR_WRONG_INPUT_DATA = 0x7002 , EMV_ERR_MAX_TAG_LEN_BYTES_EXCEEDED = 0x7004 ,
  EMV_ERR_TAG_NOT_FOUND = 0x7005 , EMV_ERR_TAG_WRONG_SIZE = 0x7006 , EMV_ERR_TAG_WRONG_TYPE = 0x7007 , EMV_ERR_IN_CARD_READER = 0x7008 ,
  EMV_ERR_READING_RECORD = 0x7009 , EMV_ERR_PDOL_IS_EMPTY = 0x7010 , EMV_ERR_LIST_FORMAT_NOT_FOUND = 0x7011 , EMV_ERR_AFL_NOT_FOUND = 0x7012 ,
  EMV_ERR_AID_NOT_FOUND = 0x7013 , UFR_APDU_SW_TAG = 0x000A0000 , UFR_APDU_SW_OPERATION_IS_FAILED = 0x000A6300 , UFR_APDU_SW_WRONG_PIN_4_TRIES_REMAINING = 0x000A63C4 ,
  UFR_APDU_SW_WRONG_PIN_3_TRIES_REMAINING = 0x000A63C3 , UFR_APDU_SW_WRONG_PIN_2_TRIES_REMAINING = 0x000A63C2 , UFR_APDU_SW_WRONG_PIN_1_TRIES_REMAINING = 0x000A63C1 , UFR_APDU_SW_WRONG_PIN_0_TRIES_REMAINING = 0x000A63C0 ,
  UFR_APDU_SW_WRONG_LENGTH = 0x000A6700 , UFR_APDU_SW_SECURITY_STATUS_NOT_SATISFIED = 0x000A6982 , UFR_APDU_SW_AUTHENTICATION_METHOD_BLOCKED = 0x000A6983 , UFR_APDU_SW_DATA_INVALID = 0x000A6984 ,
  UFR_APDU_SW_CONDITIONS_NOT_SATISFIED = 0x000A6985 , UFR_APDU_SW_WRONG_DATA = 0x000A6A80 , UFR_APDU_SW_FILE_NOT_FOUND = 0x000A6A82 , UFR_APDU_SW_RECORD_NOT_FOUND = 0x000A6A83 ,
  UFR_APDU_SW_DATA_NOT_FOUND = 0x000A6A88 , UFR_APDU_SW_ENTITY_ALREADY_EXISTS = 0x000A6A89 , UFR_APDU_SW_INS_NOT_SUPPORTED = 0x000A6D00 , UFR_APDU_SW_NO_PRECISE_DIAGNOSTIC = 0x000A6F00 ,
  MAX_UFR_STATUS = 0x7FFFFFFF , UFR_DISPLAY_IMAGE_LOAD_ERROR = 0x8001 , UFR_DISPLAY_IMAGE_DIMENSION_ERROR = 0x8002 , UFR_DISPLAY_IMAGE_UNSUPPORTED_CHANNELS = 0x8003 ,
  UFR_DISPLAY_WRITE_CMD_ERROR = 0x8004 , UFR_DISPLAY_READ_ACK_ERROR = 0x8005 , UFR_DISPLAY_WRITE_CMDEXT_ERROR = 0x8006 , UFR_DISPLAY_READ_RESPONSE_ERROR = 0x8007 ,
  UFR_DISPLAY_TEXT_COUNT_OVERFLOW = 0x8008 , UFR_DISPLAY_INDEX_OVERFLOW = 0x8009 , UFR_DISPLAY_WRONG_SIMBOL_NUMB = 0x8010 , UFR_DISPLAY_COMMAND_FAILED = 0x8011
}
 
enum  UFCODER_SESSION_CODES {
  UFR_SESSION_UNKNOWN_ERROR = 0x00 , UFR_SESSION_CLOSED = 0x01 , UFR_SESSION_EXPIRED = 0x02 , UFR_SESSION_DEVICE_DISCONNECTED = 0x03 ,
  UFR_SESSION_DEVICE_FAILED_TO_CONNECT = 0x04 , UFR_BLE_SESSION_ERROR_INVALID_PARAMETERS = 0x11 , UFR_BLE_SESSION_ERROR_INVALID_HANDLE = 0x12 , UFR_BLE_SESSION_ERROR_NOT_CONNECTED = 0x13 ,
  UFR_BLE_SESSION_ERROR_OUT_OF_SPACE = 0x14 , UFR_BLE_SESSION_ERROR_OPERATION_CANCELLED = 0x15 , UFR_BLE_SESSION_ERROR_CONNECTION_TIMEOUT = 0x16 , UFR_BLE_SESSION_ERROR_UUID_NOT_ALLOWED = 0x17 ,
  UFR_BLE_SESSION_ERROR_ALREADY_ADVERTISING = 0x18 , UFR_BLE_SESSION_ERROR_CONNECTION_LIMIT_REACHED = 0x19 , UFR_BLE_SESSION_ERROR_UNKNOWN_DEVICE = 0x20 , UFR_BLE_SESSION_ERROR_OPERATION_NOT_SUPPORTED = 0x21 ,
  UFR_BLE_SESSION_ERROR_PEER_REMOVED_PAIRING_INFORMATION = 0x22 , UFR_BLE_SESSION_ERROR_ENCRYPTION_TIMED_OUT = 0x23 , UFR_BLE_SESSION_ERROR_TOO_MANY_LE_PAIRED_DEVICES = 0x24 , UFR_NFC_SESSION_ERROR_FIRST_NDEF_TAG_READ = 0x30 ,
  UFR_NFC_SESSION_ERROR_SESSION_INVALIDATION_TERMINATED_UNEXPECTEDLY = 0x31 , UFR_NFC_SESSION_ERROR_SESSION_INVALIDATION_TIMEOUT = 0x32 , UFR_NFC_SESSION_ERROR_SESSION_INVALIDATION_SYSTEM_IS_BUSY = 0x33 , UFR_NFC_SESSION_ERROR_SESSION_INVALIDATION_USER_CANCELED = 0x34 ,
  UFR_NFC_SESSION_ERROR_TAG_NOT_WRITABLE = 0x40 , UFR_NFC_SESSION_ERROR_TAG_SIZE_TOO_SMALL = 0x41 , UFR_NFC_SESSION_ERROR_TAG_UPDATE_FAILURE = 0x42 , UFR_NFC_SESSION_ERROR_ZERO_LENGTH_MESSAGE = 0x43 ,
  UFR_NFC_SESSION_ERROR_RETRY_EXCEEDED = 0x50 , UFR_NFC_SESSION_ERROR_TAG_CONNECTION_LOST = 0x51 , UFR_NFC_SESSION_ERROR_TAG_NOT_CONNECTED = 0x52 , UFR_NFC_SESSION_ERROR_TAG_RESPONSE_ERROR = 0x53 ,
  UFR_NFC_SESSION_ERROR_TAG_TRANSCEIVE_SESSION_INVALIDATED = 0x54 , UFR_NFC_SESSION_ERROR_TAG_TRANSCEIVE_PACKET_TOO_LONG = 0x55 , UFR_NFC_SESSION_ERROR_TAG_COMMAND_CONFIGURATION_INVALID_PARAMETERS = 0x56 , UFR_NFC_SESSION_ERROR_UNSUPPORTED_FEATURE = 0x61 ,
  UFR_NFC_SESSION_ERROR_INVALID_PARAMETER = 0x62 , UFR_NFC_SESSION_ERROR_INVALID_PARAMETER_LENGTH = 0x63 , UFR_NFC_SESSION_ERROR_PARAMETER_OUT_OF_BOUNDS = 0x64 , UFR_NFC_SESSION_ERROR_RADIO_DISABLED = 0x65 ,
  UFR_NFC_SESSION_ERROR_SECURITY_VIOLATION = 0x66
}
 
enum  WIFI_AUTH_TYPE {
  OPEN = 0 , WPA_PERSONAL , WPA_ENTERPRISE , WPA2_ENTERPRISE ,
  WPA2_PERSONAL
}
 
enum  WIFI_ENC_TYPE {
  NONE = 0 , WEP , TKIP , AES ,
  AES_TKIP
}
 

Functions

UFR_STATUS DL_API AdHocEmulationStart (void)
 Put uFR in emulation mode with ad-hoc emulation parameters (see. SetAdHocEmulationParams() and GetAdHocEmulationParams() functions).
 
UFR_STATUS DL_API AdHocEmulationStartM (UFR_HANDLE hndUFR)
 Multi reader support. Put uFR in emulation mode with ad-hoc emulation parameters (see. SetAdHocEmulationParams() and GetAdHocEmulationParams() functions). uFR stays in ad-hoc emulation mode until AdHocEmulationStop() is called or reader reset.
 
UFR_STATUS DL_API AdHocEmulationStop (void)
 Terminate uFR ad-hoc emulation mode.
 
UFR_STATUS DL_API AdHocEmulationStopM (UFR_HANDLE hndUFR)
 Multi reader support. Terminate uFR ad-hoc emulation mode.
 
UFR_STATUS DL_API AES_to_DES_key_type (void)
 Function allow to change the card master key type from AES to DES.
 
UFR_STATUS DL_API APDU_switch_off_from_ISO7816_interface (void)
 APDU commands are not used. The smart card stays in active state.
 
UFR_STATUS DL_API APDU_switch_off_from_ISO7816_interfaceM (UFR_HANDLE hndUFR)
 Multi reader support. APDU commands are not used. The smart card stays in active state.
 
UFR_STATUS DL_API APDU_switch_to_ISO14443_4_interface (void)
 Function switches the use APDU to ISO14443-4 tags. The smart card stays in active state. Tag must already be in ISO 14443-4 mode.
 
UFR_STATUS DL_API APDU_switch_to_ISO14443_4_interfaceM (UFR_HANDLE hndUFR)
 Multi reader support. Function switches the use APDU to ISO14443-4 tags. The smart card stays in active state. Tag must already be in ISO 14443-4 mode.
 
UFR_STATUS DL_API APDU_switch_to_ISO7816_interface (void)
 Function switches the use of APDU to ISO7816 interface. The smart card must be in the active state.
 
UFR_STATUS DL_API APDU_switch_to_ISO7816_interfaceM (UFR_HANDLE hndUFR)
 Multi reader support. Function switches the use of APDU to ISO7816 interface. The smart card must be in the active state.
 
UFR_STATUS DL_API APDUHexStrTransceive (IN const char *c_apdu, OUT char **r_apdu)
 Sends C–APDU in the c_string (zero terminated) format, containing pairs of the hexadecimal digits.
 
UFR_STATUS DL_API APDUHexStrTransceiveM (UFR_HANDLE hndUFR, IN const char *c_apdu, OUT char **r_apdu)
 Multi reader support. Sends C–APDU in the c_string (zero terminated) format, containing pairs of the hexadecimal digits. Pairs of the hexadecimal digits can be delimited by any of the punctuation characters or white space.
 
UFR_STATUS DL_API APDUPlainTransceive (IN const uint8_t *c_apdu, uint32_t c_apdu_len, OUT uint8_t *r_apdu, VAR uint32_t *r_apdu_len)
 Binary alternative function to the APDUHexStrTransceive(). C-APDU and R-APDU are sent and receive in the form of the byte arrays.
 
UFR_STATUS DL_API APDUPlainTransceiveM (UFR_HANDLE hndUFR, IN const uint8_t *c_apdu, uint32_t c_apdu_len, OUT uint8_t *r_apdu, VAR uint32_t *r_apdu_len)
 Multi reader support. Binary alternative function to the APDUHexStrTransceive(). C-APDU and R-APDU are sent and receive in the form of the byte arrays. There is obvious need for a c_apdu_len and r_apdu_len parameters which represents length of the *c_apdu and *r_apdu byte arrays, respectively.
 
UFR_STATUS DL_API APDUTransceive (uint8_t cls, uint8_t ins, uint8_t p1, uint8_t p2, IN const uint8_t *data_out, uint32_t Nc, OUT uint8_t *data_in, VAR uint32_t *Ne, uint8_t send_le, OUT uint8_t *apdu_status)
 This is “exploded binary” alternative function intended for support APDU commands in ISO 14443-4A tags. APDUTransceive() receives separated parameters which are an integral part of the C– APDU. There are parameters cls, ins, p0, p1 of the uint8_t type.
 
UFR_STATUS DL_API APDUTransceiveM (UFR_HANDLE hndUFR, uint8_t cls, uint8_t ins, uint8_t p1, uint8_t p2, IN const uint8_t *data_out, uint32_t Nc, OUT uint8_t *data_in, VAR uint32_t *Ne, uint8_t send_le, OUT uint8_t *apdu_status)
 Multi reader support. This is “exploded binary” alternative function intended for support APDU commands in ISO 14443- 4A tags. APDUTransceive() receives separated parameters which are an integral part of the C– APDU. There are parameters cls, ins, p0, p1 of the uint8_t type.
 
UFR_STATUS DL_API AutoSleepGet (VAR uint8_t *seconds_wait)
 Get status of AutoSleep mode.
 
UFR_STATUS DL_API AutoSleepGetM (UFR_HANDLE hndUFR, VAR uint8_t *seconds_wait)
 Multi reader support. Get status of AutoSleep mode.
 
UFR_STATUS DL_API AutoSleepSet (uint8_t seconds_wait)
 Turn the device into Sleep mode after a certain amount of time.
 
UFR_STATUS DL_API AutoSleepSetM (UFR_HANDLE hndUFR, uint8_t seconds_wait)
 Multi reader support. Turn the device into Sleep mode after a certain amount of time.
 
UFR_STATUS DL_API BlockInSectorRead (OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorRead_AKM1 (OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorRead_AKM1M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorRead_AKM2 (OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorRead_AKM2M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorRead_PK (OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorRead_PKM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorReadM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorReadSamKey (OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorReadSamKeyM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. *only uFR CS with SAM support Read particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWrite (IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWrite_AKM1 (IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWrite_AKM1M (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWrite_AKM2 (IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWrite_AKM2M (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWrite_PK (IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWrite_PKM (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWriteM (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWriteSamKey (IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockInSectorWriteSamKeyM (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t sector_address, uint8_t block_in_sector_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. *only uFR CS with SAM support Write particular block using relative Block in Sector address.
 
UFR_STATUS DL_API BlockRead (OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockRead_AKM1 (OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockRead_AKM1M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockRead_AKM2 (OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockRead_AKM2M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockRead_PK (OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockRead_PKM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockReadM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockReadSamKey (OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockReadSamKeyM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. *only uFR CS with SAM support Read particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWrite (IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWrite_AKM1 (IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWrite_AKM1M (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWrite_AKM2 (IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWrite_AKM2M (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWrite_PK (IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWrite_PKM (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWriteM (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWriteSamKey (IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Write particular block using absolute Block address.
 
UFR_STATUS DL_API BlockWriteSamKeyM (UFR_HANDLE hndUFR, IN const uint8_t *data, uint8_t block_address, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. *only uFR CS with SAM support Write particular block using absolute Block address.
 
UFR_STATUS DL_API card_halt_enable (void)
 Function enables normal working mode of reader, after leaving the transceive working mode with blocking card HALT command in the main loop.
 
UFR_STATUS DL_API card_halt_enableM (UFR_HANDLE hndUFR)
 Multi reader support. Function enables normal working mode of reader, after leaving the transceive working mode with blocking card HALT command in the main loop.
 
UFR_STATUS DL_API card_transceive_mode_start (uint8_t tx_crc, uint8_t rx_crc, uint32_t rf_timeout, uint32_t uart_timeout)
 Function sets the parameters for transceive mode.
 
UFR_STATUS DL_API card_transceive_mode_startM (UFR_HANDLE hndUFR, uint8_t tx_crc, uint8_t rx_crc, uint32_t rf_timeout, uint32_t uart_timeout)
 Multi reader support. Function sets the parameters for transceive mode. If the hardware CRC option is used, then only command bytes are sent to the card (hardware will add two bytes of CRC to the end of the RF packet). If this option did not use, then command bytes and two bytes of CRC sent to card (i.e. ISO14443 typeA CRC). Timeout for card response in us sets. Card is selected and waiting for commands.
 
UFR_STATUS DL_API card_transceive_mode_stop (void)
 The function returns the reader to normal mode.
 
UFR_STATUS DL_API card_transceive_mode_stopM (UFR_HANDLE hndUFR)
 Multi reader support. The function returns the reader to normal mode.
 
UFR_STATUS DL_API ChangeReaderPassword (IN uint8_t *old_password, IN uint8_t *new_password)
 This function is used in Common, Advance and Access Control set of functions.
 
UFR_STATUS DL_API ChangeReaderPasswordM (UFR_HANDLE hndUFR, IN uint8_t *old_password, IN uint8_t *new_password)
 Multi reader support. This function is used in Common, Advance and Access Control set of functions. It defines/changes password which I used for:
 
UFR_STATUS DL_API CheckUidChangeable (void)
 Function tries to change the UID on the card.
 
UFR_STATUS DL_API CheckUidChangeableM (UFR_HANDLE hndUFR)
 Function tries to change the UID on the card. Multi reader support. On some cards (e.g. Magic Classic) changing UID is possible. If theed card is that type of card, then the function returns UFR_OK.
 
UFR_STATUS DL_API close_ISO7816_interface_APDU_ISO14443_4 (void)
 Function deactivates the smart card. APDU commands are used by ISO 14443-4 tags. Tag must already be in ISO 14443-4 mode.
 
UFR_STATUS DL_API close_ISO7816_interface_APDU_ISO14443_4M (UFR_HANDLE hndUFR)
 Multi reader support. Function deactivates the smart card. APDU commands are used by ISO 14443-4 tags. Tag must already be in ISO 14443-4 mode.
 
UFR_STATUS DL_API close_ISO7816_interface_no_APDU (void)
 Function deactivates the smart card. APDU commands are not used.
 
UFR_STATUS DL_API close_ISO7816_interface_no_APDUM (UFR_HANDLE hndUFR)
 Multi reader support. Function deactivates the smart card. APDU commands are not used.
 
void DL_API closeBLESession (void)
 This function is used to stop receiving asynchronous callbacks previously set by openBLESession()
 
void DL_API closeNFCSession (void)
 This function is used to stop receiving asynchronous callbacks previously set by openNFCSession()
 
UFR_STATUS DL_API CombinedModeEmulationStart (void)
 Puts the uFR reader into a permanently periodical switching from “NDEF tag emulation mode” to “tag reader mode”.
 
UFR_STATUS DL_API CombinedModeEmulationStartM (UFR_HANDLE hndUFR)
 Multi reader support. Puts the uFR reader into a permanently periodical switching from “NDEF tag emulation mode” to “tag reader mode”. Only way for a reader to exit from this mode is to receive the TAG_EMULATION_STOP command (issued by calling the TagEmulationStop() function). Much better control of the NFC device in a uFR proximity range can be achieved using Ad-Hoc emulation mode, described before.
 
UFR_STATUS DL_API COMTransceive (IN uint8_t *cmd, uint32_t cmd_length, IN uint8_t *cmd_ext, uint32_t cmd_ext_length, OUT uint8_t *rsp, VAR uint32_t *rsp_length, OUT uint8_t *rsp_ext, VAR uint32_t *rsp_ext_length)
 As of uFCoder library v5.0.71 users can use COM protocol via uFCoder library by calling this method. It handles transmission of CMD and CMD_EXT commands and it handles RSP and RSP_EXT packets that are a response to the COM protocol commands.
 
UFR_STATUS DL_API COMTransceiveM (UFR_HANDLE hndUFR, IN uint8_t *cmd, uint32_t cmd_length, IN uint8_t *cmd_ext, uint32_t cmd_ext_length, OUT uint8_t *rsp, VAR uint32_t *rsp_length, OUT uint8_t *rsp_ext, VAR uint32_t *rsp_ext_length)
 Multi reader support. As of uFCoder library v5.0.71 users can use COM protocol via uFCoder library by calling this method. It handles transmission of CMD and CMD_EXT commands and it handles RSP and RSP_EXT packets that are a response to the COM protocol commands.
 
UFR_STATUS DL_API DES_to_AES_key_type (void)
 Function allows you to change the card master key type from DES to AES.
 
UFR_STATUS DL_API desfire_check_clear_record_transaction_mac (uint8_t file_no, uint32_t trans_mac_counter, IN uint8_t *uid, IN uint8_t *trans_mac_key, IN uint8_t *reader_id, IN uint8_t *prev_enc_reader_id, IN uint8_t *trans_mac_value, OUT uint8_t *prev_reader_id)
 From library version 5.0.37 and firmware version 5.0.38. For Desfire Light, and Desfire EV2. Helper function for check transaction MAC in clear record operation. Function also returns decrypted Previous Reader ID. Users must enter file number, transaction MAC counter, card UID, transaction MAC key, Reader ID, encrypted Previous Reader ID and transaction MAC.
 
UFR_STATUS DL_API desfire_check_write_record_transaction_mac (uint8_t file_no, uint32_t offset, uint32_t data_len, IN uint8_t *data, uint32_t trans_mac_counter, IN uint8_t *uid, IN uint8_t *trans_mac_key, IN uint8_t *reader_id, IN uint8_t *prev_enc_reader_id, IN uint8_t *trans_mac_value, OUT uint8_t *prev_reader_id)
 
UFR_STATUS DL_API DeslectCard (void)
 If the reader is in a “anti-collision” mode of operation, this function deselects currently selected card.
 
UFR_STATUS DL_API DeslectCardM (UFR_HANDLE hndUFR)
 Multi reader support. If the reader is in a “anti-collision” mode of operation, this function deselects currently selected card. Otherwise function returns ANTI_COLLISION_DISABLED status code.
 
UFR_STATUS DL_API dfl_change_file_settings (uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function changes file settings.
 
UFR_STATUS DL_API dfl_change_file_settings_pk (IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function changes file settings.
 
UFR_STATUS DL_API dfl_change_file_settings_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 Multi reader support. From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function changes file settings.
 
UFR_STATUS DL_API dfl_change_file_settingsM (UFR_HANDLE hndUFR, uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 Multi reader support. From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function changes file settings.
 
UFR_STATUS DL_API dfl_change_tmc_file_settings (uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t commit_reader_id_key_no, uint8_t change_key_no, uint8_t ex_unauth_operation, uint8_t tmc_limit_conf, uint32_t tmc_limit)
 Function changes file settings of the Transaction MAC file.
 
UFR_STATUS DL_API dfl_check_credit_value_transaction_mac (uint8_t file_no, uint32_t value, uint32_t trans_mac_counter, IN uint8_t *uid, IN uint8_t *trans_mac_key, IN uint8_t *reader_id, IN uint8_t *prev_enc_reader_id, IN uint8_t *trans_mac_value, OUT uint8_t *prev_reader_id)
 From library version 5.0.37 and firmware version 5.0.38. For Desfire Light, and Desfire EV2. Helper function for check transaction MAC in credit value operation. Function also returns decrypted Previous Reader ID. User must enter file number, value of credit, transaction MAC counter, card UID, transaction MAC key, Reader ID, encrypted Previous Reader ID and transaction MAC.
 
UFR_STATUS DL_API dfl_check_debit_value_transaction_mac (uint8_t file_no, uint32_t value, uint32_t trans_mac_counter, IN uint8_t *uid, IN uint8_t *trans_mac_key, IN uint8_t *reader_id, IN uint8_t *prev_enc_reader_id, IN uint8_t *trans_mac_value, OUT uint8_t *prev_reader_id)
 From library version 5.0.37 and firmware version 5.0.38. For Desfire Light, and Desfire EV2. Helper function for check transaction MAC in debit value operation. Function also returns decrypted Previous Reader ID. User must enter file number, value of credit, transaction MAC counter, card UID, transaction MAC key, Reader ID, encrypted Previous Reader ID and transaction MAC.
 
UFR_STATUS DL_API dfl_check_write_record_transaction_mac (uint8_t file_no, uint32_t offset, uint32_t data_len, IN uint8_t *data, uint32_t trans_mac_counter, IN uint8_t *uid, IN uint8_t *trans_mac_key, IN uint8_t *reader_id, IN uint8_t *prev_enc_reader_id, IN uint8_t *trans_mac_value, OUT uint8_t *prev_reader_id)
 From library version 5.0.37 and firmware version 5.0.38. For Desfire Light, and Desfire EV2. Helper function for check transaction MAC in write record operation. Function also returns decrypted Previous Reader ID. User must enter file number, data offset, data length, array of data, transaction MAC counter, card UID, transaction MAC key, Reader ID, encrypted Previous Reader ID and transaction MAC.
 
UFR_STATUS DL_API dfl_delete_tmc_file (uint8_t aes_key_no, uint8_t file_no)
 From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function delete transaction MAC file. NOTE: Transaction MAC file exist by factory default. To use the operations with value file, and cyclic record file, this file must be deleted. From library version 5.0.37 and firmware version 5.0.38, Transaction MAC operation supported for Desfire Light and Desfire EV2. To use these features, an Transaction MAC file must exist in the selected application.
 
UFR_STATUS DL_API dfl_delete_tmc_file_pk (IN uint8_t *aes_key_ext, uint8_t file_no)
 From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function delete transaction MAC file. NOTE: Transaction MAC file exist by factory default. To use the operations with value file, and cyclic record file, this file must be deleted. From library version 5.0.37 and firmware version 5.0.38, Transaction MAC operation supported for Desfire Light and Desfire EV2. To use these features, an Transaction MAC file must exist in the selected application.
 
UFR_STATUS DL_API dfl_delete_tmc_file_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint8_t file_no)
 Multi reader support. From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function delete transaction MAC file. NOTE: Transaction MAC file exist by factory default. To use the operations with value file, and cyclic record file, this file must be deleted. From library version 5.0.37 and firmware version 5.0.38, Transaction MAC operation supported for Desfire Light and Desfire EV2. To use these features, an Transaction MAC file must exist in the selected application.
 
UFR_STATUS DL_API dfl_delete_tmc_fileM (UFR_HANDLE hndUFR, uint8_t aes_key_no, uint8_t file_no)
 Multi reader support. From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command. Function delete transaction MAC file. NOTE: Transaction MAC file exist by factory default. To use the operations with value file, and cyclic record file, this file must be deleted. From library version 5.0.37 and firmware version 5.0.38, Transaction MAC operation supported for Desfire Light and Desfire EV2. To use these features, an Transaction MAC file must exist in the selected application.
 
UFR_STATUS DL_API dfl_get_file_settings (uint8_t file_no, VAR uint8_t *file_type, VAR uint8_t *communication_mode, VAR uint8_t *read_key_no, VAR uint8_t *write_key_no, VAR uint8_t *read_write_key_no, VAR uint8_t *change_key_no, VAR uint32_t *file_size, VAR int32_t *lower_limit, VAR int32_t *upper_limit, VAR uint32_t *limited_credit_value, VAR uint8_t *limited_credit_enable, VAR uint8_t *free_get_value, VAR uint32_t *record_size, VAR uint32_t *max_number_of_rec, VAR uint32_t *curr_number_of_rec, VAR uint8_t *ex_unauth_operation, VAR uint8_t *tmc_limit_conf, VAR uint8_t *tm_key_type, VAR uint8_t *tm_key_version, VAR uint32_t *tmc_limit)
 From library version 5.0.29 and firmware version 5.0.32. Desfire Light specific command.
 
UFR_STATUS DL_API DigitalSignatureVerifyHash (uint32_t digest_alg, uint32_t padding_alg, uint32_t cypher_alg, IN const uint8_t *tbs, uint32_t tbs_len, IN const uint8_t *signature, uint32_t signature_len, IN const void *sig_params, uint32_t sig_params_len, IN const uint8_t *pub_key, uint32_t pub_key_len, IN const void *pub_key_params, uint32_t pub_key_params_len)
 This function is used to verify the digital signature of the pre-hashed value or some relatively short plain text message.
 
UFR_STATUS DL_API DisableAntiCollision (void)
 Exits from “anti-collision” mode of operation i.e. put the reader in to “single card” mode of operation.
 
UFR_STATUS DL_API DisableAntiCollisionM (UFR_HANDLE hndUFR)
 Multi reader support. Exits from “anti-collision” mode of operation i.e. put the reader in to “single card” mode of operation.
 
UFR_STATUS DL_API Display_EraseSection (int xPos, int xPosEND, int yPos, int yPosEND)
 Function clears a specified section of the display. If xPosEND or yPosEND are set to 0, the function will automatically assume that the end postion for erasing extends to the edge of the screen (i.e., xPosEND will default to the display's maximum width, and yPosEND will default to it's maximum height).
 
UFR_STATUS DL_API Display_PrintText (const char *customText, int fontStyle, int fontSize, int scrollEnable, int positionX, int positionY)
 Function displays custom text on the screen. It can also enable text scrolling, position the text at a specific location on the display, and adjust the font size and style.
 
UFR_STATUS DL_API Display_SaveBitmapToGallery (const char *filename, int gallery_index)
 Function is used for extracting image pixel values and storing them in the display for later use. This function will not render the image to the display.
 
UFR_STATUS DL_API Display_SaveSystemBitmap (const char *filename, int system_bitmap_index)
 Function allows you to change the essential symbols that the display regularly uses. These symbols include the Boot Image (ID-15), the Check bitmap(ID-14), and the Cross bitmap (ID-13).
 
UFR_STATUS DL_API Display_ShowBitmap (const char *filename, int positionX, int positionY)
 Function takes an image and extracts it's pixel values and then just renders the on the display without storing the bitmap in the display.
 
UFR_STATUS DL_API Display_ShowBitmapFromGallery (int gallery_index)
 Function renders an image that is stored in the display gallery. The gallery consist of 15 slots, of those 15 - 10 are used for storing bitmaps and the other 4 (11-15) are SystemBitmaps used by the display.
 
UFR_STATUS DL_API Display_ShowLastUnsavedImage ()
 Function renders the last image that was called with the function Display_ShowBitmap()
 
UFR_STATUS DL_API Display_ShowTime (int hour, int minute)
 Function writes the time on the display. If the display is not connected to the Reader, the time will be displayed and remain unchanged. However, if the display is connected to the Reader, the time will be shown only for a second because the Reader is sending the correct time to the display every second.
 
UFR_STATUS DL_API Display_Transmit (uint8_t *cmd, uint8_t *cmd_ext, uint8_t *rsp)
 Function is used for communicating with the uFR device via I2C in COM protocol format.
 
UFR_STATUS DL_API Display_UserInterfaceSignal (int signal)
 Function displays a chec or a cross bitmap and, if a speaker is connected to the display, it triggers a function that produces a beep sound.
 
UFR_STATUS DL_API DL_TLS_Request (VAR char **read_buffer, VAR uint32_t *received_len, IN const char *url, IN const char *resource_path, uint16_t port, IN char *PIN, uint8_t PIN_len)
 This function transceive HTTPS GET request over TLS 1.2 secure connection implementing TLS/SSL user certificate authentication on server request.
 
UFR_STATUS DL_API DL_TLS_SetClientCertificate (uint32_t cert_type, IN const char *cert, uint32_t cert_len)
 Although we do not recommend the use of software digital signing during TLS/SSL client certificate authentication, the uFCoder library still allows its use.
 
UFR_STATUS DL_API DL_TLS_SetClientX509PrivateKey_PEM (IN const char *priv_key, uint32_t key_bytes_len)
 Although we do not recommend the use of software digital signing during TLS/SSL client certificate authentication, the uFCoder library still allows its use.
 
void DL_API DLFree (void *ptr)
 Release the memory allocated from some of the library functions previously called making it available again for further allocations.
 
c_string DL_API DLGetEccCurveName (uint32_t eccCurve)
 This function returns pointer to a null terminated string constant which contains the name of the ECC curve designated by the input function parameter.
 
UFR_STATUS DL_API DLGetHash (uint32_t hash_algo, IN const uint8_t *in, uint32_t in_len, OUT uint8_t *hash, uint32_t hash_alocated)
 This function returns pointer to a null terminated string constant which contains the name of the hash algorithm designated by the input function parameter.
 
c_string DL_API DLGetHashName (uint32_t hash_algo)
 This function returns pointer to a null terminated string constant which contains the name of the hash algorithm designated by the input function parameter.
 
UFR_STATUS DL_API DLGetHashOutputByteLength (uint32_t hash_algo, VAR uint32_t *out_byte_len)
 This function is used to get hash output length in bytes for specified hash algorithms.
 
UFR_STATUS DL_API DLGetHashToHeap (uint32_t hash_algo, IN const uint8_t *in, uint32_t in_len, VAR uint8_t **hash, VAR uint32_t *hash_len)
 This function calculates and returns the hash of the data in the buffer pointed by the “in” function parameter.
 
c_string DL_API DLGetSignatureSchemeName (uint32_t signatureScheme)
 This function returns pointer to a null terminated string constant which contains the name of the signature scheme (signature algorithm) designated by the input function parameter.
 
UFR_STATUS DL_API DLHashFinishChunked (OUT uint8_t *hash, uint32_t hash_alocated)
 This function is used in conjunction with DLHashInitChunked() and DLHashUpdateChunked() functions.
 
UFR_STATUS DL_API DLHashFinishChunkedToHeap (OUT uint8_t **hash, VAR uint32_t *hash_alocated)
 This function is used in conjunction with DLHashInitChunked() and DLHashUpdateChunked() functions.
 
UFR_STATUS DL_API DLHashInitChunked (uint32_t hash_algo)
 This function is used in conjunction with DLHashUpdateChunked() and DLHashFinishChunked() or DLHashFinishChunkedToHeap() functions.
 
UFR_STATUS DL_API DLHashUpdateChunked (IN const uint8_t *in, uint32_t in_len)
 This function is used in conjunction with DLHashInitChunked() and DLHashFinishChunked() or DLHashFinishChunkedToHeap() functions.
 
UFR_STATUS DL_API EMV_GetLastTransaction (IN c_string df_name, OUT char *last_transaction_info)
 Used for extracting details about the last transaction stored in a credit card. Must provide card’s Payment System Environment (PSE1 or PSE2).
 
UFR_STATUS DL_API EMV_GetPAN (IN c_string df_name, OUT char *pan_str)
 Used for extracting the credit card PAN number. Must provide card’s Payment System Environment (PSE1 or PSE2).
 
UFR_STATUS DL_API EnableAntiCollision (void)
 This function puts the reader in an “anti-collision” mode of operation.
 
UFR_STATUS DL_API EnableAntiCollisionM (UFR_HANDLE hndUFR)
 Multi reader support. This function puts the reader in an “anti-collision” mode of operation.
 
UFR_STATUS DL_API EnterShareRamCommMode (void)
 Put reader permanently in the mode that use shared RAM. After execution of this function, must be executed function TagEmulationStart().
 
UFR_STATUS DL_API EnterShareRamCommModeM (UFR_HANDLE hndUFR)
 Multi reader support. Put reader permanently in the mode that use shared RAM. After execution of this function, must be executed function TagEmulationStart.
 
UFR_STATUS DL_API EnumCards (VAR uint8_t *lpucCardsNumber, OUT uint8_t *lpucUidListSize)
 If the reader is in an “anti-collision” mode of operation, this function enumerates cards which are found in the reader field.
 
UFR_STATUS DL_API EnumCardsM (UFR_HANDLE hndUFR, VAR uint8_t *lpucCardsNumber, OUT uint8_t *lpucUidListSize)
 Multi reader support. If the reader is in an “anti-collision” mode of operation, this function enumerates cards which are found in the reader field. Otherwise the function returns ANTI_COLLISION_DISABLED status code. All the calls to the ListCards(), SelectCard() and DeselectCard() work with UIDs from the actual UID list of the enumerated cards, which is obtained by the last call of this function.
 
UFR_STATUS DL_API erase_all_ndef_records (uint8_t message_nr)
 Function deletes all records of the message, then writes an empty message.
 
UFR_STATUS DL_API erase_all_ndef_recordsM (UFR_HANDLE hndUFR, uint8_t message_nr)
 Multi reader support. Function deletes all records of the message, then writes an empty message.
 
UFR_STATUS DL_API erase_last_ndef_record (uint8_t message_nr)
 Function deletes the last record of the selected message. If a message contains one record, then it will be written as an empty message.
 
UFR_STATUS DL_API erase_last_ndef_recordM (UFR_HANDLE hndUFR, uint8_t message_nr)
 Multi reader support. Function deletes the last record of the selected message. If a message contains one record, then it will be written as an empty message.
 
UFR_STATUS DL_API EspChangeReaderPassword (IN uint8_t *old_password, IN uint8_t *new_password)
 It defines/changes password which I used for:
 
UFR_STATUS DL_API EspChangeReaderPasswordM (UFR_HANDLE hndUFR, uint8_t *old_password, uint8_t *new_password)
 Multi reader support. It defines/changes password which I used for:
 
UFR_STATUS DL_API EspDisableWifi (void)
 This option is only avaliable in BT/BLE mode. Disable Wifi on uFR Online device when working in BLE/BT mode. This option is saved in flash and Wifi will stay turned off device restart.
 
UFR_STATUS DL_API EspDisableWifiM (UFR_HANDLE hndUFR)
 Multi reader support. This option is only avaliable in BT/BLE mode. Disable Wifi on uFR Online device when working in BLE/BT mode. This option is saved in flash and Wifi will stay turned off device restart.
 
UFR_STATUS DL_API EspEnableOnWifiM (UFR_HANDLE hndUFR)
 Multi reader support. This option is only avaliable in BT/BLE mode. Enable Wifi on uFR Online device when working in BLE/BT mode. This option is saved in flash and Wifi will stay turned on device restart.
 
UFR_STATUS DL_API EspEnableWifi (void)
 This option is only avaliable in BT/BLE mode. Enable Wifi on uFR Online device when working in BLE/BT mode. This option is saved in flash and Wifi will stay turned on device restart.
 
UFR_STATUS DL_API EspGetFirmwareVersion (OUT uint8_t *major, OUT uint8_t *minor, OUT uint8_t *build)
 Returns uFR Online reader firmware version.
 
UFR_STATUS DL_API EspGetFirmwareVersionM (UFR_HANDLE hndUFR, OUT uint8_t *major, OUT uint8_t *minor, OUT uint8_t *build)
 Multi reader support. Returns uFR Online reader firmware version.
 
UFR_STATUS DL_API EspGetIOState (OUT uint8_t *state)
 Function returns 6 bytes array of uint8_t that represented IO pins logic level state.
 
UFR_STATUS DL_API EspGetIOStateM (UFR_HANDLE hndUFR, uint8_t *state)
 Multi reader support. Function returns 6 bytes array of uint8_t that represented IO pins logic level state.
 
UFR_STATUS DL_API EspGetReaderSerialNumber (VAR uint32_t *SerialNumber)
 Returns uFR Online reader serial number as a pointer to 4 byte value.
 
UFR_STATUS DL_API EspGetReaderSerialNumberM (UFR_HANDLE hndUFR, uint32_t *lpulSerialNumber)
 Multi reader support. Returns uFR Online reader serial number as a pointer to 4 byte value.
 
UFR_STATUS DL_API EspGetReaderTime (OUT uint8_t *time)
 Function returns 6 bytes array of uint8_t that represents current date and time into uFR Online RTC.
 
UFR_STATUS DL_API EspGetReaderTimeM (UFR_HANDLE hndUFR, uint8_t *time)
 Multi reader support. Function returns 6 bytes array of uint8_t that represents current date and time into uFR Online RTC.
 
UFR_STATUS DL_API EspReaderEepromRead (OUT uint8_t *data, uint32_t address, uint32_t size)
 Function returns array of data read from EEPROM of uFR Online. Maximal length of the array is 128 bytes.
 
UFR_STATUS DL_API EspReaderEepromReadM (UFR_HANDLE hndUFR, uint8_t *data, uint32_t address, uint32_t size)
 Multi reader support. Function returns array of data read from EEPROM of uFR Online. Maximal length of the array is 128 bytes.
 
UFR_STATUS DL_API EspReaderEepromWrite (IN uint8_t *data, uint32_t address, uint32_t size, IN uint8_t *password)
 Function writes array of data into EEPROM of uFR Online.
 
UFR_STATUS DL_API EspReaderEepromWriteM (UFR_HANDLE hndUFR, uint8_t *data, uint32_t address, uint32_t size, uint8_t *password)
 Multi reader support. Function writes array of data into EEPROM of uFR Online. Maximal length of the array is 128 bytes. Function requires a password which is 8 bytes. Factory password is “11111111” (0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31).
 
UFR_STATUS DL_API EspReaderReset (void)
 Physical reset of uFR reader communication port.
 
UFR_STATUS DL_API EspReaderResetM (UFR_HANDLE hndUFR)
 Multi reader support. Physical reset of uFR reader communication port.
 
UFR_STATUS DL_API EspSetDisplayData (IN uint8_t *display_data, IN uint8_t data_length, uint16_t duration)
 Function enables sending data to the uFR Online. A string of data contains information about the intensity of color in each cell of the LED indication.
 
UFR_STATUS DL_API EspSetDisplayDataM (UFR_HANDLE hndUFR, uint8_t *display_data, uint8_t data_length, uint16_t duration)
 Multi reader support. Function enables sending data to the uFR Online. A string of data contains information about the intensity of color in each cell of the LED indication. Each cell has three LEDs (red, green and blue). For each cell of the three bytes is necessary. The first byte indicates the intensity of the green color, the second byte indicates the intensity of the red color, and the third byte indicates the intensity of blue color. For example, if the display has 2 cells, an array contains 6 bytes. Value of intensity is in the range from 0 to 255. On uFR Online, there are 2 cells.From firmware version 2.7.6, RGB LEDs can be connected to pin 5 of P5 connector (GPIO connector - ESP pin 18). First 6 bytes in display_data array will be sent to internal RGB LEDs, additional bytes will be sent to external connected RGB. There is no limit for number of external cells. Array data example: 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF First 6 bytes will be sent to internal RGB and additional 3 bytes will be sent to first cell of external RGB.
 
UFR_STATUS DL_API EspSetIOState (uint8_t pin, uint8_t state)
 Function sets uFR Online IO pin state.
 
UFR_STATUS DL_API EspSetIOStateM (UFR_HANDLE hndUFR, uint8_t pin, uint8_t state)
 Multi reader support. Function sets uFR Online IO pin state.
 
UFR_STATUS DL_API EspSetReaderTime (IN uint8_t *password, IN uint8_t *time)
 Function sets the date and time into uFR Online RTC.
 
UFR_STATUS DL_API EspSetReaderTimeM (UFR_HANDLE hndUFR, uint8_t *password, uint8_t *time)
 Multi reader support. Function sets the date and time into uFR Online RTC. Function requires the 8 bytes password entry to set date and time. Date and time are represented into a 6 bytes array in the same way as in EspGetReaderTime function. Factory password is “11111111” (0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31).
 
UFR_STATUS DL_API EspSetTransparentReader (uint8_t reader)
 Function sets uFR Online transparent reader.
 
UFR_STATUS DL_API EspSetTransparentReaderM (UFR_HANDLE hndUFR, uint8_t reader)
 Multi reader support. Function sets uFR Online transparent reader.
 
UFR_STATUS DL_API EspTurnOff (void)
 Turn off uFR Online device.
 
UFR_STATUS DL_API EspTurnOffM (UFR_HANDLE hndUFR)
 Multi reader support. Turn off uFR Online device.
 
UFR_STATUS DL_API ExitShareRamCommMode (void)
 The permanent exit from mode that use shared RAM. After execution of this function, must be executed function TagEmulationStop().
 
UFR_STATUS DL_API ExitShareRamCommModeM (UFR_HANDLE hndUFR)
 Multi reader support. The permanent exit from mode that use shared RAM. After execution of this function, must be executed function TagEmulationStop.
 
UFR_STATUS DL_API get_ndef_record_count (VAR uint8_t *ndef_message_cnt, VAR uint8_t *ndef_record_cnt, OUT uint8_t *ndef_record_array, VAR uint8_t *empty_ndef_message_cnt)
 Function returns the number of NDEF messages that have been read from the card, and number of NDEF records, number of NDEF empty messages.
 
UFR_STATUS DL_API get_ndef_record_countM (UFR_HANDLE hndUFR, VAR uint8_t *ndef_message_cnt, VAR uint8_t *ndef_record_cnt, OUT uint8_t *ndef_record_array, VAR uint8_t *empty_ndef_message_cnt)
 Multi reader support. Function returns the number of NDEF messages that have been read from the card, and number of NDEF records, number of NDEF empty messages. Also, function returns array of bytes containing number of messages pairs. First byte of pair is message ordinal, and second byte is number of NDEF records in that message. Message ordinal starts from 1.
 
UFR_STATUS DL_API GetAdHocEmulationParams (VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 This function returns current ad-hoc emulation parameters.
 
UFR_STATUS DL_API GetAdHocEmulationParamsM (UFR_HANDLE hndUFR, VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 Multi reader support. This function returns current ad-hoc emulation parameters. On uFR power on or reset ad-hoc emulation parameters are set back to their default values.
 
UFR_STATUS DL_API GetAntiCollisionStatus (VAR int8_t *lpcIsAntiCollEnabled, VAR int8_t *lpcIsAnyCardSelected)
 Calling this function you can get current anti-collision status of the reader.
 
UFR_STATUS DL_API GetAntiCollisionStatusM (UFR_HANDLE hndUFR, VAR int8_t *lpcIsAntiCollEnabled, VAR int8_t *lpcIsAnyCardSelected)
 Multi reader support. Calling this function you can get current anti-collision status of the reader.
 
UFR_STATUS DL_API GetAsyncCardIdSendConfig (VAR uint8_t *send_enable, VAR uint8_t *prefix_enable, VAR uint8_t *prefix, VAR uint8_t *suffix, VAR uint8_t *send_removed_enable, VAR uint32_t *async_baud_rate)
 Returns info about parameters configured with previous function.
 
UFR_STATUS DL_API GetAsyncCardIdSendConfigEx (VAR uint8_t *send_enable, VAR uint8_t *prefix_enable, VAR uint8_t *prefix, VAR uint8_t *suffix, VAR uint8_t *send_removed_enable, VAR uint8_t *reverse_byte_order, VAR uint8_t *decimal_representation, VAR uint32_t *async_baud_rate)
 Function returns the parameters of card ID sending.
 
UFR_STATUS DL_API GetAsyncCardIdSendConfigExM (UFR_HANDLE hndUFR, VAR uint8_t *send_enable, VAR uint8_t *prefix_enable, VAR uint8_t *prefix, VAR uint8_t *suffix, VAR uint8_t *send_removed_enable, VAR uint8_t *reverse_byte_order, VAR uint8_t *decimal_representation, VAR uint32_t *async_baud_rate)
 Multi reader support. Function returns the parameters of card ID sending.
 
UFR_STATUS DL_API GetAsyncCardIdSendConfigM (UFR_HANDLE hndUFR, VAR uint8_t *send_enable, VAR uint8_t *prefix_enable, VAR uint8_t *prefix, VAR uint8_t *suffix, VAR uint8_t *send_removed_enable, VAR uint32_t *async_baud_rate)
 Multi reader support. Returns info about parameters configured with previous function.
 
UFR_STATUS DL_API GetAtqaSak (VAR uint16_t *atqa, VAR uint8_t *sak)
 Function returns ATQA and SAK (ISO 14443-3) of selected card.
 
UFR_STATUS DL_API GetAtqaSakM (UFR_HANDLE hndUFR, uint16_t *atqa, uint8_t *sak)
 Function returns ATQA and SAK (ISO 14443-3) of selected card.
 
UFR_STATUS DL_API GetBuildNumber (VAR uint8_t *build)
 Returns reader firmware build version as one byte representation.
 
UFR_STATUS DL_API GetBuildNumberM (UFR_HANDLE hndUFR, VAR uint8_t *build)
 Multi reader support. Returns reader firmware build version as one byte representation.
 
UFR_STATUS DL_API GetCardId (VAR uint8_t *lpucCardType, OUT uint32_t *lpulCardSerial)
 Returns card UID as a 4-byte array. This function is deprecated and used only for backward compatibility with older firmware versions (before v2.0).
 
UFR_STATUS DL_API GetCardIdEx (VAR uint8_t *lpucSak, OUT uint8_t *aucUid, VAR uint8_t *lpucUidSize)
 This function returns UID of card actually present in RF field of reader. It can handle all three known types : 4, 7 and 10 byte long UIDs.
 
UFR_STATUS DL_API GetCardIdExM (UFR_HANDLE hndUFR, VAR uint8_t *lpucSak, OUT uint8_t *aucUid, VAR uint8_t *lpucUidSize)
 Multi reader support. This function returns UID of card actually present in RF field of reader.
 
UFR_STATUS DL_API GetCardIdM (UFR_HANDLE hndUFR, VAR uint8_t *lpucCardType, OUT uint32_t *lpulCardSerial)
 Multi reader support. Returns card UID as a 4-byte array. This function is deprecated and used only for backward compatibility with older firmware versions (before v2.0). We strongly discourage use of this function. This function can’t successfully handle 7 byte UIDS.
 
UFR_STATUS DL_API GetCardSize (VAR uint32_t *lpulLinearSize, VAR uint32_t *lpulRawSize)
 Function returns size of user data space on the card (LinearSize), and size of total data space on the card (RawSize).
 
UFR_STATUS DL_API GetCardSizeM (UFR_HANDLE hndUFR, VAR uint32_t *lpulLinearSize, VAR uint32_t *lpulRawSize)
 Multi reader support. Function returns size of user data space on the card (LinearSize), and size of total data space on the card (RawSize). The user data space is accessed via functions LinearWrite and LinearRead. Total data space is accessed via functions LinRowWrite and LinRowRead. For example Mifare Classic 1K card have 752 bytes of user data space (sector trailers and block 0 are not included), and 1024 bytes of total data space.
 
UFR_STATUS DL_API GetCustomUiConfig (uint8_t *idle_mode, uint8_t *card_detection_mode, uint8_t *idle_color, uint8_t *card_detection_color, uint8_t *enabled)
 *uFR Zero series readers only. Function to get custom RGB UI signalization
 
UFR_STATUS DL_API GetCustomUiConfigM (UFR_HANDLE hndUFR, uint8_t *idle_mode, uint8_t *card_detection_mode, uint8_t *idle_color, uint8_t *card_detection_color, uint8_t *enabled)
 *uFR Zero series readers only Multi reader support. Function to get custom RGB UI signalization
 
UFR_STATUS DL_API GetDiscoveryLoopSetup (OUT uint8_t *setupStruct, VAR uint32_t *len)
 Function returns reader’s serialized discovery loop structure.
 
UFR_STATUS DL_API GetDiscoveryLoopSetupM (UFR_HANDLE hndUFR, uint8_t *setupStruct, uint32_t *len)
 Multi reader support. Function returns reader’s serialized discovery loop structure i.e. C union (following gcc example): typedef union { __attribute ((packed)) struct { uint16_t flags; uint32_t RFU; }; __attribute ((packed)) struct { uint8_t byte0; uint8_t byte1; uint32_t RFU; } bytes; __attribute ((packed)) struct { uint8_t legacy:1; uint8_t enable_type_a:1; uint8_t enable_type_b:1; uint8_t enable_apple_ecp:1; uint8_t enable_hce:1; uint8_t auto_select_dlogic_aid:1; uint8_t auto_select_apple_vas:1; uint8_t auto_select_google_vas:1; uint8_t RFU_flags; uint32_t RFU; } bits; } discovery_loop_setup_t; sizeof (discovery_loop_setup_t) is 6 bytes.
 
UFR_STATUS DL_API GetDisplayIntensity (VAR uint8_t *intensity)
 Function gets the intensity of light on the display. GetRgbIntensity (alias from version 5.0.55)
 
UFR_STATUS DL_API GetDisplayIntensityM (UFR_HANDLE hndUFR, VAR uint8_t *intensity)
 Multi reader support. GetRgbIntensity (alias from version 5.0.55) Function gets the intensity of light on the display.
 
uint32_t DL_API GetDllVersion (void)
 This function returns library version as string.
 
c_string DL_API GetDllVersionStr (void)
 This function returns library version as string.
 
UFR_STATUS DL_API GetDlogicCardType (VAR uint8_t *lpucCardType)
 This function returns card type according to DlogicCardType enumeration.
 
UFR_STATUS DL_API GetDlogicCardTypeM (UFR_HANDLE hndUFR, VAR uint8_t *lpucCardType)
 Multi reader support. This function returns card type according to DlogicCardType enumeration. For details, please refer to Appendix: DLogic CardType enumeration. If the card type is not supported, function return the lpucCardType value equal to zero : TAG_UNKNOWN = 0x00.
 
UFR_STATUS DL_API GetExternalFieldState (VAR uint8_t *is_field_present)
 Returns external field state when uFR is in ad-hoc emulation mode.
 
UFR_STATUS DL_API GetExternalFieldStateM (UFR_HANDLE hndUFR, VAR uint8_t *is_field_present)
 Multi reader support. Returns external field state when uFR is in ad-hoc emulation mode.
 
UFR_STATUS DL_API GetFtdiDriverVersion (VAR uint8_t *version_major, VAR uint8_t *version_minor, VAR uint8_t *build)
 Used to get the FTDI D2XX driver version number. The communication with the reader needs to be established via ReaderOpen() or ReaderOpenEx() beforehand.
 
UFR_STATUS DL_API GetFtdiDriverVersionStr (OUT char *version_str)
 Used to get the FTDI D2XX driver version number as c-string. The communication with the reader needs to be established via ReaderOpen() or ReaderOpenEx() beforehand.
 
UFR_STATUS DL_API GetLastCardIdEx (VAR uint8_t *lpucSak, OUT uint8_t *aucUid, VAR uint8_t *lpucUidSize)
 This function returns UID of last card which was present in RF field of reader.
 
UFR_STATUS DL_API GetLastCardIdExM (UFR_HANDLE hndUFR, VAR uint8_t *lpucSak, OUT uint8_t *aucUid, VAR uint8_t *lpucUidSize)
 Multi reader support. This function returns UID of last card which was present in RF field of reader.

 
void DL_API GetLicenseRequestData (uint32_t months, OUT char *license_request)
 Used to generate license request necessary for obtaing valid uFCoder license separately.
 
UFR_STATUS DL_API GetMobileAdditionalData (OUT uint8_t data[32], VAR uint32_t *len)
 Function returns “mobile additional” data if the tag in the reader field is actually the selected HCE application in a mobile phone with the appropriate AID which can be set using the SetMobileUniqueIdAid() API.
 
UFR_STATUS DL_API GetMobileAdditionalDataM (UFR_HANDLE hndUFR, uint8_t data[32], uint32_t *len)
 Multi reader support. Function returns “mobile additional” data if the tag in the reader field is actually the selected HCE application in a mobile phone with the appropriate AID which can be set using the SetMobileUniqueIdAid() API. The indication that the HCE application in the mobile phone with the corresponding AID is actually selected is the card type code 0x60 (DL_MOBILE_AID) obtained by the previous call to the GetDlogicCardType() or GetCardIdEx() API.
 
UFR_STATUS DL_API GetMobileUniqueIdAid (OUT uint8_t *aid, VAR uint32_t *len)
 Function returns the AID set in the reader to retrieve the mobile phone's unique ID.
 
UFR_STATUS DL_API GetMobileUniqueIdAidM (UFR_HANDLE hndUFR, uint8_t *aid, uint32_t *len)
 Multi reader support. Function returns the AID set in the reader to retrieve the mobile phone's unique ID. If the reader’s AID has never been set using SetMobileUniqueIdAid(), the function returns UFR_READING_ERROR status and the reader uses the default AID which is {0xF0, 0x01, 0x02, 0x03, 0x04, 0x05}. Minimum AID length is 5 bytes. Maximum AID len is 16 bytes. For details, see the example project at the https://www.d-logic.com/code/nfc-rfid-reader-sdk/ufr-aid_for_mobile_unique_id_setup.
 
UFR_STATUS DL_API GetNfcT2TVersion (OUT uint8_t lpucVersionResponse[8])
 This function returns 8 bytes of the T2T version.
 
UFR_STATUS DL_API GetNfcT2TVersionM (UFR_HANDLE hndUFR, OUT uint8_t lpucVersionResponse[8])
 Multi reader support. This function returns 8 bytes of the T2T version. All modern T2T chips support this functionality and have in common a total of 8 byte long version response. This function is primarily intended to use with NFC_T2T_GENERIC tags (i.e. tags which return 0x0C in the *lpucCardType parameter of the GetDlogicCardType()).
 
c_string DL_API GetReaderDescription (void)
 This function returns the reader's descriptive name. Return type is string. No parameters required.
 
c_string DL_API GetReaderDescriptionM (UFR_HANDLE hndUFR)
 Multi reader support. This function returns the reader's descriptive name. Return type is string. No parameters required.
 
UFR_STATUS DL_API GetReaderFirmwareVersion (VAR uint8_t *version_major, VAR uint8_t *version_minor)
 Returns reader firmware version as two byte representation of higher and lower byte.
 
UFR_STATUS DL_API GetReaderFirmwareVersionM (UFR_HANDLE hndUFR, VAR uint8_t *version_major, VAR uint8_t *version_minor)
 Multi reader support. Returns reader firmware version as two byte representation of higher and lower byte.
 
UFR_STATUS DL_API GetReaderHardwareVersion (VAR uint8_t *version_major, VAR uint8_t *version_minor)
 Returns reader hardware version as two byte representation of higher and lower byte.
 
UFR_STATUS DL_API GetReaderHardwareVersionM (UFR_HANDLE hndUFR, VAR uint8_t *version_major, VAR uint8_t *version_minor)
 Multi reader support. Returns reader hardware version as two byte representation of higher and lower byte.
 
UFR_STATUS DL_API GetReaderSerialDescription (OUT uint8_t pSerialDescription[8])
 Returns reader’s descriptive name as a row of 8 chars.
 
UFR_STATUS DL_API GetReaderSerialDescriptionM (UFR_HANDLE hndUFR, OUT uint8_t pSerialDescription[8])
 Multi reader support. Returns reader’s descriptive name as a row of 8 chars.
 
UFR_STATUS DL_API GetReaderSerialNumber (IN uint32_t *lpulSerialNumber)
 Returns reader serial number as a pointer to 4 byte value.
 
UFR_STATUS DL_API GetReaderSerialNumberM (UFR_HANDLE hndUFR, IN uint32_t *lpulSerialNumber)
 Multi reader support. Returns reader serial number as a pointer to 4 byte value.
 
UFR_STATUS DL_API GetReaderStatus (VAR pcd_states_t *state, VAR emul_modes_t *emul_mode, VAR emul_states_t *emul_state, VAR uint8_t *sleep_mode)
 Function returns various reader states.
 
UFR_STATUS DL_API GetReaderTime (VAR uint8_t *time)
 Function returns a 6 bytes array of uint8_t that represents the current date and time into the device's RTC.
 
UFR_STATUS DL_API GetReaderTimeM (UFR_HANDLE hndUFR, VAR uint8_t *time)
 Multi reader support. Function returns a 6 bytes array of uint8_t that represents the current date and time into the device's RTC.
 
UFR_STATUS DL_API GetReaderType (IN uint32_t *lpulReaderType)
 Returns reader type as a pointer to 4 byte value.
 
UFR_STATUS DL_API GetReaderTypeM (UFR_HANDLE hndUFR, IN uint32_t *lpulReaderType)
 Multi reader support. Returns reader type as a pointer to 4 byte value.
 
UFR_STATUS DL_API GetRfAnalogRegistersISO14443_212 (VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 The functions read the value of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API GetRfAnalogRegistersISO14443_212M (UFR_HANDLE hndUFR, VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API GetRfAnalogRegistersISO14443_424 (VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 The functions read the value of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API GetRfAnalogRegistersISO14443_424M (UFR_HANDLE hndUFR, VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeA (VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 The functions read the value of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeAM (UFR_HANDLE hndUFR, VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeATrans (VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel, VAR uint8_t *CWGsNOn, VAR uint8_t *ModGsNOn, VAR uint8_t *CWGsP, VAR uint8_t *CWGsNOff, VAR uint8_t *ModGsNOff)
 The functions read the value of the registers RFCfgReg, RxThresholdReg, GsNOnReg, GsNOffReg, CWGsPReg, ModGsPReg.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeATransM (UFR_HANDLE hndUFR, VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel, VAR uint8_t *CWGsNOn, VAR uint8_t *ModGsNOn, VAR uint8_t *CWGsP, VAR uint8_t *CWGsNOff, VAR uint8_t *ModGsNOff)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeB (VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 The functions read the value of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeBM (UFR_HANDLE hndUFR, VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeBTrans (VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel, VAR uint8_t *CWGsNOn, VAR uint8_t *ModGsNOn, VAR uint8_t *CWGsP, VAR uint8_t *ModGsP)
 The functions read the value of the registers RFCfgReg, RxThresholdReg, GsNOnReg, GsNOffReg, CWGsPReg, ModGsPReg.
 
UFR_STATUS DL_API GetRfAnalogRegistersTypeBTransM (UFR_HANDLE hndUFR, VAR uint8_t *ThresholdMinLevel, VAR uint8_t *ThresholdCollLevel, VAR uint8_t *RFLevelAmp, VAR uint8_t *RxGain, VAR uint8_t *RFLevel, VAR uint8_t *CWGsNOn, VAR uint8_t *ModGsNOn, VAR uint8_t *CWGsP, VAR uint8_t *ModGsP)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API GetRgbIntensity (VAR uint8_t *intensity)
 Function gets the intensity of light on the display.
 
UFR_STATUS DL_API GetSpeedParameters (VAR unsigned char *tx_speed, VAR unsigned char *rx_speed)
 Returns baud rate configured with previous function.
 
UFR_STATUS DL_API GetSpeedParametersM (UFR_HANDLE hndUFR, VAR unsigned char *tx_speed, VAR unsigned char *rx_speed)
 Multi reader support. Returns baud rate configured with previous function.
 
UFR_STATUS DL_API GreenLedBlinkingTurnOff (void)
 The function prohibits the blinking of the green diode independently of the user's signaling command.
 
UFR_STATUS DL_API GreenLedBlinkingTurnOffM (UFR_HANDLE hndUFR)
 Multi reader support. The function prohibits the blinking of the green diode independently of the user's signaling command. LED and sound signaling occurs only on the user command. This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API GreenLedBlinkingTurnOn (void)
 The function allows the blinking of the green diode independently of the user's signaling command (default setting).
 
UFR_STATUS DL_API GreenLedBlinkingTurnOnM (UFR_HANDLE hndUFR)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API i_block_trans_rcv_chain (uint8_t chaining, uint8_t timeout, uint8_t block_length, IN uint8_t *snd_data_array, VAR uint8_t *rcv_length, OUT uint8_t *rcv_data_array, VAR uint8_t *rcv_chained, VAR uint32_t *ufr_status)
 I-block used to convey information for use by the application layer.
 
UFR_STATUS DL_API i_block_trans_rcv_chainM (UFR_HANDLE hndUFR, uint8_t chaining, uint8_t timeout, uint8_t block_length, IN uint8_t *snd_data_array, VAR uint8_t *rcv_length, OUT uint8_t *rcv_data_array, VAR uint8_t *rcv_chained, VAR uint32_t *ufr_status)
 Multi reader support. I-block used to convey information for use by the application layer.
 
UFR_STATUS DL_API IncrementCounter (uint8_t counter_address, uint32_t inc_value)
 This function is used to increment one of the three 24-bit one-way counters in Ultralight EV1 chip family.
 
UFR_STATUS DL_API IncrementCounterM (UFR_HANDLE hndUFR, uint8_t counter_address, uint32_t inc_value)
 Multi reader support. This function is used to increment one of the three 24-bit one-way counters in Ultralight EV1 chip family. Those counters can’t be password protected. If the sum of the addressed counter value and the increment value is higher than 0xFFFFFF, the tag replies with an error and does not update the respective counter.
 
void DL_API initVM (JNIEnv *env, jclass class1)
 
UFR_STATUS DL_API JCAppGenerateSignature (uint8_t cipher, uint8_t digest, uint8_t padding, uint8_t key_index, IN const uint8_t *plain_data, uint16_t plain_data_len, VAR uint16_t *sig_len, IN const uint8_t *alg_param, uint16_t alg_parm_len)
 This function virtually combines three successive calls of functions JCAppSignatureBegin(), JCAppSignatureUpdate() and JCAppSignatureEnd() and can be used in case your data for signing have 255 bytes or less.
 
UFR_STATUS DL_API JCAppGenerateSignatureM (UFR_HANDLE hndUFR, uint8_t cipher, uint8_t digest, uint8_t padding, uint8_t key_index, IN const uint8_t *plain_data, uint16_t plain_data_len, VAR uint16_t *sig_len, IN const uint8_t *alg_param, uint16_t alg_parm_len)
 Multi reader support. This function virtually combines three successive calls of functions JCAppSignatureBegin(), JCAppSignatureUpdate() and JCAppSignatureEnd() and can be used in case your data for signing have 255 bytes or less. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". Prior to calling this function you have to be logged in with a User PIN code.
 
UFR_STATUS DL_API JCAppGetObj (uint8_t obj_type, uint8_t obj_index, OUT uint8_t *obj, int16_t size)
 This function you always have to call 2 times.
 
UFR_STATUS DL_API JCAppGetObjId (uint8_t obj_type, uint8_t obj_index, OUT uint8_t *id, VAR uint16_t *id_size)
 This function you always have to call 2 times.
 
UFR_STATUS DL_API JCAppGetObjIdM (UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, OUT uint8_t *id, VAR uint16_t *id_size)
 Multi reader support. This function you always have to call 2 times. Before the first call you have to set parameter id to null and you will get the id_size of the obj_type at obj_index. Before the second call you have to allocate an array of the returned id_size bytes and pass that array using parameter id. Before second call, *id_size should be set to a value of the exact bytes allocated. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". This function does not require to be logged in with any of the PIN codes.
 
UFR_STATUS DL_API JCAppGetObjM (UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, OUT uint8_t *obj, int16_t size)
 Multi reader support. This function you always have to call 2 times. Before the first call you have to set parameter id to null and you will get the id_size of the obj_type at obj_index. Before the second call you have to allocate an array of the returned id_size bytes and pass that array using parameter id. Before second call, *id_size should be set to a value of the exact bytes allocated. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". This function does not require to be logged in with any of the PIN codes.
 
UFR_STATUS DL_API JCAppGetObjSubject (uint8_t obj_type, uint8_t obj_index, OUT uint8_t *subject, VAR uint16_t *size)
 This function you always have to call 2 times.
 
UFR_STATUS DL_API JCAppGetObjSubjectM (UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, OUT uint8_t *subject, VAR uint16_t *size)
 Multi reader support. This function you always have to call 2 times. Before the first call you have to set the parameter subject to null and you will get the size of the obj_type at obj_index. Before the second call you have to allocate an array of returned size bytes and pass that array using parameter subject. Before second call, *size should be set to a value of the exact bytes allocated. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". This function does not require to be logged in with any of the PIN codes.
 
UFR_STATUS DL_API JCAppGetPinTriesRemaining (dl_sec_code_t secureCodeType, VAR uint16_t *triesRemaining)
 This function is used to get how many of the unsuccessful login attempts remain before specified PIN or PUK code will be blocked.
 
UFR_STATUS DL_API JCAppGetPinTriesRemainingM (UFR_HANDLE hndUFR, dl_sec_code_t secureCodeType, VAR uint16_t *triesRemaining)
 Multi reader support. This function is used to get how many of the unsuccessful login attempts remain before specified PIN or PUK code will be blocked. This function have parameter of the type dl_sec_code_t which is defined as: typedef enum { USER_PIN = 0, SO_PIN, USER_PUK, SO_PUK } dl_sec_code_t; This function does not require to be logged in with any of the PIN codes.
 
UFR_STATUS DL_API JCAppGetSignature (OUT uint8_t *sig, uint16_t sig_len)
 Finally, to get a signature, you have to call JCAppGetSignature().
 
UFR_STATUS DL_API JCAppInvalidateCert (uint8_t obj_type, uint8_t obj_index)
 Using this function you can delete certificate objects from a card.
 
UFR_STATUS DL_API JCAppInvalidateCertM (UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index)
 Multi reader support. Using this function you can delete certificate objects from a card. This includes subjects linked to a certificate. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". Prior to calling this function you have to be logged in with an SO PIN code.
 
UFR_STATUS DL_API JCAppLogin (uint8_t SO, IN uint8_t *pin, uint8_t pinSize)
 This function is used to login to the JCApp with an appropriate PIN code.
 
UFR_STATUS DL_API JCAppLoginM (UFR_HANDLE hndUFR, uint8_t SO, IN uint8_t *pin, uint8_t pinSize)
 Multi reader support. This function is used to login to the JCApp with an appropriate PIN code. Every time you deselect the JCApp tag either by calling s_block_deselect(), ReaderReset(), ReaderClose() or because of the loss of the NFC field, in order to communicate with the same tag you have to select JCApp and login again, using this function. Every successful login resets the incorrectly entered PIN code counter for the PIN code specified by the SO parameter.
 
UFR_STATUS DL_API JCAppPinChange (dl_sec_code_t secureCodeType, IN uint8_t *newPin, uint8_t newPinSize)
 This function is used to change the PIN or PUK code which type is specified with secureCodeType parameter of type dl_sec_code_t.
 
UFR_STATUS DL_API JCAppPinChangeM (UFR_HANDLE hndUFR, dl_sec_code_t secureCodeType, IN uint8_t *newPin, uint8_t newPinSize)
 Multi reader support. This function is used to change the PIN or PUK code which type is specified with secureCodeType parameter of type dl_sec_code_t which is defined as: typedef enum { USER_PIN = 0, SO_PIN, USER_PUK, SO_PUK } dl_sec_code_t; Prior to calling this function you have to be logged in with an SO PIN code.
 
UFR_STATUS DL_API JCAppPinUnblock (uint8_t SO, IN uint8_t *puk, uint8_t pukSize)
 This function is used to unblock PIN code which is specified by the SO parameter.
 
UFR_STATUS DL_API JCAppPinUnblockM (UFR_HANDLE hndUFR, uint8_t SO, IN uint8_t *puk, uint8_t pukSize)
 Multi reader support. This function is used to unblock PIN code which is specified by the SO parameter. This function does not require to be logged in with any of the PIN codes.
 
UFR_STATUS DL_API JCAppPutObj (uint8_t obj_type, uint8_t obj_index, IN uint8_t *obj, int16_t obj_size, IN uint8_t *id, uint8_t id_size)
 Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCAppPutObjM (UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, IN uint8_t *obj, int16_t obj_size, IN uint8_t *id, uint8_t id_size)
 Multi reader support. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". Prior to calling this function you have to be logged in with an SO PIN code.
 
UFR_STATUS DL_API JCAppPutObjSubject (uint8_t obj_type, uint8_t obj_index, IN uint8_t *subject, uint8_t size)
 Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCAppPutObjSubjectM (UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, IN uint8_t *subject, uint8_t size)
 Multi reader support. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". Prior to calling of this function you have to be logged in with an SO PIN code.
 
UFR_STATUS DL_API JCAppPutPrivateKey (uint8_t key_type, uint8_t key_index, IN const uint8_t *key, uint16_t key_bit_len, const IN uint8_t *key_param, uint16_t key_parm_len)
 In JCApp cards you can put two types of asymmetric crypto keys.
 
UFR_STATUS DL_API JCAppPutPrivateKeyM (UFR_HANDLE hndUFR, uint8_t key_type, uint8_t key_index, IN const uint8_t *key, uint16_t key_bit_len, const IN uint8_t *key_param, uint16_t key_parm_len)
 Multi reader support. In JCApp cards you can put two types of asymmetric crypto keys. Those are RSA and ECDSA private keys, three of each. Before you can use a JCApp card for digital signing you have to put an appropriate private key in it. There is no way to read out private keys from the card. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01". This feature is disabled in the regular DLSigner JCApp. To acquire cards with this feature enabled you have to contact your supplier with a special request. Prior to calling this function you have to be logged in with an SO PIN code.
 
UFR_STATUS DL_API JCAppSelectByAid (IN const uint8_t *aid, uint8_t aid_len, OUT uint8_t selection_response[16])
 Using this function you can select the appropriate application on the card.
 
UFR_STATUS DL_API JCAppSelectByAidM (UFR_HANDLE hndUFR, IN const uint8_t *aid, uint8_t aid_len, OUT uint8_t selection_response[16])
 Multi reader support. Using this function you can select the appropriate application on the card. For the DLSigner JCApp AID should be 'F0 44 4C 6F 67 69 63 00 01'. For the DLStorage JCApp AID should be 'F0 44 4C 6F 67 69 63 01 01'. Before calling this function, the NFC tag must be in ISO 14443-4 mode. For entering ISO 14443-4 mode use the SetISO14443_4_Mode() or SetISO14443_4_Mode_GetATS() function.
 
UFR_STATUS DL_API JCAppSignatureBegin (uint8_t cipher, uint8_t digest, uint8_t padding, uint8_t key_index, IN const uint8_t *chunk, uint16_t chunk_len, IN const uint8_t *alg_param, uint16_t alg_parm_len)
 Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCAppSignatureBeginM (UFR_HANDLE hndUFR, uint8_t cipher, uint8_t digest, uint8_t padding, uint8_t key_index, IN const uint8_t *chunk, uint16_t chunk_len, IN const uint8_t *alg_param, uint16_t alg_parm_len)
 Multi reader support. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCAppSignatureEnd (VAR uint16_t *sig_len)
 Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCAppSignatureEndM (UFR_HANDLE hndUFR, VAR uint16_t *sig_len)
 Multi reader support. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCAppSignatureUpdate (IN const uint8_t *chunk, uint16_t chunk_len)
 Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCAppSignatureUpdateM (UFR_HANDLE hndUFR, IN const uint8_t *chunk, uint16_t chunk_len)
 Multi reader support. Before calling this function, NFC tag must be in ISO 14443-4 mode and JCApp should be selected using JCAppSelectByAid() with AID = "\xF0\x44\x4C\x6F\x67\x69\x63\x00\x01".
 
UFR_STATUS DL_API JCStorageDeleteFile (uint8_t file_index)
 After successful call to this function, the file on the DLStorage card will be deleted.
 
UFR_STATUS DL_API JCStorageDeleteFileM (UFR_HANDLE hndUFR, uint8_t file_index)
 Multi reader support. After successful call to this function, the file on the DLStorage card will be deleted. Maximum files on the card is 16 and file indexes are zero-based so indexes can be in the range of 0 to 15. If a file with index defined by the file_index parameter does not exist, the function will return UFR_APDU_SW_FILE_NOT_FOUND (0x000A6A82) error code.
 
UFR_STATUS DL_API JCStorageGetFileSize (uint8_t card_file_index, VAR uint32_t *file_size)
 This function returns file size indexed by the parameter card_file_index, on successful execution.
 
UFR_STATUS DL_API JCStorageGetFileSizeM (UFR_HANDLE hndUFR, uint8_t card_file_index, VAR uint32_t *file_size)
 Multi reader support. This function returns file size indexed by the parameter card_file_index, on successful execution. Returned file size is in bytes. Maximum files on the DLStorage card is 16 and file indexes are zero-based so indexes can be in the range of 0 to 15. You have to know file size to allocate an appropriate amount of data prior to calling the JCStorageReadFile() function.
 
UFR_STATUS DL_API JCStorageGetFilesListSize (VAR uint32_t *list_size)
 This function has to be called before JCStorageListFiles() to acquire the size of the array of bytes needed to be allocated for the list of currently existing files on the DLStorage card.
 
UFR_STATUS DL_API JCStorageGetFilesListSizeM (UFR_HANDLE hndUFR, VAR uint32_t *list_size)
 Multi reader support. This function has to be called before JCStorageListFiles() to acquire the size of the array of bytes needed to be allocated for the list of currently existing files on the DLStorage card. Maximum files on the DLStorage card is 16.
 
UFR_STATUS DL_API JCStorageListFiles (OUT uint8_t *list, uint32_t list_bytes_allocated)
 After calling the JCStorageGetFilesListSize() function and getting the size of the list of the currently existing files on the DLStorage card, and if the list size is greater than 0, you can allocate a convenient array of bytes and then call this function.
 
UFR_STATUS DL_API JCStorageListFilesM (UFR_HANDLE hndUFR, OUT uint8_t *list, uint32_t list_bytes_allocated)
 Multi reader support. After calling the JCStorageGetFilesListSize() function and getting the size of the list of the currently existing files on the DLStorage card, and if the list size is greater than 0, you can allocate a convenient array of bytes and then call this function. On successful function execution, the array pointed by the list parameter will contain indexes of the existing files on the card. Maximum files on the DLStorage card is 16. Each byte of the array pointed by the list parameter contains a single index of the existing file on the DLStorage card.
 
UFR_STATUS DL_API JCStorageReadFile (uint8_t card_file_index, OUT uint8_t *data, uint32_t data_bytes_allocated)
 After calling the JCStorageGetFileSize() function and getting the size of the file on the DLStorage card you can allocate a convenient array of bytes and then call this function.
 
UFR_STATUS DL_API JCStorageReadFileM (UFR_HANDLE hndUFR, uint8_t card_file_index, OUT uint8_t *data, uint32_t data_bytes_allocated)
 Multi reader support. After calling the JCStorageGetFileSize() function and getting the size of the file on the DLStorage card you can allocate a convenient array of bytes and then call this function. On successful function execution, the array pointed by the data parameter will contain file content. If the file with the index defined by the card_file_index parameter does not exist, the function will return UFR_APDU_SW_FILE_NOT_FOUND (0x000A6A82) error code. Maximum files on the DLStorage card is 16 and file indexes are zero-based so indexes can be in the range of 0 to 15.
 
UFR_STATUS DL_API JCStorageReadFileToFileSystem (uint8_t card_file_index, IN const char *file_system_path_name)
 This function reads a file from the DLStorage card directly to the new file on the host file-system.
 
UFR_STATUS DL_API JCStorageReadFileToFileSystemM (UFR_HANDLE hndUFR, uint8_t card_file_index, IN const char *file_system_path_name)
 Multi reader support. This function reads a file from the DLStorage card directly to the new file on the host file-system. If the file on the host file system already exists, it will be overwritten. If the file with the index defined by the card_file_index parameter does not exist, the function will return UFR_APDU_SW_FILE_NOT_FOUND (0x000A6A82) error code. Maximum files on the DLStorage card is 16 and file indexes are zero-based so indexes can be in the range of 0 to 15.
 
UFR_STATUS DL_API JCStorageWriteFile (uint8_t card_file_index, IN const uint8_t *data, uint32_t data_size)
 This function creates a file on the DLStorage card and writes an array of bytes pointed by the data parameter to it.
 
UFR_STATUS DL_API JCStorageWriteFileFromFileSystem (uint8_t card_file_index, IN const char *file_system_path_name)
 This function writes file content from the host file-system to the new file on the DLStorage card.
 
UFR_STATUS DL_API JCStorageWriteFileFromFileSystemM (UFR_HANDLE hndUFR, uint8_t card_file_index, IN const char *file_system_path_name)
 Multi reader support. This function writes file content from the host file-system to the new file on the DLStorage card. If the file with the index defined by the card_file_index parameter already exists on the card, the function will return UFR_APDU_SW_ENTITY_ALREADY_EXISTS (0x000A6A89) error code. Maximum files on the DLStorage card is 16 and file indexes are zero-based so indexes can be in the range of 0 to 15. If there is an error during the writing procedure, for example because of the loss of the NFC field and the file is only partially written (tearing event), a corrupted file on the DLStorage card should be deleted and then written again. Therefore we suggest you to always do verification of the data written to the card.
 
UFR_STATUS DL_API JCStorageWriteFileM (UFR_HANDLE hndUFR, uint8_t card_file_index, IN const uint8_t *data, uint32_t data_size)
 Multi reader support. This function creates a file on the DLStorage card and writes an array of bytes pointed by the data parameter to it. Parameter data_size defines the amount of data to be written in the file on the DLStorage card. If the file with the index defined by the card_file_index parameter already exists on the card, the function will return UFR_APDU_SW_ENTITY_ALREADY_EXISTS (0x000A6A89) error code. Maximum files on the DLStorage card is 16 and file indexes are zero-based so indexes can be in the range of 0 to 15. If there is an error during the writing procedure, for example because of the loss of the NFC field and the file is only partially written (tearing event), a corrupted file on the DLStorage card should be deleted and then written again. Therefore we suggest you to always do verification of the data written to the card.
 
UFR_STATUS DL_API LinearFormatCard (IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode, uint8_t key_index)
 This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once.
 
UFR_STATUS DL_API LinearFormatCard_AKM1 (IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once.
 
UFR_STATUS DL_API LinearFormatCard_AKM1M (UFR_HANDLE hndUFR, IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Bytes 0 - 5 Bytes 6 - 8 Byte 9 Bytes 10 - 15 KeyA Block Access & Trailer Access Bits GPB KeyB For more information, please refer to Mifare Classic Keys and Access Conditions in this document. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authetntication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are caluculate from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provode to reader.
 
UFR_STATUS DL_API LinearFormatCard_AKM2 (IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once.
 
UFR_STATUS DL_API LinearFormatCard_AKM2M (UFR_HANDLE hndUFR, IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Bytes 0 - 5 Bytes 6 - 8 Byte 9 Bytes 10 - 15 KeyA Block Access & Trailer Access Bits GPB KeyB For more information, please refer to Mifare Classic Keys and Access Conditions in this document. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authetntication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are caluculate from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provode to reader.
 
UFR_STATUS DL_API LinearFormatCard_PK (IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once.
 
UFR_STATUS DL_API LinearFormatCard_PKM (UFR_HANDLE hndUFR, IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Bytes 0 - 5 Bytes 6 - 8 Byte 9 Bytes 10 - 15 KeyA Block Access & Trailer Access Bits GPB KeyB For more information, please refer to Mifare Classic Keys and Access Conditions in this document. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authetntication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are caluculate from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provode to reader.
 
UFR_STATUS DL_API LinearFormatCardM (UFR_HANDLE hndUFR, IN const uint8_t *new_key_A, uint8_t blocks_access_bits, uint8_t sector_trailers_access_bits, uint8_t sector_trailers_byte9, IN const uint8_t *new_key_B, VAR uint8_t *lpucSectorsFormatted, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. This function is specific to Mifare Classic cards only. It performs “Format card” operation - write new Sector Trailer values on whole card at once. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Bytes 0 - 5 Bytes 6 - 8 Byte 9 Bytes 10 - 15 KeyA Block Access & Trailer Access Bits GPB KeyB For more information, please refer to Mifare Classic Keys and Access Conditions in this document. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authetntication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are caluculate from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provode to reader.
 
UFR_STATUS DL_API LinearRead (OUT uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesReturned, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags.
 
UFR_STATUS DL_API LinearRead_AKM1 (OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags.
 
UFR_STATUS DL_API LinearRead_AKM1M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinearRead_AKM2 (OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags.
 
UFR_STATUS DL_API LinearRead_AKM2M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinearRead_PK (OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags.
 
UFR_STATUS DL_API LinearRead_PKM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinearReadM (UFR_HANDLE hndUFR, OUT uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesReturned, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Multi reader support. Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinearReadSamKey (OUT uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesReturned, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags.
 
UFR_STATUS DL_API LinearReadSamKeyM (UFR_HANDLE hndUFR, OUT uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesReturned, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Multi reader support. *only uFR CS with SAM support Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinearWrite (IN const uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesWritten, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 These functions are used for writing data to the card using emulation of the linear address space.
 
UFR_STATUS DL_API LinearWrite_AKM1 (IN const uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_written, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) These functions are used for writing data to the card using emulation of the linear address space.
 
UFR_STATUS DL_API LinearWrite_AKM1M (UFR_HANDLE hndUFR, IN const uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_written, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) These functions are used for writing data to the card using emulation of the linear address space. The method for proving authenticity is determined by the suffix in the functions names.
 
UFR_STATUS DL_API LinearWrite_AKM2 (IN const uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_written, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) These functions are used for writing data to the card using emulation of the linear address space.
 
UFR_STATUS DL_API LinearWrite_AKM2M (UFR_HANDLE hndUFR, IN const uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_written, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) These functions are used for writing data to the card using emulation of the linear address space. The method for proving authenticity is determined by the suffix in the functions names.
 
UFR_STATUS DL_API LinearWrite_PK (IN const uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_written, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) These functions are used for writing data to the card using emulation of the linear address space.
 
UFR_STATUS DL_API LinearWrite_PKM (UFR_HANDLE hndUFR, IN const uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_written, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) These functions are used for writing data to the card using emulation of the linear address space. The method for proving authenticity is determined by the suffix in the functions names.
 
UFR_STATUS DL_API LinearWriteM (UFR_HANDLE hndUFR, IN const uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesWritten, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Multi reader support. These functions are used for writing data to the card using emulation of the linear address space. The method for proving authenticity is determined by the suffix in the functions names.
 
UFR_STATUS DL_API LinearWriteSamKey (IN const uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesWritten, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 These functions are used for writing data to the card using emulation of the linear address space. The method for proving authenticity is determined by the suffix in the functions names. *only uFR CS with SAM support.
 
UFR_STATUS DL_API LinearWriteSamKeyM (UFR_HANDLE hndUFR, IN const uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesWritten, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Multi reader support. *only uFR CS with SAM support These functions are used for writing data to the card using emulation of the linear address space. The method for proving authenticity is determined by the suffix in the functions names.
 
UFR_STATUS DL_API LinRowRead (OUT uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesReturned, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Read Linear data Address Space. On the contrary of LinearRead functions, this functions read whole card including trailer blocks and manufacturer block.
 
UFR_STATUS DL_API LinRowRead_AKM1 (OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) Read Linear data Address Space.
 
UFR_STATUS DL_API LinRowRead_AKM1M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) Read Linear data Address Space. On the contrary of LinearRead functions, this functions read whole card including trailer blocks and manufacturer block. This function is useful when making “dump” of the whole card. Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinRowRead_AKM2 (OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) Read Linear data Address Space.
 
UFR_STATUS DL_API LinRowRead_AKM2M (UFR_HANDLE hndUFR, OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) Read Linear data Address Space. On the contrary of LinearRead functions, this functions read whole card including trailer blocks and manufacturer block. This function is useful when making “dump” of the whole card. Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinRowRead_PK (OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) Read Linear data Address Space.
 
UFR_STATUS DL_API LinRowRead_PKM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint16_t linear_address, uint16_t length, VAR uint16_t *bytes_returned, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) Read Linear data Address Space. On the contrary of LinearRead functions, this functions read whole card including trailer blocks and manufacturer block. This function is useful when making “dump” of the whole card. Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API LinRowReadM (UFR_HANDLE hndUFR, OUT uint8_t *aucData, uint16_t usLinearAddress, uint16_t usDataLength, VAR uint16_t *lpusBytesReturned, uint8_t ucKeyMode, uint8_t ucReaderKeyIndex)
 Multi reader support. Read Linear data Address Space. On the contrary of LinearRead functions, this functions read whole card including trailer blocks and manufacturer block. This function is useful when making “dump” of the whole card. Linear reading in uFR firmware utilise FAST_READ ISO 14443-3 command with NTAG21x and Mifare Ultralight EV1 tags. When using this functions with other card types, auth_mode, key_index and key parameters are not relevant but must take default values.
 
UFR_STATUS DL_API ListCards (OUT uint8_t *aucUidList, uint8_t ucUidListSize)
 For each UID of the cards detected in the reader field, there are 11 “UID record bytes” allocated in the list.
 
UFR_STATUS DL_API ListCardsM (UFR_HANDLE hndUFR, OUT uint8_t *aucUidList, uint8_t ucUidListSize)
 Multi reader support. Before calling this function you have to call EnumCards() first. For each UID of the cards detected in the reader field, there are 11 “UID record bytes” allocated in the list. First of those 11 bytes allocated designate actual UID length immediately followed by the exactly 10 bytes of UID (which is maximum hypothetical UID size). E.g, if the actual UID length is 4 bytes, you should ignore last 6 bytes of the UID record.
 
UFR_STATUS DL_API MFP_AesAuthSecurityLevel1 (uint8_t key_index)
 Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication.
 
UFR_STATUS DL_API MFP_AesAuthSecurityLevel1_PK (IN uint8_t *aes_key)
 Provided Key mode (PK) Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication.
 
UFR_STATUS DL_API MFP_AesAuthSecurityLevel1_PKM (UFR_HANDLE hndUFR, IN uint8_t *aes_key)
 Multi reader support. Provided Key mode (PK) Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication.
 
UFR_STATUS DL_API MFP_AesAuthSecurityLevel1M (UFR_HANDLE hndUFR, uint8_t key_index)
 Multi reader support. Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication.
 
UFR_STATUS DL_API MFP_ChangeConfigurationKey (uint8_t key_index, IN uint8_t *new_key)
 Security level 3 command. The function is used to change the AES card configuration key value.
 
UFR_STATUS DL_API MFP_ChangeConfigurationKey_PK (IN uint8_t *old_key, IN uint8_t *new_key)
 Provided Key mode (PK) Security level 3 command. The function is used to change the AES card configuration key value.
 
UFR_STATUS DL_API MFP_ChangeConfigurationKey_PKM (UFR_HANDLE hndUFR, IN uint8_t *old_key, IN uint8_t *new_key)
 Multi reader support. Provided Key mode (PK) Security level 3 command. The function is used to change the AES card configuration key value.
 
UFR_STATUS DL_API MFP_ChangeConfigurationKeyM (UFR_HANDLE hndUFR, uint8_t key_index, IN uint8_t *new_key)
 Multi reader support. Security level 3 command. The function is used to change the AES card configuration key value.
 
UFR_STATUS DL_API MFP_ChangeConfigurationKeySamKey (uint8_t key_index, uint8_t new_key_index)
 *only uFR CS with SAM support Security level 3 command. The function is used to change the AES card configuration key value.
 
UFR_STATUS DL_API MFP_ChangeConfigurationKeySamKeyM (UFR_HANDLE hndUFR, uint8_t key_index, uint8_t new_key_index)
 Multi reader support. *only uFR CS with SAM support Security level 3 command. The function is used to change the AES card configuration key value.
 
UFR_STATUS DL_API MFP_ChangeMasterKey (uint8_t key_index, IN uint8_t *new_key)
 Security level 3 command. The function is used to change the AES card master key value.
 
UFR_STATUS DL_API MFP_ChangeMasterKey_PK (IN uint8_t *old_key, IN uint8_t *new_key)
 Provided Key mode (PK) Security level 3 command. The function is used to change the AES card master key value.
 
UFR_STATUS DL_API MFP_ChangeMasterKey_PKM (UFR_HANDLE hndUFR, IN uint8_t *old_key, IN uint8_t *new_key)
 Multi reader support. Provided Key mode (PK) Security level 3 command. The function is used to change the AES card master key value.
 
UFR_STATUS DL_API MFP_ChangeMasterKeyM (UFR_HANDLE hndUFR, uint8_t key_index, IN uint8_t *new_key)
 Multi reader support. Security level 3 command. The function is used to change the AES card master key value.
 
UFR_STATUS DL_API MFP_ChangeMasterKeySamKey (uint8_t key_index, uint8_t new_key_index)
 *only uFR CS with SAM support Security level 3 command. The function is used to change the AES card master key value.
 
UFR_STATUS DL_API MFP_ChangeMasterKeySamKeyM (UFR_HANDLE hndUFR, uint8_t key_index, uint8_t new_key_index)
 Multi reader support. *only uFR CS with SAM support Security level 3 command. The function is used to change the AES card master key value.
 
UFR_STATUS DL_API MFP_ChangeSectorKey (uint8_t sector_nr, uint8_t auth_mode, uint8_t key_index, IN uint8_t *new_key)
 Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
 
UFR_STATUS DL_API MFP_ChangeSectorKey_PK (uint8_t sector_nr, uint8_t auth_mode, IN uint8_t *old_key, IN uint8_t *new_key)
 Provided Key mode (PK) Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
 
UFR_STATUS DL_API MFP_ChangeSectorKey_PKM (UFR_HANDLE hndUFR, uint8_t sector_nr, uint8_t auth_mode, IN uint8_t *old_key, IN uint8_t *new_key)
 Multi reader support. Provided Key mode (PK) Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
 
UFR_STATUS DL_API MFP_ChangeSectorKeyM (UFR_HANDLE hndUFR, uint8_t sector_nr, uint8_t auth_mode, uint8_t key_index, IN uint8_t *new_key)
 Multi reader support. Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
 
UFR_STATUS DL_API MFP_ChangeSectorKeySamKey (uint8_t sector_nr, uint8_t auth_mode, uint8_t key_index, uint8_t new_key_index)
 *only uFR CS with SAM support Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
 
UFR_STATUS DL_API MFP_ChangeSectorKeySamKeyM (UFR_HANDLE hndUFR, uint8_t sector_nr, uint8_t auth_mode, uint8_t key_index, uint8_t new_key_index)
 Multi reader support. *only uFR CS with SAM support Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
 
UFR_STATUS DL_API MFP_ChangeVcPollingEncKey (uint8_t configuration_key_index, IN uint8_t *new_key)
 Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingEncKey_PK (IN uint8_t *configuration_key, IN uint8_t *new_key)
 Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingEncKey_PKM (UFR_HANDLE hndUFR, IN uint8_t *configuration_key, IN uint8_t *new_key)
 Multi reader support. Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingEncKeyM (UFR_HANDLE hndUFR, uint8_t configuration_key_index, IN uint8_t *new_key)
 Multi reader support. Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingEncKeySamKey (uint8_t configuration_key_index, uint8_t new_key_index)
 *only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingEncKeySamKeyM (UFR_HANDLE hndUFR, uint8_t configuration_key_index, uint8_t new_key_index)
 Multi reader support. *only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingMacKey (uint8_t configuration_key_index, IN uint8_t *new_key)
 Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingMacKey_PK (IN uint8_t *configuration_key, IN uint8_t *new_key)
 Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingMacKey_PKM (UFR_HANDLE hndUFR, IN uint8_t *configuration_key, IN uint8_t *new_key)
 Multi reader support. Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingMacKeyM (UFR_HANDLE hndUFR, uint8_t configuration_key_index, IN uint8_t *new_key)
 Multi reader support. Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingMacKeySamKey (uint8_t configuration_key_index, uint8_t new_key_index)
 *only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_ChangeVcPollingMacKeySamKeyM (UFR_HANDLE hndUFR, uint8_t configuration_key_index, uint8_t new_key_index)
 Multi reader support. *only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
 
UFR_STATUS DL_API MFP_CommitPerso (void)
 Security level 0 command. Function is used to finalize the personalization and switch up to security level 1.
 
UFR_STATUS DL_API MFP_CommitPersoM (UFR_HANDLE hndUFR)
 Multi reader support. Security level 0 command. Function is used to finalize the personalization and switch up to security level 1.
 
UFR_STATUS DL_API MFP_FieldConfigurationSet (uint8_t configuration_key_index, uint8_t rid_use, uint8_t prox_check_use)
 Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
 
UFR_STATUS DL_API MFP_FieldConfigurationSet_PK (IN uint8_t *configuration_key, uint8_t rid_use, uint8_t prox_check_use)
 Provided Key mode (PK) Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
 
UFR_STATUS DL_API MFP_FieldConfigurationSet_PKM (UFR_HANDLE hndUFR, IN uint8_t *configuration_key, uint8_t rid_use, uint8_t prox_check_use)
 Multi reader support. Provided Key mode (PK) Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
 
UFR_STATUS DL_API MFP_FieldConfigurationSetM (UFR_HANDLE hndUFR, uint8_t configuration_key_index, uint8_t rid_use, uint8_t prox_check_use)
 Multi reader support. Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
 
UFR_STATUS DL_API MFP_FieldConfigurationSetSamKey (uint8_t configuration_key_index, uint8_t rid_use, uint8_t prox_check_use)
 *only uFR CS with SAM support Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
 
UFR_STATUS DL_API MFP_FieldConfigurationSetSamKeyM (UFR_HANDLE hndUFR, uint8_t configuration_key_index, uint8_t rid_use, uint8_t prox_check_use)
 Multi reader support. *only uFR CS with SAM support Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
 
UFR_STATUS DL_API MFP_GetUid (uint8_t key_index_vc_poll_enc_key, uint8_t key_index_vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len)
 Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
 
UFR_STATUS DL_API MFP_GetUid_PK (IN uint8_t *vc_poll_enc_key, IN uint8_t *vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len)
 Provided Key mode (PK) Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
 
UFR_STATUS DL_API MFP_GetUid_PKM (UFR_HANDLE hndUFR, IN uint8_t *vc_poll_enc_key, IN uint8_t *vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len)
 Multi reader support. Provided Key mode (PK) Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
 
UFR_STATUS DL_API MFP_GetUidM (UFR_HANDLE hndUFR, uint8_t key_index_vc_poll_enc_key, uint8_t key_index_vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len)
 Multi reader support. Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
 
UFR_STATUS DL_API MFP_GetUidSamKey (uint8_t key_index_vc_poll_enc_key, uint8_t key_index_vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len)
 *only uFR CS with SAM support Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
 
UFR_STATUS DL_API MFP_GetUidSamKeyM (UFR_HANDLE hndUFR, uint8_t key_index_vc_poll_enc_key, uint8_t key_index_vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len)
 Multi reader support. *only uFR CS with SAM support Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
 
UFR_STATUS DL_API MFP_PersonalizationMinimal (IN uint8_t *card_master_key, IN uint8_t *card_config_key, IN uint8_t *level_2_switch_key, IN uint8_t *level_3_switch_key, IN uint8_t *level_1_auth_key, IN uint8_t *select_vc_key, IN uint8_t *prox_chk_key, IN uint8_t *vc_poll_enc_key, IN uint8_t *vc_poll_mac_key)
 Security level 0 command. Function is used for card personalization. The minimum number of AES keys is entered into the card. There are card master key, card configuration key, key for switch to security level 2, key for switch to security level 3, security level 1 authentication key, virtual card select key, proximity check key, VC polling ENC and VC poling MAC key. Keys can not be changed at security level 1. Other keys that are not personalized will have value 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF)
 
UFR_STATUS DL_API MFP_PersonalizationMinimalM (UFR_HANDLE hndUFR, IN uint8_t *card_master_key, IN uint8_t *card_config_key, IN uint8_t *level_2_switch_key, IN uint8_t *level_3_switch_key, IN uint8_t *level_1_auth_key, IN uint8_t *select_vc_key, IN uint8_t *prox_chk_key, IN uint8_t *vc_poll_enc_key, IN uint8_t *vc_poll_mac_key)
 Multi reader support. Security level 0 command. Function is used for card personalization. The minimum number of AES keys is entered into the card. There are card master key, card configuration key, key for switch to security level 2, key for switch to security level 3, security level 1 authentication key, virtual card select key, proximity check key, VC polling ENC and VC poling MAC key. Keys can not be changed at security level 1. Other keys that are not personalized will have value 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF)
 
UFR_STATUS DL_API MFP_SwitchToSecurityLevel3 (uint8_t key_index)
 Security level 1 or 2 command. Function is used to switch to security level 3.
 
UFR_STATUS DL_API MFP_SwitchToSecurityLevel3_PK (IN uint8_t *aes_key)
 Provided Key mode (PK) Security level 1 or 2 command. Function is used to switch to security level 3.
 
UFR_STATUS DL_API MFP_SwitchToSecurityLevel3_PKM (UFR_HANDLE hndUFR, IN uint8_t *aes_key)
 Multi reader support. Provided Key mode (PK) Security level 1 or 2 command. Function is used to switch to security level 3.
 
UFR_STATUS DL_API MFP_SwitchToSecurityLevel3M (UFR_HANDLE hndUFR, uint8_t key_index)
 Multi reader support. Security level 1 or 2 command. Function is used to switch to security level 3.
 
UFR_STATUS DL_API MFP_WritePerso (uint16_t address, IN uint8_t *data)
 Security level 0 command. Function is used to change the data and AES keys from the initial delivery configuration to a customer specific value.
 
UFR_STATUS DL_API MFP_WritePersoM (UFR_HANDLE hndUFR, uint16_t address, IN uint8_t *data)
 Multi reader support. Security level 0 command. Function is used to change the data and AES keys from the initial delivery configuration to a customer specific value.
 
UFR_STATUS DL_API MRTD_MRZDataToMRZProtoKey (IN const char *doc_number, IN const char *date_of_birth, IN const char *date_of_expiry, OUT uint8_t mrz_proto_key[25])
 In order to get the MRZ Proto Key needed in subsequent steps, you can call this function and pass it null terminated strings containing document number, document holder date of birth and document expiration date.
 
UFR_STATUS DL_API MRTD_MRZSubjacentCheck (const char mrz[44])
 This function checks the subjacent row of a MRZ data integrity.
 
UFR_STATUS DL_API MRTD_MRZSubjacentToMRZProtoKey (IN const char mrz[44], OUT uint8_t mrz_proto_key[25])
 In order to get the MRZ Proto Key needed in subsequent steps, in the case of the TD3 MRZ format (88 totally character long), you can call this function and pass it a null terminated string containing the MRZ subjacent row.
 
UFR_STATUS DL_API MRTDAppSelectAndAuthenticateBac (IN const uint8_t mrz_proto_key[25], OUT uint8_t ksenc[16], OUT uint8_t ksmac[16], VAR uint64_t *send_sequence_cnt)
 Use this function to authenticate to the eMRTD NFC tag using BAC. This function establishes a security channel for communication. Security channel is maintained using send_sequence_cnt parameter and channel session keys are ksenc (for encryption) and ksmac (for calculating MAC).
 
UFR_STATUS DL_API MRTDAppSelectAndAuthenticateBacM (UFR_HANDLE hndUFR, IN const uint8_t mrz_proto_key[25], OUT uint8_t ksenc[16], OUT uint8_t ksmac[16], VAR uint64_t *send_sequence_cnt)
 Multi reader support. Use this function to authenticate to the eMRTD NFC tag using BAC. This function establishes a security channel for communication. Security channel is maintained using send_sequence_cnt parameter and channel session keys are ksenc (for encryption) and ksmac (for calculating MAC).
 
UFR_STATUS DL_API MRTDFileReadBacToHeap (IN const uint8_t file_index[2], VAR uint8_t **output, OUT uint32_t *output_length, IN const uint8_t ksenc[16], IN const uint8_t ksmac[16], VAR uint64_t *send_sequence_cnt)
 Use this function to read files from the eMRTD NFC tag.
 
UFR_STATUS DL_API MRTDFileReadBacToHeapM (UFR_HANDLE hndUFR, IN const uint8_t *file_index, VAR uint8_t **output, OUT uint32_t *output_length, IN const uint8_t ksenc[16], IN const uint8_t ksmac[16], VAR uint64_t *send_sequence_cnt)
 Multi reader support. Use this function to read files from the eMRTD NFC tag. You can call this function only after successfully established security channel by the previously called MRTDAppSelectAndAuthenticateBac() function. Session keys ksenc and ksmac, and also parameter send_sequence_cnt are acquired by the previously called MRTDAppSelectAndAuthenticateBac() function. After the successful call to this function, *output points to the file data read from an eMRTD file specified by the file_index parameter. Buffer, in which the data is stored, is automatically allocated on the memory heap during function execution. Maximum amount of data allocated can be 32KB. User is obligated to cleanup allocated data space, occupied by the *output, after use (e.g. by calling DLFree() or directly free() from the C/C++ code).
 
uint32_t DL_API MRTDGetDgIndex (uint8_t dg_tag)
 Use this function to get an index of the data groups from EF.DG1 to DG16 i.e. 1 to 16. For EF.COM, EF.SOD and invalid tag function returns 0.
 
c_string DL_API MRTDGetDgName (uint8_t dg_tag)
 Use this function to get a name of the data group. Function returns pointer to the zero terminated string ("EF.COM", “EF.DG1”, “EF.DG2”, … , “EF.SOD”). For invalid tag function returns zero terminated string “NOT DEFINED”.
 
UFR_STATUS DL_API MRTDGetDGTagListFromCOM (IN const uint8_t *com, uint32_t com_len, VAR uint8_t **dg_list, VAR uint8_t *dg_list_cnt)
 
UFR_STATUS DL_API MRTDGetImageFromDG2 (IN const uint8_t *dg2, uint32_t dg2_size, VAR uint8_t **image, VAR uint32_t *image_size, VAR uint32_t *img_type)
 Use this function to extract the facial image from the EF.DG2 content.
 
UFR_STATUS DL_API MRTDGetImageFromDG2ToFile (IN const uint8_t *dg2, uint32_t dg2_size, IN const char *file_name_without_extension)
 Use this function to extract facial image from the EF.DG2 content and save it to file on the file system.
 
UFR_STATUS DL_API MRTDParseDG1ToHeap (VAR char **sbuffer, IN const char *newln, IN const uint8_t *dg1, uint8_t dg1_len)
 Use this function to get verbose “printout” string containing MRZ (Machine Readable Zone) parsed data from the content of the EF.DG1 MRTD file.
 
UFR_STATUS DL_API MRTDValidate (IN const char *cert_storage_folder, VAR char **out_str, IN const char *endln, uint32_t verbose_level, OUT uint8_t ksenc[16], OUT uint8_t ksmac[16], VAR uint64_t *send_sequence_cnt)
 This function validates data groups read from the eMRTDocument.
 
UFR_STATUS DL_API MRTDValidateM (UFR_HANDLE hndUFR, IN const char *cert_storage_folder, VAR char **out_str, IN const char *endln, uint32_t verbose_level, OUT uint8_t ksenc[16], OUT uint8_t ksmac[16], VAR uint64_t *send_sequence_cnt)
 Multi reader support. This function validates data groups read from the eMRTDocument. All the elements needed for a validation are recorded into the eMRTD and additional CSCA certificate (Country Signing Certificate Authority). During function execution, hash values of the data groups are validated. Data groups hash values have to be the same as those values embedded in the SOD file which is signed by the private key corresponding to the DS certificate. The DS certificate has to be included in the SOD file too. SOD content is a special case of the PKCS#7 ASN.1 DER encoded structure. Finally, DS certificate signature is validated by the external CSCA certificate which is proof of the valid certificates chain of thrust. The countries provided their CSCA certificates on the specialized Internet sites. CSCA certificates can be in PEM (base64 encoded) or binary files (there having extensions such as PEM, DER, CER, CRT…). Some countries have Master List files that include certificates from other countries with which they have bilateral agreements. Those Master List files have an “.ml” file extension. Additionally, the ICAO Public Key Directory (PKD) is a central repository for exchanging the information required to authenticate ePassports. For more details you can visit the ICAO PKD web site.
 
UFR_STATUS DL_API ndef_card_initialization (void)
 Function prepares the card for NDEF using. Function writes Capability Container (CC) if necessary, and writes empty message.
 
UFR_STATUS DL_API ndef_card_initializationM (UFR_HANDLE hndUFR)
 Multi reader support. Function prepares the card for NDEF using. Function writes Capability Container (CC) if necessary, and writes empty message. If the card is MIFARE CLASSIC or MIFARE PLUS, then the function writes MAD (MIFARE Application Directory), and default keys and access bits for NDEF using.
 
void DL_API NfcT2TSafeConvertVersion (t2t_version_t *version, const uint8_t *version_record)
 This is a helper function for converting raw array of 8 bytes received by calling GetNfcT2TVersion().
 
UFR_STATUS DL_API nt4h_change_key (uint8_t auth_key_no, uint8_t key_no, IN uint8_t *new_key, IN uint8_t *old_key)
 Function changes AES key.
 
UFR_STATUS DL_API nt4h_change_key_pk (IN uint8_t *auth_key, uint8_t key_no, IN uint8_t *new_key, IN uint8_t *old_key)
 Provided Key mode (PK) Function changes AES key.
 
UFR_STATUS DL_API nt4h_change_key_pkM (UFR_HANDLE hndUFR, IN uint8_t *auth_key, uint8_t key_no, IN uint8_t *new_key, IN uint8_t *old_key)
 Multi reader support. Provided Key mode (PK) Function changes AES key. Authentication with the application master key is required.
 
UFR_STATUS DL_API nt4h_change_keyM (UFR_HANDLE hndUFR, uint8_t auth_key_no, uint8_t key_no, IN uint8_t *new_key, IN uint8_t *old_key)
 Multi reader support. Function changes AES key. Authentication with the application master key is required.
 
UFR_STATUS DL_API nt4h_change_sdm_file_settings (uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit)
 Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file.
 
UFR_STATUS DL_API nt4h_change_sdm_file_settings_pk (IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit)
 Provided Key mode (PK) Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file.
 
UFR_STATUS DL_API nt4h_change_sdm_file_settings_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit)
 Multi reader support. Provided Key mode (PK) Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file. Due to the large number of parameters, the function is separated from the function for creating a standard data file.
 
UFR_STATUS DL_API nt4h_change_sdm_file_settingsM (UFR_HANDLE hndUFR, uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit)
 Multi reader support. Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file. Due to the large number of parameters, the function is separated from the function for creating a standard data file.
 
UFR_STATUS DL_API nt4h_change_standard_file_settings (uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 The function changes the access parameters of an existing standard data file.
 
UFR_STATUS DL_API nt4h_change_standard_file_settings_pk (IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 Provided Key mode (PK) The function changes the access parameters of an existing standard data file.
 
UFR_STATUS DL_API nt4h_change_standard_file_settings_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 Multi reader support. Provided Key mode (PK) The function changes the access parameters of an existing standard data file. The communication mode can be either plain or enciphered based on current access rights of the file, so current communication mode must be entered. Access rights are similar for Desfire cards.
 
UFR_STATUS DL_API nt4h_change_standard_file_settingsM (UFR_HANDLE hndUFR, uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no)
 Multi reader support. The function changes the access parameters of an existing standard data file. The communication mode can be either plain or enciphered based on current access rights of the file, so current communication mode must be entered. Access rights are similar for Desfire cards.
 
UFR_STATUS DL_API nt4h_check_sdm_mac (uint32_t smd_read_counter, IN uint8_t *uid, IN uint8_t *auth_key, IN uint8_t *mac_in_data, IN uint8_t mac_in_len, IN uint8_t *sdm_mac)
 Helper function for the MAC of SDM checking.
 
UFR_STATUS DL_API nt4h_decrypt_picc_data (IN uint8_t *picc_data, IN uint8_t *auth_key, IN uint8_t *picc_data_tag, IN uint8_t *uid, IN uint32_t *smd_read_cnt)
 Helper function for decryption of encrypted PICC data.
 
UFR_STATUS DL_API nt4h_decrypt_sdm_enc_file_data (uint32_t smd_read_counter, IN uint8_t *uid, IN uint8_t *auth_key, IN uint8_t *enc_file_data, IN uint8_t enc_file_data_len)
 Helper function for decryption of encrypted file data.
 
UFR_STATUS DL_API nt4h_enable_tt (uint8_t aes_key_no, uint8_t tt_status_key_no)
 NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function enabling tag tamper feature. Authentication with application master key (key number 0) required. Warning. Enabling the Tag Tamper feature is permanent, it cannot be disabled once enabled.
 
UFR_STATUS DL_API nt4h_enable_tt_pk (IN uint8_t *aes_key_ext, uint8_t tt_status_key_no)
 Provided Key mode (PK) NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function enabling tag tamper feature. Authentication with application master key (key number 0) required. Warning. Enabling the Tag Tamper feature is permanent, it cannot be disabled once enabled.
 
UFR_STATUS DL_API nt4h_enable_tt_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint8_t tt_status_key_no)
 Multi reader support. Provided Key mode (PK) NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function enabling tag tamper feature. Authentication with application master key (key number 0) required. Warning. Enabling the Tag Tamper feature is permanent, it cannot be disabled once enabled.
 
UFR_STATUS DL_API nt4h_enable_ttM (UFR_HANDLE hndUFR, uint8_t aes_key_no, uint8_t tt_status_key_no)
 Multi reader support. NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function enabling tag tamper feature. Authentication with application master key (key number 0) required. Warning. Enabling the Tag Tamper feature is permanent, it cannot be disabled once enabled.
 
UFR_STATUS DL_API nt4h_get_file_settings (uint8_t file_no, VAR uint8_t *file_type, VAR uint8_t *communication_mode, VAR uint8_t *sdm_enable, VAR uint32_t *file_size, VAR uint8_t *read_key_no, VAR uint8_t *write_key_no, VAR uint8_t *read_write_key_no, VAR uint8_t *change_key_no, VAR uint8_t *uid_enable, VAR uint8_t *read_ctr_enable, VAR uint8_t *read_ctr_limit_enable, VAR uint8_t *enc_file_data_enable, VAR uint8_t *meta_data_key_no, VAR uint8_t *file_data_read_key_no, VAR uint8_t *read_ctr_key_no, VAR uint32_t *uid_offset, VAR uint32_t *read_ctr_offset, VAR uint32_t *picc_data_offset, VAR uint32_t *mac_input_offset, VAR uint32_t *enc_offset, VAR uint32_t *enc_length, VAR uint32_t *mac_offset, VAR uint32_t *read_ctr_limit)
 Function returns file settings.
 
UFR_STATUS DL_API nt4h_get_file_settingsM (UFR_HANDLE hndUFR, uint8_t file_no, VAR uint8_t *file_type, VAR uint8_t *communication_mode, VAR uint8_t *sdm_enable, VAR uint32_t *file_size, VAR uint8_t *read_key_no, VAR uint8_t *write_key_no, VAR uint8_t *read_write_key_no, VAR uint8_t *change_key_no, VAR uint8_t *uid_enable, VAR uint8_t *read_ctr_enable, VAR uint8_t *read_ctr_limit_enable, VAR uint8_t *enc_file_data_enable, VAR uint8_t *meta_data_key_no, VAR uint8_t *file_data_read_key_no, VAR uint8_t *read_ctr_key_no, VAR uint32_t *uid_offset, VAR uint32_t *read_ctr_offset, VAR uint32_t *picc_data_offset, VAR uint32_t *mac_input_offset, VAR uint32_t *enc_offset, VAR uint32_t *enc_length, VAR uint32_t *mac_offset, VAR uint32_t *read_ctr_limit)
 Multi reader support. Function returns file settings.
 
UFR_STATUS DL_API nt4h_get_sdm_ctr (uint8_t auth_key_no, uint8_t file_no, uint8_t key_no, VAR uint32_t *sdm_read_ctr)
 Function supports retrieving of the current values of SDM reading counter.
 
UFR_STATUS DL_API nt4h_get_sdm_ctr_no_auth (uint8_t file_no, VAR uint32_t *sdm_read_ctr)
 No authentication. Function supports retrieving of the current values of SDM reading counter.
 
UFR_STATUS DL_API nt4h_get_sdm_ctr_no_authM (UFR_HANDLE hndUFR, uint8_t file_no, VAR uint32_t *sdm_read_ctr)
 Multi reader support. No authentication Function supports retrieving of the current values of SDM reading counter.
 
UFR_STATUS DL_API nt4h_get_sdm_ctr_pk (IN uint8_t *auth_key, uint8_t file_no, uint8_t key_no, VAR uint32_t *sdm_read_ctr)
 Provided Key mode (PK) Function supports retrieving of the current values of SDM reading counter.
 
UFR_STATUS DL_API nt4h_get_sdm_ctr_pkM (UFR_HANDLE hndUFR, IN uint8_t *auth_key, uint8_t file_no, uint8_t key_no, VAR uint32_t *sdm_read_ctr)
 Multi reader support. Provided Key mode (PK) Function supports retrieving of the current values of SDM reading counter.
 
UFR_STATUS DL_API nt4h_get_sdm_ctrM (UFR_HANDLE hndUFR, uint8_t auth_key_no, uint8_t file_no, uint8_t key_no, VAR uint32_t *sdm_read_ctr)
 Multi reader support. Function supports retrieving of the current values of SDM reading counter.
 
UFR_STATUS DL_API nt4h_get_tt_status (uint8_t aes_key_no, uint8_t key_no, VAR uint8_t *tt_perm_status, VAR uint8_t *tt_curr_status)
 NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function supports retrieving of the permanent and current Tag Tamper Status.
 
UFR_STATUS DL_API nt4h_get_tt_status_no_auth (VAR uint8_t *tt_perm_status, VAR uint8_t *tt_curr_status)
 No authentication NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function supports retrieving of the permanent and current Tag Tamper Status.
 
UFR_STATUS DL_API nt4h_get_tt_status_no_authM (UFR_HANDLE hndUFR, VAR uint8_t *tt_perm_status, VAR uint8_t *tt_curr_status)
 Multi reader support. No authentication NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function supports retrieving of the permanent and current Tag Tamper Status.
 
UFR_STATUS DL_API nt4h_get_tt_status_pk (IN uint8_t *aes_key_ext, uint8_t key_no, VAR uint8_t *tt_perm_status, VAR uint8_t *tt_curr_status)
 Provided Key mode (PK) NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function supports retrieving of the permanent and current Tag Tamper Status.
 
UFR_STATUS DL_API nt4h_get_tt_status_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint8_t key_no, VAR uint8_t *tt_perm_status, VAR uint8_t *tt_curr_status)
 Multi reader support. Provided Key mode (PK) NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function supports retrieving of the permanent and current Tag Tamper Status.
 
UFR_STATUS DL_API nt4h_get_tt_statusM (UFR_HANDLE hndUFR, uint8_t aes_key_nr, uint8_t key_no, VAR uint8_t *tt_perm_status, VAR uint8_t *tt_curr_status)
 Multi reader support. NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function supports retrieving of the permanent and current Tag Tamper Status.
 
UFR_STATUS DL_API nt4h_get_uid (uint8_t auth_key_no, uint8_t key_no, OUT uint8_t *uid)
 Function returns card UID if Random ID activated. Valid authentication is required.
 
UFR_STATUS DL_API nt4h_get_uid_pk (IN uint8_t *auth_key, uint8_t key_no, OUT uint8_t *uid)
 Provided Key mode (PK) Function returns card UID if Random ID activated.
 
UFR_STATUS DL_API nt4h_get_uid_pkM (UFR_HANDLE hndUFR, IN uint8_t *auth_key, uint8_t key_no, OUT uint8_t *uid)
 Multi reader support. Provided Key mode (PK) Function returns card UID if Random ID activated. Valid authentication is required.
 
UFR_STATUS DL_API nt4h_get_uidM (UFR_HANDLE hndUFR, uint8_t auth_key_no, uint8_t key_no, OUT uint8_t *uid)
 Multi reader support. Function returns card UID if Random ID activated. Valid authentication is required.
 
UFR_STATUS DL_API nt4h_rid_read_ecc_signature (uint8_t auth_key_nr, uint8_t key_no, OUT uint8_t *uid, OUT uint8_t *ecc_signature, OUT uint8_t *dlogic_card_type)
 From library version 5.0.43 and firmware version 5.0.43. Function retrieves the asymmetric originality signature based on an asymmetric cryptographic algorithm Elliptic Curve Cryptography Digital Signature Algorithm (ECDSA) when the Random ID is activated. Authentication with valid key required.
 
UFR_STATUS DL_API nt4h_rid_read_ecc_signature_pk (IN uint8_t *auth_key, uint8_t key_no, OUT uint8_t *uid, OUT uint8_t *ecc_signature, VAR uint8_t *dlogic_card_type)
 Provided Key mode (PK) From library version 5.0.43 and firmware version 5.0.43. Function retrieves the asymmetric originality signature based on an asymmetric cryptographic algorithm Elliptic Curve Cryptography Digital Signature Algorithm (ECDSA) when the Random ID is activated. Authentication with valid key required.
 
UFR_STATUS DL_API nt4h_rid_read_ecc_signature_pkM (UFR_HANDLE hndUFR, IN uint8_t *auth_key, uint8_t key_no, OUT uint8_t *uid, OUT uint8_t *ecc_signature, VAR uint8_t *dlogic_card_type)
 Multi reader support. Provided Key mode (PK) From library version 5.0.43 and firmware version 5.0.43. Function retrieves the asymmetric originality signature based on an asymmetric cryptographic algorithm Elliptic Curve Cryptography Digital Signature Algorithm (ECDSA) when the Random ID is activated. Authentication with valid key required.
 
UFR_STATUS DL_API nt4h_rid_read_ecc_signatureM (UFR_HANDLE hndUFR, uint8_t auth_key_nr, uint8_t key_no, OUT uint8_t *uid, OUT uint8_t *ecc_signature, OUT uint8_t *dlogic_card_type)
 Multi reader support. From library version 5.0.43 and firmware version 5.0.43. Function retrieves the asymmetric originality signature based on an asymmetric cryptographic algorithm Elliptic Curve Cryptography Digital Signature Algorithm (ECDSA) when the Random ID is activated. Authentication with valid key required.
 
UFR_STATUS DL_API nt4h_set_global_parameters (uint8_t file_no, uint8_t key_no, uint8_t communication_mode)
 Function sets file number, key number, and communication mode, before the using functions for reading and writing data into cards which are used for NTAG 2xx cards.
 
UFR_STATUS DL_API nt4h_set_global_parametersM (UFR_HANDLE hndUFR, uint8_t file_no, uint8_t key_no, uint8_t communication_mode)
 Multi reader support. Function sets file number, key number, and communication mode, before the using functions for reading and writing data into cards which are used for NTAG 2xx cards. This makes it possible to use existing functions for the block and linear reading and writing.
 
UFR_STATUS DL_API nt4h_set_rid (uint8_t aes_key_no)
 Function enables card Random ID. Authentication with application master key (key number 0) required.
 
UFR_STATUS DL_API nt4h_set_rid_pk (IN uint8_t *aes_key_ext)
 Provided Key mode (PK) Function enables card Random ID.
 
UFR_STATUS DL_API nt4h_set_rid_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext)
 Multi reader support. Provided Key mode (PK) Function enables card Random ID. Authentication with application master key (key number 0) required. Warning. This operation is ireversibile.
 
UFR_STATUS DL_API nt4h_set_ridM (UFR_HANDLE hndUFR, uint8_t aes_key_no)
 Multi reader support. Function enables card Random ID. Authentication with application master key (key number 0) required. Warning. This operation is ireversibile.
 
UFR_STATUS DL_API nt4h_tt_change_sdm_file_settings (uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, uint8_t tt_status_enable, uint32_t tt_status_offset)
 Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file.
 
UFR_STATUS DL_API nt4h_tt_change_sdm_file_settings_pk (IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, uint8_t tt_status_enable, uint32_t tt_status_offset)
 Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file.
 
UFR_STATUS DL_API nt4h_tt_change_sdm_file_settings_pkM (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, uint8_t tt_status_enable, uint32_t tt_status_offset)
 Multi reader support. Provided Key mode (PK) NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file. Due to the large number of parameters, the function is separated from the function for creating a standard data file.
 
UFR_STATUS DL_API nt4h_tt_change_sdm_file_settingsM (UFR_HANDLE hndUFR, uint8_t aes_key_no, uint8_t file_no, uint8_t key_no, uint8_t curr_communication_mode, uint8_t new_communication_mode, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, uint8_t tt_status_enable, uint32_t tt_status_offset)
 Multi reader support. NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43. Function allows change parameters for secure dynamic messaging file, or change file type from standard data file to secure dynamic messaging file. Due to the large number of parameters, the function is separated from the function for creating a standard data file.
 
UFR_STATUS DL_API nt4h_tt_get_file_settings (uint8_t file_no, VAR uint8_t *file_type, VAR uint8_t *communication_mode, VAR uint8_t *sdm_enable, VAR uint32_t *file_size, VAR uint8_t *read_key_no, VAR uint8_t *write_key_no, VAR uint8_t *read_write_key_no, VAR uint8_t *change_key_no, VAR uint8_t *uid_enable, VAR uint8_t *read_ctr_enable, VAR uint8_t *read_ctr_limit_enable, VAR uint8_t *enc_file_data_enable, VAR uint8_t *meta_data_key_no, VAR uint8_t *file_data_read_key_no, VAR uint8_t *read_ctr_key_no, VAR uint32_t *uid_offset, VAR uint32_t *read_ctr_offset, VAR uint32_t *picc_data_offset, VAR uint32_t *mac_input_offset, VAR uint32_t *enc_offset, VAR uint32_t *enc_length, VAR uint32_t *mac_offset, VAR uint32_t *read_ctr_limit, VAR uint8_t *tt_status_enable, VAR uint32_t *tt_status_offset)
 Function returns file settings.
 
UFR_STATUS DL_API nt4h_tt_get_file_settingsM (UFR_HANDLE hndUFR, uint8_t file_no, VAR uint8_t *file_type, VAR uint8_t *communication_mode, VAR uint8_t *sdm_enable, VAR uint32_t *file_size, VAR uint8_t *read_key_no, VAR uint8_t *write_key_no, VAR uint8_t *read_write_key_no, VAR uint8_t *change_key_no, VAR uint8_t *uid_enable, VAR uint8_t *read_ctr_enable, VAR uint8_t *read_ctr_limit_enable, VAR uint8_t *enc_file_data_enable, VAR uint8_t *meta_data_key_no, VAR uint8_t *file_data_read_key_no, VAR uint8_t *read_ctr_key_no, VAR uint32_t *uid_offset, VAR uint32_t *read_ctr_offset, VAR uint32_t *picc_data_offset, VAR uint32_t *mac_input_offset, VAR uint32_t *enc_offset, VAR uint32_t *enc_length, VAR uint32_t *mac_offset, VAR uint32_t *read_ctr_limit, VAR uint8_t *tt_status_enable, VAR uint32_t *tt_status_offset)
 Multi reader support. NTAG 424 TT only. From library version 5.0.43 and firmware version 5.0.43.
 
UFR_STATUS DL_API nt4h_unset_rid_pk (IN uint8_t *aes_key_ext)
 
UFR_STATUS DL_API Open_ISO7816_Generic (OUT uint8_t *atr_data, VAR uint8_t *atr_len)
 Function activates the smart card and returns an ATR (Answer To Reset) array of bytes from the smart card.
 
UFR_STATUS DL_API Open_ISO7816_GenericM (UFR_HANDLE hndUFR, OUT uint8_t *atr_data, VAR uint8_t *atr_len)
 Multi reader support. Function activates the smart card and returns an ATR (Answer To Reset) array of bytes from the smart card.
 
UFR_STATUS DL_API open_ISO7816_interface (OUT uint8_t *atr_data, VAR uint8_t *atr_len)
 Function activates the smart card and returns an ATR (Answer To Reset) array of bytes from the smart card.
 
UFR_STATUS DL_API open_ISO7816_interfaceM (UFR_HANDLE hndUFR, OUT uint8_t *atr_data, VAR uint8_t *atr_len)
 Multi reader support. Function activates the smart card and returns an ATR (Answer To Reset) array of bytes from the smart card. After the successfully executed function, the same APDU commands as for ISO14443-4 tags can be used, but not at the same time. Note. This function is used for NXP SAM AV2 activation, and unlocking if SAM is locked.
 
UFR_STATUS DL_API openBLESession (const char *reader_sn, int timeout, CardDetectedCallback card_detected_callback, CardRemovedCallback card_removed_callback, SessionErrorCallback error_callback)
 For Android only: This function is used to enable asynchronous event-driven API callbacks via BLE.
uFR Online reader only. Must be set in 'BLE' mode
The function takes pointers to user-defined functions as 'card_detected_callback', 'card_removed_callback' and 'error_callback'

 
UFR_STATUS DL_API openBLESession (void *_Nonnull context, const char *reader_sn, int timeout, CardDetectedCallback card_detected_callback, CardRemovedCallback card_removed_callback, SessionErrorCallback error_callback)
 For iOS only: This function is used to enable asynchronous event-driven API callbacks via BLE.
uFR Online reader only. Must be set in 'BLE' mode
The function takes pointers to user-defined functions as 'card_detected_callback', 'card_removed_callback' and 'error_callback'

 
UFR_STATUS DL_API openNFCSession (int timeout, CardDetectedCallback card_detected_callback, CardRemovedCallback card_removed_callback, SessionErrorCallback error_callback, const char *license_json)
 For Android only: This function is used to enable asynchronous event-driven API callbacks for internal NFC.
The function takes pointers to user-defined functions as 'card_detected_callback' and 'card_removed_callback'

 
UFR_STATUS DL_API openNFCSession (void *_Nonnull context, int timeout, CardDetectedCallback card_detected_callback, CardRemovedCallback card_removed_callback, SessionErrorCallback error_callback, const char *license_json)
 For iOS only: This function is used to enable asynchronous event-driven API callbacks for internal NFC.
The function takes pointers to user-defined functions as 'card_detected_callback', 'card_removed_callback' and 'error_callback'

 
UFR_STATUS DL_API OriginalityCheck (IN const uint8_t *signature, IN const uint8_t *uid, uint8_t uid_len, uint8_t DlogicCardType)
 This function depends on OpenSSL crypto library. Since OpenSSL crypto library is dynamically linked during execution, the only prerequisite for a successful call to this function is that the libeay32.dll is in the current folder (valid for Windows) and / or libcrypto.so is in the environment path (e.g. LD_LIBRARY_PATH on Linux / macOS). OriginalityCheck() performs the check if the chip on the card / tag is NXP genuine.
 
c_string DL_API ParseNdefMessage (IN uint8_t *type_record, uint8_t type_len, IN uint8_t *payload, uint32_t payload_len)
 Used to parse NDEF record into separate parameters.
 
UFR_STATUS DL_API r_block_transceive (uint8_t ack, uint8_t timeout, VAR uint8_t *rcv_length, OUT uint8_t *rcv_data_array, VAR uint8_t *rcv_chained, VAR uint32_t *ufr_status)
 R-block used to convey positive or negative acknowledgements. An R-block never contains an INF field. The acknowledgement relates to the last received block.
 
UFR_STATUS DL_API r_block_transceiveM (UFR_HANDLE hndUFR, uint8_t ack, uint8_t timeout, VAR uint8_t *rcv_length, OUT uint8_t *rcv_data_array, VAR uint8_t *rcv_chained, VAR uint32_t *ufr_status)
 Multi reader support. R-block used to convey positive or negative acknowledgements. An R-block never contains an INF field. The acknowledgement relates to the last received block.
 
UFR_STATUS DL_API read_ndef_record (uint8_t message_nr, uint8_t record_nr, VAR uint8_t *tnf, OUT uint8_t *type_record, VAR uint8_t *type_length, OUT uint8_t *id, VAR uint8_t *id_length, OUT uint8_t *payload, VAR uint32_t *payload_length)
 Function returns TNF, type of record, ID and payload from the NDEF record.
 
UFR_STATUS DL_API read_ndef_recordM (UFR_HANDLE hndUFR, uint8_t message_nr, uint8_t record_nr, VAR uint8_t *tnf, OUT uint8_t *type_record, VAR uint8_t *type_length, OUT uint8_t *id, VAR uint8_t *id_length, OUT uint8_t *payload, VAR uint32_t *payload_length)
 Multi reader support. Function returns TNF, type of record, ID and payload from the NDEF record. NDEF record shall be elected by the message ordinal and record ordinal in this message.
 
UFR_STATUS DL_API ReadCounter (uint8_t counter_address, VAR uint32_t *value)
 This function is used to read one of the three 24-bit one-way counters in Ultralight EV1 chip family.
 
UFR_STATUS DL_API ReadCounterM (UFR_HANDLE hndUFR, uint8_t counter_address, VAR uint32_t *value)
 Multi reader support. This function is used to read one of the three 24-bit one-way counters in Ultralight EV1 chip family. Those counters can’t be password protected. In the initial Ultralight EV1 chip state, the counter values are set to 0.
 
UFR_STATUS DL_API ReadECCSignature (OUT uint8_t lpucECCSignature[ECC_SIG_LEN], OUT uint8_t lpucUid[MAX_UID_LEN], VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType)
 This function returns the ECC signature of the card chip UID. Card chip UID is signed using EC private key known only to a manufacturer.
 
UFR_STATUS DL_API ReadECCSignatureExt (OUT uint8_t *lpucECCSignature, VAR uint8_t *lpucECCSignatureLen, OUT uint8_t *lpucUid, VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType)
 This function returns the ECC signature of the card chip UID. Card chip UID is signed using EC private key known only to a manufacturer.
 
UFR_STATUS DL_API ReadECCSignatureExtM (UFR_HANDLE hndUFR, OUT uint8_t *lpucECCSignature, VAR uint8_t *lpucECCSignatureLen, OUT uint8_t *lpucUid, VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType)
 Multi reader support. From library version 5.0.43 and firmware version 5.0.43. This function returns the ECC signature of the card chip UID. Card chip UID is signed using EC private key known only to a manufacturer. Unlike the ReadECCSignature function, this function supports ECC with variable length.
 
UFR_STATUS DL_API ReadECCSignatureM (UFR_HANDLE hndUFR, IN uint8_t lpucECCSignature[ECC_SIG_LEN], OUT uint8_t lpucUid[MAX_UID_LEN], VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType)
 Multi reader support. This function returns the ECC signature of the card chip UID. Card chip UID is signed using EC private key known only to a manufacturer.
 
UFR_STATUS DL_API ReaderClose (void)
 Close reader communication port.
 
UFR_STATUS DL_API ReaderCloseM (UFR_HANDLE hndUFR)
 Multi reader support. Close reader communication port.
 
UFR_STATUS DL_API ReaderEepromRead (OUT uint8_t *data, uint32_t address, uint32_t size)
 Function returns array of data read from EEPROM. Maximal length of array is 128 bytes.
 
UFR_STATUS DL_API ReaderEepromReadM (UFR_HANDLE hndUFR, OUT uint8_t *data, uint32_t address, uint32_t size)
 Multi reader support. Function returns array of data read from EEPROM. Maximal length of array is 128 bytes.
 
UFR_STATUS DL_API ReaderEepromWrite (IN uint8_t *data, uint32_t address, uint32_t size, IN uint8_t *password)
 Function writes array of data into EEPROM. Maximal length of array is 128 bytes.
 
UFR_STATUS DL_API ReaderEepromWriteM (UFR_HANDLE hndUFR, IN uint8_t *data, uint32_t address, uint32_t size, IN uint8_t *password)
 Multi reader support. Function writes array of data into EEPROM. Maximal length of array is 128 bytes. Function requires password which length is 8 bytes. Factory password is “11111111” (0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31).
 
UFR_STATUS DL_API ReaderKeysLock (IN const uint8_t *password)
 Lock reader’s keys to prevent further changing.
 
UFR_STATUS DL_API ReaderKeysLockM (UFR_HANDLE hndUFR, IN const uint8_t *password)
 Multi reader support. Lock reader’s keys to prevent further changing.
 
UFR_STATUS DL_API ReaderKeysUnlock (IN const uint8_t *password)
 Unlock reader’s keys if they are locked with previous function. The factory setting is that reader keys are unlocked.
 
UFR_STATUS DL_API ReaderKeysUnlockM (UFR_HANDLE hndUFR, IN const uint8_t *password)
 Multi reader support. Unlock reader’s keys if they are locked with previous function. The factory setting is that reader keys are unlocked.
 
UFR_STATUS DL_API ReaderKeyWrite (IN const uint8_t *aucKey, uint8_t ucKeyIndex)
 Store a new key or change existing key under provided index parameter.
 
UFR_STATUS DL_API ReaderKeyWriteM (UFR_HANDLE hndUFR, IN const uint8_t *aucKey, uint8_t ucKeyIndex)
 Multi reader support. Store a new key or change existing key under provided index parameter.The keys are in a special area in EEPROM that can not be read anymore which gains protection.
 
UFR_STATUS DL_API ReaderList_Add (UFR_HANDLE *DeviceHandle, uint32_t reader_type, c_string port_name, uint32_t port_interface, void *arg)
 This method is used for manual addition of uFR devices to the list. Parameters used are the same as in ReaderOpenEx() method. Use this method if the device was not previously discovered by the ReaderList_UpdateAndGetCount() method.
 
UFR_STATUS DL_API ReaderList_Destroy (UFR_HANDLE *DeviceHandle)
 Force handle deletion when you identify that the reader is no longer connected, and want to release the handle immediately. If the handle exists in the list of opened devices, function would try to close communication port and destroy the handle. When uFR reader is disconnected, ReaderList_UpdateAndGetCount() will do that (destroy) automatically in next execution.
 
UFR_STATUS DL_API ReaderList_GetFTDIDescriptionByIndex (int32_t DeviceIndex, OUT char **Device_Description)
 Gets devices FTDI description based on the index of the device in the list.
 
UFR_STATUS DL_API ReaderList_GetFTDISerialByIndex (int32_t DeviceIndex, OUT char **Device_Serial)
 Gets devices FTDI serial port number based on the index of the device in the list.
 
UFR_STATUS DL_API ReaderList_GetInformation (uint32_t DeviceIndex, VAR UFR_HANDLE *DeviceHandle, OUT c_string *DeviceSerialNumber, VAR int *DeviceType, OUT c_string *DeviceFWver, VAR int *DeviceCommID, VAR int *DeviceCommSpeed, OUT c_string *DeviceCommFTDISerial, OUT c_string *DeviceCommFTDIDescription, VAR int *DeviceIsOpened, VAR int *DeviceStatus)
 Used to retrieve information about a reader found & connected via ReaderList_UpdateAndGetCount(). This should be executed for each device based on number of devices found, providing valid index.
 
UFR_STATUS DL_API ReaderList_GetSerialByIndex (int32_t DeviceIndex, VAR uint32_t *lpulSerialNumber)
 Gets reader’s reader serial number as a pointer to 4 byte value, based on the index of the device in the list.
 
UFR_STATUS DL_API ReaderList_GetSerialDescriptionByIndex (int32_t DeviceIndex, OUT uint8_t pSerialDescription[8])
 Gets reader’s descriptive name as a array of 8 chars, based on the index of the device in the list.
 
UFR_STATUS DL_API ReaderList_GetTypeByIndex (int32_t DeviceIndex, VAR uint32_t *lpulReaderType)
 Gets devices reader type based on the index of the device in the list.
 
UFR_STATUS DL_API ReaderList_OpenByIndex (const int32_t DeviceIndex, VAR UFR_HANDLE *hndUFR)
 Tries to re-open the device based on the device index. This method should be called when you use ReaderCloseM() to close the communication with the reader opened by ReaderList_UpdateAndGetCount().
 
UFR_STATUS DL_API ReaderList_OpenBySerial (VAR UFR_HANDLE *hndUFR, const char Device_SN[16])
 Tries to re-open the device based on the serial number of the device. This method should be called when you use ReaderCloseM() to close the communication with the reader opened by ReaderList_UpdateAndGetCount().
 
UFR_STATUS DL_API ReaderList_UpdateAndGetCount (VAR int32_t *NumberOfDevices)
 This is the first function in the order for execution for the multi-reader support. The function prepares the list of connected uF-readers to the system and returns the number of list items - number of connected uFR devices. ReaderList_UpdateAndGetCount() scans all communication ports for compatible devices, probes open readers if still connected, if not close and marks their handles for deletion. If some device is disconnected from the system this function should remove its handle. As of uFCoder version 5.0.73, this function probes both FTDI & COM devices and tries to open them. Each call to this method will close previously opened devices by this function, scan, and open everything found.
 
UFR_STATUS DL_API ReaderOpen (void)
 Opens reader communication port for all µFR devices. You can also use this function to open communication with µFR Online devices.
 
UFR_STATUS DL_API ReaderOpen_uFROnline (c_string serial_number)
 Opens uFR Online device by serial number.
 
UFR_STATUS DL_API ReaderOpenByType (uint32_t reader_type)
 Opens a port of connected reader using readers family type. Useful for speed up opening for non uFR basic reader type (e.g. BaseHD with uFR support).
 
UFR_STATUS DL_API ReaderOpenEx (uint32_t reader_type, IN c_string port_name, uint32_t port_interface, IN void *arg)
 Open reader communication port in several different ways. Can be used for establishing communication with COM port too.
 
UFR_STATUS DL_API ReaderOpenM (VAR UFR_HANDLE *hndUFR)
 Multi reader support. Open reader communication port for all µFR devices. You can also use this function to open communication with µFR Online devices. Using ReaderOpen to open communication with µFR Online devices: If you have only one reader attached to your PC, it will open that reader serial port on 1Mbit/s, or if you have only one reader attached to another power supply (not your PC) it will open that reader based on it’s working mode (TCP or UDP). If you have more than one µFR Online device, ReaderOpen function will open the first one found, for opening another device, use ReaderOpenEx instead.
 
UFR_STATUS DL_API ReaderReset (void)
 Physical reset of reader communication port.
 
UFR_STATUS DL_API ReaderResetM (UFR_HANDLE hndUFR)
 Multi reader support. Physical reset of reader communication port.
 
UFR_STATUS DL_API ReaderResetWait (void)
 Physical reset of reader communication port & tests the communication before returning a UFR_STATUS code.
 
UFR_STATUS DL_API ReaderRfOff (void)
 Function switch off RF field at the reader.
 
UFR_STATUS DL_API ReaderRfOffM (UFR_HANDLE hndUFR)
 Function switch off RF field at the reader.
 
UFR_STATUS DL_API ReaderRfOn (void)
 Function switch on RF field at the reader.
 
UFR_STATUS DL_API ReaderRfOnM (UFR_HANDLE hndUFR)
 Function switch on RF field at the reader.
 
UFR_STATUS DL_API ReaderRfReset (void)
 Function reset RF field at the reader. The RF field will be off, and then on after 50ms.
 
UFR_STATUS DL_API ReaderRfResetM (UFR_HANDLE hndUFR)
 Function reset RF field at the reader. The RF field will be off, and then on after 50ms.
 
UFR_STATUS DL_API ReaderSoftRestart (void)
 This function is used to restart the reader by software. It sets all readers parameters to default values and close RF field which resets all the cards in the field.
 
UFR_STATUS DL_API ReaderSoftRestartM (UFR_HANDLE hndUFR)
 Multi reader support. This function is used to restart the reader by software. It sets all readers parameters to default values and close RF field which resets all the cards in the field.
 
UFR_STATUS DL_API ReaderSoundVolume (uint8_t sound_volume)
 Function sets the duty cycle ratio of the sound signal. Value is in percent (0 - 100%).
 
UFR_STATUS DL_API ReaderSoundVolumeM (UFR_HANDLE hndUFR, uint8_t sound_volume)
 Multi reader support. From version 5.0.68. Function sets the duty cycle ratio of the sound signal. Value is in percent (0 - 100%). Default value is 50%, and this value will be set after the reset of the reader, without using this function.
 
UFR_STATUS DL_API ReaderStillConnected (VAR uint32_t *connected)
 Retrieve info if reader is still connected to host.
 
UFR_STATUS DL_API ReaderStillConnectedM (UFR_HANDLE hndUFR, VAR uint32_t *connected)
 Multi reader support. Retrieve info if reader is still connected to host.
 
UFR_STATUS DL_API ReaderUISignal (uint8_t light_signal_mode, uint8_t beep_signal_mode)
 This function turns sound and light reader signals.
 
UFR_STATUS DL_API ReaderUISignalM (UFR_HANDLE hndUFR, uint8_t light_signal_mode, uint8_t beep_signal_mode)
 Multi reader support. This function turns sound and light reader signals. Sound signals are performed by the reader's buzzer and light signals are performed by the reader's LEDs. There are predefined signal values for sound and light:
 
UFR_STATUS DL_API ReadNdefRecord_Address (OUT char *address)
 Reads NDEF address (city, street name,etc) from card.
 
UFR_STATUS DL_API ReadNdefRecord_AddressM (UFR_HANDLE hndUFR, OUT char *address)
 Multi reader support. Reads NDEF address (city, street name,etc) from card.
 
UFR_STATUS DL_API ReadNdefRecord_AndroidApp (OUT char *package_name)
 Reads android app package name stored as NDEF record.
 
UFR_STATUS DL_API ReadNdefRecord_AndroidAppM (UFR_HANDLE hndUFR, OUT char *package_name)
 Reads android app package name stored as NDEF record.
 
UFR_STATUS DL_API ReadNdefRecord_Bitcoin (OUT char *bitcoin_address, OUT char *amount, OUT char *message)
 Reads NDEF bitcoin address, amount and donation message from card.
 
UFR_STATUS DL_API ReadNdefRecord_BitcoinM (UFR_HANDLE hndUFR, OUT char *bitcoin_address, OUT char *amount, OUT char *message)
 Multi reader support. Reads NDEF bitcoin address, amount and donation message from card.
 
UFR_STATUS DL_API ReadNdefRecord_BT (OUT char *bt_mac_address)
 Reads NDEF Bluetooth MAC address for pairing from card.
 
UFR_STATUS DL_API ReadNdefRecord_BTM (UFR_HANDLE hndUFR, OUT char *bt_mac_address)
 Multi reader support. Reads NDEF Bluetooth MAC address for pairing from card.
 
UFR_STATUS DL_API ReadNdefRecord_Contact (OUT char *vCard)
 Reads NDEF phone contact from card.
 
UFR_STATUS DL_API ReadNdefRecord_ContactM (UFR_HANDLE hndUFR, OUT char *vCard)
 Multi reader support. Reads NDEF phone contact from card.
 
UFR_STATUS DL_API ReadNdefRecord_Email (OUT char *email_address, OUT char *subject, OUT char *message)
 Reads NDEF email address, subject and message from card.
 
UFR_STATUS DL_API ReadNdefRecord_EmailM (UFR_HANDLE hndUFR, OUT char *email_address, OUT char *subject, OUT char *message)
 Multi reader support. Reads NDEF email address, subject and message from card.
 
UFR_STATUS DL_API ReadNdefRecord_GeoLocation (OUT char *latitude, OUT char *longitude)
 Reads NDEF latitude and longitude from card.
 
UFR_STATUS DL_API ReadNdefRecord_GeoLocationM (UFR_HANDLE hndUFR, OUT char *latitude, OUT char *longitude)
 Multi reader support. Reads NDEF latitude and longitude from card.
 
UFR_STATUS DL_API ReadNdefRecord_NaviDestination (OUT char *destination)
 Reads NDEF navigation destination from card.
 
UFR_STATUS DL_API ReadNdefRecord_NaviDestinationM (UFR_HANDLE hndUFR, OUT char *destination)
 Multi reader support. Reads NDEF navigation destination from card.
 
UFR_STATUS DL_API ReadNdefRecord_Phone (OUT char *phone_number)
 Reads NDEF phone number from card.
 
UFR_STATUS DL_API ReadNdefRecord_PhoneM (UFR_HANDLE hndUFR, OUT char *phone_number)
 Multi reader support. Reads NDEF phone number from card.
 
UFR_STATUS DL_API ReadNdefRecord_Skype (OUT char *user_name, OUT char *action)
 Reads NDEF skype username and action from card.
 
UFR_STATUS DL_API ReadNdefRecord_SkypeM (UFR_HANDLE hndUFR, OUT char *user_name, OUT char *action)
 Multi reader support. Reads NDEF skype username and action from card.
 
UFR_STATUS DL_API ReadNdefRecord_SMS (OUT char *phone_number, OUT char *message)
 Reads NDEF phone number and message from card.
 
UFR_STATUS DL_API ReadNdefRecord_SMSM (UFR_HANDLE hndUFR, OUT char *phone_number, OUT char *message)
 Multi reader support. Reads NDEF phone number and message from card.
 
UFR_STATUS DL_API ReadNdefRecord_StreetView (OUT char *latitude, OUT char *longitude)
 Reads NDEF latitude and longitude for Google StreetView from card.
 
UFR_STATUS DL_API ReadNdefRecord_StreetViewM (UFR_HANDLE hndUFR, OUT char *latitude, OUT char *longitude)
 Multi reader support. Reads NDEF latitude and longitude for Google StreetView from card.
 
UFR_STATUS DL_API ReadNdefRecord_Text (OUT char *text)
 Reads NDEF text from card.
 
UFR_STATUS DL_API ReadNdefRecord_TextM (UFR_HANDLE hndUFR, OUT char *text)
 Multi reader support. Reads NDEF text from card.
 
UFR_STATUS DL_API ReadNdefRecord_Viber (OUT char *message)
 Reads NDEF Viber message from card.
 
UFR_STATUS DL_API ReadNdefRecord_ViberM (UFR_HANDLE hndUFR, OUT char *message)
 Multi reader support. Reads NDEF Viber message from card.
 
UFR_STATUS DL_API ReadNdefRecord_Whatsapp (OUT char *message)
 Reads NDEF Whatsapp message from card.
 
UFR_STATUS DL_API ReadNdefRecord_WhatsappM (UFR_HANDLE hndUFR, OUT char *message)
 Multi reader support. Reads NDEF Whatsapp message from card.
 
UFR_STATUS DL_API ReadNdefRecord_WiFi (OUT char *ssid, OUT char *auth_type, OUT char *encryption_type, OUT char *password)
 Reads NDEF WiFi configuration from card..
 
UFR_STATUS DL_API ReadNdefRecord_WiFiM (UFR_HANDLE hndUFR, OUT char *ssid, OUT char *auth_type, OUT char *encryption_type, OUT char *password)
 Multi reader support. Reads NDEF WiFi configuration from card..
 
UFR_STATUS DL_API ReadNFCCounter (VAR uint32_t *value)
 This function is used to read 24-bit NFC counters in NTAG 213, NTAG 215 and NTAG 216 chips without using password authentication.
 
UFR_STATUS DL_API ReadNFCCounterM (UFR_HANDLE hndUFR, VAR uint32_t *value)
 Multi reader support. This function is used to read 24-bit NFC counters in NTAG 213, NTAG 215 and NTAG 216 chips without using password authentication. If access to the NFC counter is configured to be password protected, this function will return COUNTER_ERROR.
 
UFR_STATUS DL_API ReadNFCCounterPwdAuth_PK (VAR uint32_t *value, IN const uint8_t *key)
 Provided Key mode (PK) This function is used to read 24-bit NFC counter in NTAG 213, NTAG 215 and NTAG 216 chips using “reader key password authentication”.
 
UFR_STATUS DL_API ReadNFCCounterPwdAuth_PKM (UFR_HANDLE hndUFR, VAR uint32_t *value, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) This function is used to read 24-bit NFC counter in NTAG 213, NTAG 215 and NTAG 216 chips using “reader key password authentication”. If access to NFC counter is configured to be password protected and PWD-PACK pair stored as a 6-byte key in uFR reader disagrees with PWD-PACK pair configured in tag, this function will return UFR_AUTH_ERROR. If access to NFC counter isn’t configured to be password protected, this function will return UFR_AUTH_ERROR.
 
UFR_STATUS DL_API ReadNFCCounterPwdAuth_RK (VAR uint32_t *value, uint8_t reader_key_index)
 This function is used to read 24-bit NFC counter in NTAG 213, NTAG 215 and NTAG 216 chips using “reader key password authentication”.
 
UFR_STATUS DL_API ReadNFCCounterPwdAuth_RKM (UFR_HANDLE hndUFR, VAR uint32_t *value, uint8_t reader_key_index)
 Multi reader support. This function is used to read 24-bit NFC counter in NTAG 213, NTAG 215 and NTAG 216 chips using “reader key password authentication”. If access to NFC counter is configured to be password protected and PWD-PACK pair stored as a 6-byte key in uFR reader disagrees with PWD-PACK pair configured in tag, this function will return UFR_AUTH_ERROR. If access to NFC counter isn’t configured to be password protected, this function will return UFR_AUTH_ERROR.
 
UFR_STATUS DL_API ReadShareRam (OUT uint8_t *ram_data, uint8_t addr, uint8_t data_len)
 Function allows read data from the shared RAM.
 
UFR_STATUS DL_API ReadShareRamM (UFR_HANDLE hndUFR, uint8_t *ram_data, uint8_t addr, uint8_t data_len)
 Multi reader support. Function allows read data from the shared RAM.
 
UFR_STATUS DL_API ReadTTStatus (OUT uint8_t *tt_message, VAR uint8_t *tt_status)
 Function provides the information about the tag tamper status which is detected when the NTAG 213 TT is powered by an RF field.
 
UFR_STATUS DL_API ReadTTStatusM (UFR_HANDLE hndUFR, OUT uint8_t *tt_message, VAR uint8_t *tt_status)
 Function provides the information about the tag tamper status which is detected when the NTAG 213 TT is powered by an RF field.
 
UFR_STATUS DL_API ReadUserData (OUT uint8_t *aucData)
 Read user data written in device NV memory.
 
UFR_STATUS DL_API ReadUserDataExt (OUT uint8_t *aucData)
 Read user data written in device NV memory.
 
UFR_STATUS DL_API ReadUserDataExtM (UFR_HANDLE hndUFR, OUT uint8_t *aucData)
 Multi reader support. Read user data written in device NV memory. User data is 16 byte long. From version 5.0.86. function ReadUserDataExt added. When using this function, user data is 32 bytes long.
 
UFR_STATUS DL_API ReadUserDataM (UFR_HANDLE hndUFR, OUT uint8_t *aucData)
 Multi reader support. Read user data written in device NV memory. User data is 16 byte long. From version 5.0.86. function ReadUserDataExt added. When using this function, user data is 32 bytes long.
 
UFR_STATUS DL_API RgbControl (uint8_t red, uint8_t green, uint8_t blue)
 Sets the color of the RGB diodes.
 
UFR_STATUS DL_API RgbControlM (UFR_HANDLE hndUFR, uint8_t red, uint8_t green, uint8_t blue)
 Multi reader support. From version 5.0.55. Before the function calls, the function GreenLedBlinkingTurnOff must be called, or the reader is already in mode of blocking automatic signalization. Function sets the color of the RGB diodes. This color stays on the RGB until the function GreenLedBlinkingTurnOn is called. Intensity of light is defined by a parameter stored using the function SetRgbIntensity.
 
UFR_STATUS DL_API s_block_deselect (uint8_t timeout)
 Used to deselect tag and restore RF field polling. This call is mandatory after using SetISO14443_4_Mode() and its variants.
 
UFR_STATUS DL_API s_block_deselectM (UFR_HANDLE hndUFR, uint8_t timeout)
 Multi reader support. Used to deselect tag and restore RF field polling. This call is mandatory after using SetISO14443_4_Mode() and its variants.
 
UFR_STATUS DL_API SAM_authenticate_host_AV2_plain (IN uint8_t *host_aes_key, uint8_t key_nr, uint8_t key_version, OUT uint8_t *apdu_sw)
 Function is used to run a mutual 3-pass authentication between the MIFARE SAM AV2 and PC.
 
UFR_STATUS DL_API SAM_authenticate_host_AV2_plainM (UFR_HANDLE hndUFR, IN uint8_t *host_aes_key, uint8_t key_nr, uint8_t key_version, OUT uint8_t *apdu_sw)
 Multi reader support. Function is used to run a mutual 3-pass authentication between the MIFARE SAM AV2 and PC. A host authentication is required to: • Load or update keys into the MIFARE SAM AV2 • Activate the MIFARE SAM AV2 after reset (if configured accordingly in the configuration settings of master key key_no 00h) The communication in this process is plain, so key will be exposed during function execution. Use this function in security environment (disconnect LAN).
 
UFR_STATUS DL_API SAM_change_key_entry_2K3DES_desfire_AV2_plain_one_key (uint8_t key_entry_no, IN uint8_t *key, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Function allows changing KST containing 2K3DES key for authentication to Mifare Desfire card.
 
UFR_STATUS DL_API SAM_change_key_entry_2K3DES_ULC_AV2_plain_one_key (uint8_t key_entry_no, IN uint8_t *key, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Function allows changing KST containing 2K3DES key for authentication to Ultralight C card.
 
UFR_STATUS DL_API SAM_change_key_entry_3K3DES_AV2_plain_one_key (uint8_t key_entry_no, IN uint8_t *key, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Function allows changing KST containing 3K3DES key for authentication to Mifare Desfire card.
 
UFR_STATUS DL_API SAM_change_key_entry_3K3DES_AV2_plain_one_keyM (UFR_HANDLE hndUFR, uint8_t key_entry_no, IN uint8_t *key, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Multi reader support. Function allows changing KST containing 3K3DES key for authentication to Mifare Desfire card. The communication in this process is plain, so keys will be exposed during function execution. Use this function in security environment (disconnect LAN).
 
UFR_STATUS DL_API SAM_change_key_entry_aes_AV2_plain_host_key (uint8_t key_entry_no, IN uint8_t *aes_key_ver_a, uint8_t ver_a, IN uint8_t *aes_key_ver_b, uint8_t ver_b, IN uint8_t *aes_key_ver_c, uint8_t ver_c, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, uint8_t sam_lock_unlock, uint8_t sam_auth_host, OUT uint8_t *apdu_sw)
 Function allows changing KST (Key Storage Table) containing 3 AES-128 keys, and their versions.
 
UFR_STATUS DL_API SAM_change_key_entry_aes_AV2_plain_host_keyM (UFR_HANDLE hndUFR, uint8_t key_entry_no, IN uint8_t *aes_key_ver_a, uint8_t ver_a, IN uint8_t *aes_key_ver_b, uint8_t ver_b, IN uint8_t *aes_key_ver_c, uint8_t ver_c, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, uint8_t sam_lock_unlock, uint8_t sam_auth_host, OUT uint8_t *apdu_sw)
 Multi reader support. Function allows changing KST (Key Storage Table) containing 3 AES-128 keys, and their versions. The communication in this process is plain, so keys will be exposed during function execution. Use this function in security environment (disconnect LAN).
 
UFR_STATUS DL_API SAM_change_key_entry_AES_AV2_plain_one_key (uint8_t key_entry_no, IN uint8_t *key, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Function allows changing KST containing AES key for authentication to Mifare Desfire or Mifare Plus card in SL3 mode.
 
UFR_STATUS DL_API SAM_change_key_entry_AES_AV2_plain_one_keyM (UFR_HANDLE hndUFR, uint8_t key_entry_no, IN uint8_t *key, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Multi reader support. Function allows changing KST containing AES key for authentication to Mifare Desfire or Mifare Plus card in SL3 mode. The communication in this process is plain, so keys will be exposed during function execution. Use this function in security environment (disconnect LAN).
 
UFR_STATUS DL_API SAM_change_key_entry_DES_AV2_plain_one_key (uint8_t key_entry_no, IN uint8_t *key, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Function allows changing KST containing DES key for authentication to Mifare Desfire card.
 
UFR_STATUS DL_API SAM_change_key_entry_mifare_AV2_plain_one_key (uint8_t key_entry_no, IN uint8_t *keyA, IN uint8_t *keyB, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Function allows changing KST containing two Crypto 1 keys (KeyA and KeyB) for authentication to Mifare Classic or Mifare Plus card in SL1 mode.
 
UFR_STATUS DL_API SAM_change_key_entry_mifare_AV2_plain_one_keyM (UFR_HANDLE hndUFR, uint8_t key_entry_no, IN uint8_t *keyA, IN uint8_t *keyB, uint8_t key_no_CEK, uint8_t key_v_CEK, uint8_t ref_no_KUC, OUT uint8_t *apdu_sw)
 Multi reader support. Function allows changing KST containing two Crypto 1 keys (KeyA and KeyB) for authentication to Mifare Classic or Mifare Plus card in SL1 mode. The communication in this process is plain, so keys will be exposed during function execution. Use this function in security environment (disconnect LAN).
 
UFR_STATUS DL_API SAM_get_key_entry_raw (uint8_t key_no, OUT uint8_t *key_entry, VAR uint8_t *key_length, OUT uint8_t *apdu_sw)
 Function allows reading the contents of the key entry specified in the parameter key_no. For more information refer to NXP documentation.
 
UFR_STATUS DL_API SAM_get_key_entry_rawM (UFR_HANDLE hndUFR, uint8_t key_no, OUT uint8_t *key_entry, VAR uint8_t *key_length, OUT uint8_t *apdu_sw)
 Multi reader support. Function allows reading the contents of the key entry specified in the parameter key_no. For more information refer to NXP documentation.
 
UFR_STATUS DL_API SAM_get_version (VAR SAM_HW_TYPE *sam_type, OUT uint8_t *sam_uid)
 Function returns manufacturing related data of the MIFARE SAM. For more information refer to NXP documentation.
 
UFR_STATUS DL_API SAM_get_version_raw (OUT uint8_t *data, VAR uint8_t *length)
 Function returns manufacturing related data of the MIFARE SAM. For more information refer to NXP documentation.
 
UFR_STATUS DL_API SAM_get_version_rawM (UFR_HANDLE hndUFR, OUT uint8_t *data, VAR uint8_t *length)
 Multi reader support. Function returns manufacturing related data of the MIFARE SAM. For more information refer to NXP documentation.
 
UFR_STATUS DL_API SAM_get_versionM (UFR_HANDLE hndUFR, VAR SAM_HW_TYPE *sam_type, VAR uint8_t *sam_uid)
 Multi reader support. Function returns manufacturing related data of the MIFARE SAM. For more information refer to NXP documentation.
 
UFR_STATUS DL_API SectorTrailerWrite (uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode, uint8_t key_index)
 This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWrite_AKM1 (uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWrite_AKM1M (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authentication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are calculated from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provided to reader.
 
UFR_STATUS DL_API SectorTrailerWrite_AKM2 (uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWrite_AKM2M (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authentication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are calculated from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provided to reader.
 
UFR_STATUS DL_API SectorTrailerWrite_PK (uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWrite_PKM (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authentication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are calculated from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provided to reader.
 
UFR_STATUS DL_API SectorTrailerWriteM (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authentication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are calculated from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provided to reader.
 
UFR_STATUS DL_API SectorTrailerWriteSamKey (uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode, uint8_t key_index)
 This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWriteSamKeyM (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *new_key_A, uint8_t block0_access_bits, uint8_t block1_access_bits, uint8_t block2_access_bits, uint8_t sector_trailer_access_bits, uint8_t sector_trailer_byte9, IN const uint8_t *new_key_B, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. *only uFR CS with SAM support This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Mifare Plus using. For firmware versions from 5.0.29 and library versions from 5.0.19, this functions may be used for Mifare plus cards. If authentication mode is MIFARE_AUTHENT1A or MIFARE_AUTHENT1B, AES key for authentication, and new AES key A and new AES key B are calculated from Crypto1 keys. If authentication mode is MIFARE_PLUS_AES_AUTHENT1A or MIFARE_PLUS_AES_AUTHENT1B, new AES keys are provided to reader.
 
UFR_STATUS DL_API SectorTrailerWriteUnsafe (uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode, uint8_t key_index)
 This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWriteUnsafe_AKM1 (uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode)
 Automatic Key Mode 1 (AKM1) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWriteUnsafe_AKM1M (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 1 (AKM1) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Difference between this function and SectorTrailerWrite is :
 
UFR_STATUS DL_API SectorTrailerWriteUnsafe_AKM2 (uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode)
 Automatic Key Mode 2 (AKM2) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWriteUnsafe_AKM2M (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode)
 Multi reader support. Automatic Key Mode 2 (AKM2) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Difference between this function and SectorTrailerWrite is :
 
UFR_STATUS DL_API SectorTrailerWriteUnsafe_PK (uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode, IN const uint8_t *key)
 Provided Key mode (PK) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer.
 
UFR_STATUS DL_API SectorTrailerWriteUnsafe_PKM (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode, IN const uint8_t *key)
 Multi reader support. Provided Key mode (PK) This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Difference between this function and SectorTrailerWrite is :
 
UFR_STATUS DL_API SectorTrailerWriteUnsafeM (UFR_HANDLE hndUFR, uint8_t addressing_mode, uint8_t address, IN const uint8_t *sector_trailer, uint8_t auth_mode, uint8_t key_index)
 Multi reader support. This function is specific to Mifare Classic cards only. It writes new Sector Trailer value at one Sector Trailer. It writes following data: KeyA, Block Access Bits, Trailer Access Bits, GeneralPurposeByte(GPB), KeyB, same as construction of Sector Trailer. Difference between this function and SectorTrailerWrite is :
 
UFR_STATUS DL_API SelectCard (IN const uint8_t *aucUid, uint8_t ucUidSize, OUT uint8_t *lpucSelctedCardType)
 Selects one of the cards which UID is on the actual UID list of the enumerated cards.
 
UFR_STATUS DL_API SelectCardM (UFR_HANDLE hndUFR, IN const uint8_t *aucUid, uint8_t ucUidSize, OUT uint8_t *lpucSelctedCardType)
 Multi reader support. Selects one of the cards which UID is on the actual UID list of the enumerated cards. If there is any of the cards previously selected calling this function you will get an CARD_ALREADY_SELECTED status code and, in such a case, you should call DeslectCard() function prior using SelectCard(). If UID list of the enumerated cards is empty, you will get an NO_TAGS_ENUMERRATED status code.
 
UFR_STATUS DL_API SetAdHocEmulationParams (uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 This command set ad-hoc emulation parameters.
 
UFR_STATUS DL_API SetAdHocEmulationParamsM (UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Multi reader support. This command set ad-hoc emulation parameters. On uFR power on or reset ad-hoc emulation parameters are set back to their default values.
 
UFR_STATUS DL_API SetAsyncCardIdSendConfig (uint8_t send_enable, uint8_t prefix_enable, uint8_t prefix, uint8_t suffix, uint8_t send_removed_enable, uint32_t async_baud_rate)
 This function is used for the “Asynchronous UID sending” feature. Returned string contains hexadecimal notation of card ID with one mandatory suffix character and one optional prefix character.
 
UFR_STATUS DL_API SetAsyncCardIdSendConfigEx (uint8_t send_enable, uint8_t prefix_enable, uint8_t prefix, uint8_t suffix, uint8_t send_removed_enable, uint8_t reverse_byte_order, uint8_t decimal_representation, uint32_t async_baud_rate)
 Function sets the parameters of card ID sending.
 
UFR_STATUS DL_API SetAsyncCardIdSendConfigExM (UFR_HANDLE hndUFR, uint8_t send_enable, uint8_t prefix_enable, uint8_t prefix, uint8_t suffix, uint8_t send_removed_enable, uint8_t reverse_byte_order, uint8_t decimal_representation, uint32_t async_baud_rate)
 Multi reader support. Function sets the parameters of card ID sending.
 
UFR_STATUS DL_API SetAsyncCardIdSendConfigM (UFR_HANDLE hndUFR, uint8_t send_enable, uint8_t prefix_enable, uint8_t prefix, uint8_t suffix, uint8_t send_removed_enable, uint32_t async_baud_rate)
 Multi reader support. This function is used for the “Asynchronous UID sending” feature. Returned string contains hexadecimal notation of card ID with one mandatory suffix character and one optional prefix character. On the uFR Zero USB series there is an option to enable USB HID keyboard simulation. It is needed to set the baud rate to 0. For example, if baud rate is setted to any other value than 0, UID is sent to UART, but if it is setted to 0 UID is sent as keyboard simulation. Example: Card ID is 0xA103C256, prefix is 0x58 ('X'), suffix is 0x59 ('Y') Returned string is “XA103C256Y” Function sets configuration parameters for this feature.
 
void DL_API setCardDetectedCallback (CardDetectedCallback callback)
 This function is used to set or change the function that wil be called as a 'CardDetectedCallback'

 
void DL_API setCardRemovedCallback (CardRemovedCallback callback)
 This function is used to set or change the function that wil be called as a 'CardRemovedCallback'

 
UFR_STATUS DL_API SetCustomUiConfig (uint8_t idle_mode, uint8_t card_detection_mode, uint8_t *idle_color, uint8_t *card_detection_color, uint8_t enabled)
 *uFR Zero series readers only. Function to set custom RGB UI signalization
 
UFR_STATUS DL_API SetCustomUiConfigM (UFR_HANDLE hndUFR, uint8_t idle_mode, uint8_t card_detection_mode, uint8_t *idle_color, uint8_t *card_detection_color, uint8_t enabled)
 *uFR Zero series readers only Multi reader support. Function to set custom RGB UI signalization
 
UFR_STATUS DL_API SetDefaultUartSpeed (uint8_t reader_type, uint8_t comm_type, IN c_string port_name)
 This function returns communication speed (UART baud rate) to default value.
 
UFR_STATUS DL_API SetDiscoveryLoop (IN const uint8_t *setupStruct, uint32_t len)
 Function sets the reader’s discovery loop.
 
UFR_STATUS DL_API SetDiscoveryLoopM (UFR_HANDLE hndUFR, const uint8_t *setupStruct, uint32_t len)
 Multi reader support. Function sets the reader’s discovery loop.
 
UFR_STATUS DL_API SetDisplayData (IN uint8_t *display_data, uint8_t data_length)
 Function enables sending data to the display. A string of data contains information about the intensity of color in each cell of the display.
 
UFR_STATUS DL_API SetDisplayDataM (UFR_HANDLE hndUFR, IN uint8_t *display_data, uint8_t data_length)
 Multi reader support. Function enables sending data to the display. A string of data contains information about the intensity of color in each cell of the display. Each cell has three LED (red, green and blue). For each cell of the three bytes is necessary. The first byte indicates the intensity of the green color, the second byte indicates the intensity of the red color, and the third byte indicates the intensity of blue color. For example, if the display has 16 cells, an array contains 48 bytes. Value of intensity is in range from 0 to 255.
 
UFR_STATUS DL_API SetDisplayIntensity (uint8_t intensity)
 Function sets the intensity of light on the display.
 
UFR_STATUS DL_API SetDisplayIntensityM (UFR_HANDLE hndUFR, uint8_t intensity)
 Multi reader support. SetRgbIntensity (alias from version 5.0.55) Function sets the intensity of light on the display. Value of intensity is in the range 0 to 100. This value writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetISO14443_4_Mode (void)
 Call SetISO14443_4_Mode() or SetISO14443_4_Mode_GetATS(). ISO 14443-4 tag in a field will be selected and RF field polling will be stopped.
 
UFR_STATUS DL_API SetISO14443_4_Mode_GetATS (OUT uint8_t ats[MAX_ATS_LEN], VAR uint8_t *ats_len, OUT uint8_t uid[MAX_UID_LEN], VAR uint8_t *uid_len, VAR uint8_t *sak)
 Call SetISO14443_4_Mode() or SetISO14443_4_Mode_GetATS(). ISO 14443-4 tag in a field will be selected and RF field polling will be stopped.
 
UFR_STATUS DL_API SetISO14443_4_Mode_GetATSM (OUT UFR_HANDLE hndUFR, uint8_t ats[MAX_ATS_LEN], VAR uint8_t *ats_len, OUT uint8_t uid[MAX_UID_LEN], VAR uint8_t *uid_len, VAR uint8_t *sak)
 Multi reader support. Call SetISO14443_4_Mode() or SetISO14443_4_Mode_GetATS(). ISO 14443-4 tag in a field will be selected and RF field polling will be stopped.
 
UFR_STATUS DL_API SetISO14443_4_ModeM (UFR_HANDLE hndUFR)
 Multi reader support. Call SetISO14443_4_Mode() or SetISO14443_4_Mode_GetATS(). ISO 14443-4 tag in a field will be selected and RF field polling will be stopped.
 
UFR_STATUS DL_API SetLicenseData (c_string license_str)
 Used to validate and store an offline Dlogic license for future usage.
 
UFR_STATUS DL_API SetMobileUniqueIdAid (IN const uint8_t *aid, uint32_t len)
 Function sets the reader’s AID to retrieve the mobile phone's unique ID.
 
UFR_STATUS DL_API SetMobileUniqueIdAidM (UFR_HANDLE hndUFR, const uint8_t *aid, uint32_t len)
 Multi reader support. Function sets the reader’s AID to retrieve the mobile phone's unique ID.
 
void setNFCMessage (const char *message)
 For iOS only: This function is used to set message displayed when the NFC Session window is started
E.g 'Read the tag with the phone' NFC Session can be started via ReaderOpenEx() and appropriate parameters, or openNFCSession()
 
UFR_STATUS DL_API SetReaderTime (IN uint8_t *password, VAR uint8_t *time)
 Function sets the date and time into the device's RTC.
 
UFR_STATUS DL_API SetReaderTimeM (UFR_HANDLE hndUFR, IN uint8_t *password, VAR uint8_t *time)
 Multi reader support. Function sets the date and time into the device's RTC. Function requires the 8 bytes password entry to set date and time. Date and time are represented into a 6 bytes array in the same way as in the GetReaderTime function. Factory password is “11111111” (0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31).
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212 (uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Allow user to adjust the value of several registers on PN512.
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212Default (void)
 The functions set the factory default settings of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212DefaultM (UFR_HANDLE hndUFR)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212M (UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424 (uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Allow user to adjust the value of several registers on PN512.
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424Default (void)
 The functions set the factory default settings of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424DefaultM (UFR_HANDLE hndUFR)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424M (UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeA (uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Allow user to adjust the value of several registers on PN512.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeADefault (void)
 The functions set the factory default settings of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeADefaultM (UFR_HANDLE hndUFR)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeAM (UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeATrans (uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel, uint8_t CWGsNOn, uint8_t ModGsNOn, uint8_t CWGsP, uint8_t CWGsNOff, uint8_t ModGsNOff)
 Functions allow adjusting values of registers RFCfgReg, RxThresholdReg, GsNOnReg, GsNOffReg, CWGsPReg, ModGsPReg.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeATransM (UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel, uint8_t CWGsNOn, uint8_t ModGsNOn, uint8_t CWGsP, uint8_t CWGsNOff, uint8_t ModGsNOff)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeB (uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Allow user to adjust the value of several registers on PN512.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeBDefault (void)
 The functions set the factory default settings of the registers RFCfgReg and RxThresholdReg.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeBDefaultM (UFR_HANDLE hndUFR)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeBM (UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeBTrans (uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel, uint8_t CWGsNOn, uint8_t ModGsNOn, uint8_t CWGsP, uint8_t ModGsP)
 Functions allow adjusting values of registers RFCfgReg, RxThresholdReg, GsNOnReg, GsNOffReg, CWGsPReg, ModGsPReg.
 
UFR_STATUS DL_API SetRfAnalogRegistersTypeBTransM (UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel, uint8_t CWGsNOn, uint8_t ModGsNOn, uint8_t CWGsP, uint8_t ModGsP)
 Multi reader support. The function allows the blinking of the green diode independently of the user's signaling command (default setting). This setting writes into the reader's EEPROM, and it loads when the reader starts up.
 
UFR_STATUS DL_API SetRgbData (IN uint8_t *display_data, uint8_t data_length, uint8_t port_name)
 Function has the same functionality as the function SetDisplayData(). New feature is the RGB port selection.
 
UFR_STATUS DL_API SetRgbDataM (UFR_HANDLE hndUFR, uint8_t *display_data, uint8_t data_length, uint8_t port_name)
 Multi reader support. From version 5.0.55 Function has the same functionality as the function SetDisplayData. New feature is the RGB port selection. Internal port uses RGB diodes on the reader PCB. Card size reader has two diodes. XL reader has four diodes. External port uses LED RING with RGB diodes. Before the function calls, the function GreenLedBlinkingTurnOff must be called, or the reader is already in mode of blocking automatic signalization. Function sets the color of the RGB diodes. This color stays on the RGB until the function GreenLedBlinkingTurnOn is called. Intensity of light is defined by a parameter stored using the function SetRgbIntensity.
 
UFR_STATUS DL_API SetRgbIntensity (uint8_t intensity)
 Function sets the intensity of light on the display.
 
void DL_API setSessionErrorCallback (SessionErrorCallback callback)
 This function is used to set or change the function that wil be called as a 'SessionErrorCallback'

 
UFR_STATUS DL_API SetSpeakerFrequency (uint16_t frequency)
 This function plays constant sound of “frequency” Hertz.
 
UFR_STATUS DL_API SetSpeakerFrequencyM (UFR_HANDLE hndUFR, uint16_t frequency)
 Multi reader support. This function plays constant sound of “frequency” Hertz.
 
UFR_STATUS DL_API SetSpeedPermanently (unsigned char tx_speed, unsigned char rx_speed)
 This function is used for setting communication speed between reader and ISO144443-4 cards. For other card types, a default speed of 106 kbps is in use.
 
UFR_STATUS DL_API SetSpeedPermanentlyM (UFR_HANDLE hndUFR, unsigned char tx_speed, unsigned char rx_speed)
 Multi reader support. This function is used for setting communication speed between reader and ISO144443-4 cards. For other card types, a default speed of 106 kbps is in use.
 
UFR_STATUS DL_API SetUartSpeed (uint32_t baud_rate)
 This function sets communication speed (UART baud rate).
 
UFR_STATUS DL_API StartAsyncSession (CardDetectedCallback card_detected_callback, CardRemovedCallback card_removed_callback)
 This function is used to enable asynchronous event-driven API callbacks.
Prerequisites: ReaderOpen() or ReaderOpenEx() must be called first and must return UFR_OK status to open connection with the reader
The function takes pointers to user-defined functions as 'card_detected_callback' and 'card_removed_callback'

 
UFR_STATUS DL_API StopAsyncSession ()
 This function is used to stop receiving asynchronous callbacks previously set by StartAsyncSession()
 
UFR_STATUS DL_API TagEmulationMirrorCounterDisabled (void)
 Function disables the NFC counter in the card emulation mode.
 
UFR_STATUS DL_API TagEmulationMirrorCounterNonResetEnabled (uint16_t mirror_pos)
 Function enables the 24 bit NFC counter.
 
UFR_STATUS DL_API TagEmulationMirrorCounterResetEnabled (uint16_t mirror_pos)
 Function enables the 24 bit NFC counter.
 
UFR_STATUS DL_API TagEmulationStart (void)
 Put the reader permanently in a NDEF tag emulation mode.
 
UFR_STATUS DL_API TagEmulationStartM (UFR_HANDLE hndUFR)
 Multi reader support. Put the reader permanently in a NDEF tag emulation mode. Only way for a reader to exit from this mode is to receive the TAG_EMULATION_STOP command (issued by calling TagEmulationStop() function). In this mode, the reader can only answer to the commands issued by a following library functions: TagEmulationStart(), WriteEmulationNdef(), TagEmulationStop(), GetReaderSerialNumber(), GetReaderSerialDescription(), GetReaderHardwareVersion(), GetReaderFirmwareVersion(), GetBuildNumber() Calls to the other functions in this mode returns following error code: FORBIDDEN_IN_TAG_EMULATION_MODE = 0x90.
 
UFR_STATUS DL_API TagEmulationStartRam (void)
 Put the reader permanently in a NDEF tag in RAM emulation mode.
 
UFR_STATUS DL_API TagEmulationStop (void)
 Allows the reader permanent exit from a NDEF tag emulation mode.
 
UFR_STATUS DL_API TagEmulationStopM (UFR_HANDLE hndUFR)
 Multi reader support. Allows the reader permanent exit from a NDEF tag emulation mode.
 
UFR_STATUS DL_API TagEmulationStopRam (void)
 Allows the reader permanent exit from a NDEF tag emulation mode.
 
UFR_STATUS DL_API uart_transceive (IN uint8_t *send_data, uint8_t send_len, OUT uint8_t *rcv_data, uint32_t bytes_to_receive, VAR uint32_t *rcv_len)
 The function sends data through the serial port to the card.
 
UFR_STATUS DL_API uart_transceiveM (UFR_HANDLE hndUFR, IN uint8_t *send_data, uint8_t send_len, OUT uint8_t *rcv_data, uint32_t bytes_to_receive, VAR uint32_t *rcv_len)
 Multi reader support. The function sends data through the serial port to the card.
 
UFR_STATUS DL_API uFR_APDU_Transceive (uint8_t cls, uint8_t ins, uint8_t p1, uint8_t p2, IN uint8_t *data_out, uint8_t data_out_len, OUT uint8_t *data_in, uint32_t max_data_in_len, VAR uint32_t *response_len, uint8_t send_le, OUT uint8_t *apdu_status)
 Used to transmit C-APDU and receive R-APDU packets per defined parameters.
 
UFR_STATUS DL_API uFR_APDU_TransceiveM (UFR_HANDLE hndUFR, uint8_t cls, uint8_t ins, uint8_t p1, uint8_t p2, IN uint8_t *data_out, uint8_t data_out_len, OUT uint8_t *data_in, uint32_t max_data_in_len, VAR uint32_t *response_len, uint8_t send_le, OUT uint8_t *apdu_status)
 Multi reader support. Used to transmit C-APDU and receive R-APDU packets per defined parameters.
 
c_string DL_API UFR_DLCardType2String (uint8_t dl_type_code)
 Returns card type as a c_string instead of byte value.
 
UFR_STATUS DL_API uFR_i_block_transceive (uint8_t chaining, uint8_t timeout, uint8_t block_length, IN uint8_t *snd_data_array, VAR size_t *rcv_length, OUT uint8_t *rcv_data_array, VAR uint32_t *ufr_status)
 DEPRECATED.
 
UFR_STATUS DL_API uFR_i_block_transceiveM (UFR_HANDLE hndUFR, uint8_t chaining, uint8_t timeout, uint8_t block_length, IN uint8_t *snd_data_array, VAR size_t *rcv_length, OUT uint8_t *rcv_data_array, VAR uint32_t *ufr_status)
 DEPRECATED.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_2k3des (uint8_t auth_des2k_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_2k3des_key_nr, uint8_t aid_key_no, uint8_t old_2k3des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_2k3des_PK (IN uint8_t *auth_des2k_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_2k3des_key[16], uint8_t aid_key_no, IN uint8_t old_2k3des_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_2k3des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *auth_des2k_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_2k3des_key[16], uint8_t aid_key_no, IN uint8_t old_2k3des_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_2k3desM (UFR_HANDLE hndUFR, uint8_t auth_des2k_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_2k3des_key_nr, uint8_t aid_key_no, uint8_t old_2k3des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_des (uint8_t auth_des_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_2k3des_key_nr, uint8_t aid_key_no, uint8_t old_2k3des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_des_PK (IN uint8_t *auth_des_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_2k3des_key[16], uint8_t aid_key_no, IN uint8_t old_2k3des_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *auth_des_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_2k3des_key[16], uint8_t aid_key_no, IN uint8_t old_2k3des_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange2K3DesKey_desM (UFR_HANDLE hndUFR, uint8_t auth_des_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_2k3des_key_nr, uint8_t aid_key_no, uint8_t old_2k3des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 2K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange3K3DesKey_3k3des (uint8_t auth_des3k_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_3k3des_key_nr, uint8_t aid_key_no, uint8_t old_3k3des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 3K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange3K3DesKey_3k3des_PK (IN uint8_t *auth_des3k_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_3k3des_key[24], uint8_t aid_key_no, IN uint8_t old_3k3des_key[24], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 3K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange3K3DesKey_3k3des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *auth_des3k_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_3k3des_key[24], uint8_t aid_key_no, IN uint8_t old_3k3des_key[24], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 3K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChange3K3DesKey_3k3desM (UFR_HANDLE hndUFR, uint8_t auth_des3k_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_3k3des_key_nr, uint8_t aid_key_no, uint8_t old_3k3des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any 3K3DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey (uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_aes_key[16], uint8_t aid_key_no, IN uint8_t old_aes_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey_A (uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_aes_key_nr, uint8_t aid_key_no, uint8_t old_aes_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey_aes (uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_aes_key_nr, uint8_t aid_key_no, uint8_t old_aes_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey_aes_PK (IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_aes_key[16], uint8_t aid_key_no, IN uint8_t old_aes_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey_aes_PK_M (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_aes_key[16], uint8_t aid_key_no, IN uint8_t old_aes_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey_aesM (UFR_HANDLE hndUFR, uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_aes_key_nr, uint8_t aid_key_no, uint8_t old_aes_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey_PK (IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_aes_key[16], uint8_t aid_key_no, IN uint8_t old_aes_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKey_PK_M (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_aes_key[16], uint8_t aid_key_no, IN uint8_t old_aes_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeAesKeyM (UFR_HANDLE hndUFR, uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_aes_key[16], uint8_t aid_key_no, IN uint8_t old_aes_key[16], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any AES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_2k3des (uint8_t auth_des2k_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_des_key_nr, uint8_t aid_key_no, uint8_t old_des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_2k3des_PK (IN uint8_t *auth_des2k_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_des_key[8], uint8_t aid_key_no, IN uint8_t old_des_key[8], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_2k3des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *auth_des2k_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_des_key[8], uint8_t aid_key_no, IN uint8_t old_des_key[8], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_2k3desM (UFR_HANDLE hndUFR, uint8_t auth_des2k_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_des_key_nr, uint8_t aid_key_no, uint8_t old_des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_des (uint8_t auth_des_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_des_key_nr, uint8_t aid_key_no, uint8_t old_des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_des_PK (IN uint8_t *auth_des_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_des_key[8], uint8_t aid_key_no, IN uint8_t old_des_key[8], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *auth_des_key, uint32_t aid, uint8_t aid_key_no_auth, IN uint8_t new_des_key[8], uint8_t aid_key_no, IN uint8_t old_des_key[8], VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeDesKey_desM (UFR_HANDLE hndUFR, uint8_t auth_des_key_nr, uint32_t aid, uint8_t aid_key_no_auth, uint8_t new_des_key_nr, uint8_t aid_key_no, uint8_t old_des_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows you to change any DES key on the card.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_2k3des (uint8_t des2k_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_2k3des_PK (IN uint8_t *des2k_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_2k3des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *des2k_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_2k3desM (UFR_HANDLE hndUFR, uint8_t des2k_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Multi reader support. Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_3k3des (uint8_t des3k_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_3k3des_PK (IN uint8_t *des3k_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_3k3des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *des3k_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_3k3desM (UFR_HANDLE hndUFR, uint8_t des3k_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_aes (uint8_t aes_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_aes_PK (IN uint8_t *aes_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_aes_PK_M (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_aesM (UFR_HANDLE hndUFR, uint8_t aes_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_des (uint8_t des_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_des_PK (IN uint8_t *des_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *des_key_ext, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettings_desM (UFR_HANDLE hndUFR, uint8_t des_key_nr, uint32_t aid, uint8_t file_no, uint8_t comm_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettingsSdm (uint8_t aes_key_nr, uint32_t aid, uint8_t file_no, uint8_t communication_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettingsSdm_PK (IN uint8_t *aes_key_ext, uint32_t aid, uint8_t file_no, uint8_t communication_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings Desfire EV3 only. Security Dynamic Messaging settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettingsSdm_PK_M (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint32_t aid, uint8_t file_no, uint8_t communication_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeFileSettingsSdmM (UFR_HANDLE hndUFR, uint8_t aes_key_nr, uint32_t aid, uint8_t file_no, uint8_t communication_settings, uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, uint8_t uid_enable, uint8_t read_ctr_enable, uint8_t read_ctr_limit_enable, uint8_t enc_file_data_enable, uint8_t meta_data_key_no, uint8_t file_data_read_key_no, uint8_t read_ctr_key_no, uint32_t uid_offset, uint32_t read_ctr_offset, uint32_t picc_data_offset, uint32_t mac_input_offset, uint32_t enc_offset, uint32_t enc_length, uint32_t mac_offset, uint32_t read_ctr_limit, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows changing of file settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings (uint8_t aes_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_2k3des (uint8_t des2k_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_2k3des_PK (IN uint8_t *des2k_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_2k3des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *des2k_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_2k3desM (UFR_HANDLE hndUFR, uint8_t des2k_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_3k3des (uint8_t des3k_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_3k3des_PK (IN uint8_t *des3k_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_3k3des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *des3k_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_3k3desM (UFR_HANDLE hndUFR, uint8_t des3k_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_aes (uint8_t aes_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_aes_PK (IN uint8_t *aes_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_aes_PK_M (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_aesM (UFR_HANDLE hndUFR, uint8_t aes_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_des (uint8_t des_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_des_PK (IN uint8_t *des_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_des_PK_M (UFR_HANDLE hndUFR, IN uint8_t *des_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_desM (UFR_HANDLE hndUFR, uint8_t des_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_PK (IN uint8_t *aes_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettings_PK_M (UFR_HANDLE hndUFR, IN uint8_t *aes_key_ext, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API uFR_int_DesfireChangeKeySettingsM (UFR_HANDLE hndUFR, uint8_t aes_key_nr, uint32_t aid, uint8_t setting, VAR uint16_t *card_status, VAR uint16_t *exec_time)
 Function allows to set card master key, and application master key configuration settings.
 
UFR_STATUS DL_API