diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b270676665b135ff8a268e3778b9a670cee48d7a..0000000000000000000000000000000000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "lib"] - path = lib - url = https://git.d-logic.net/nfc-rfid-reader-sdk/ufr-lib.git diff --git a/lib/README.md b/lib/README.md deleted file mode 100644 index 832709c966dc62cc8ec0068c47103d57d0390c2a..0000000000000000000000000000000000000000 --- a/lib/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# uFR Series libraries - -Scope of this project are libraries used with uFR Series devices and SDK examples. -Libraries are supported at following platforms: -Windows 32 and 64 bit (static and dynamic) -Windows ARM -Linux 32 and 64 bit (dynamic only) -Linux ARM and ARM-HF (dynamic only) -Mac OSX 32 and 64 bit (dynamic only) - - - -## Getting Started - -Download project, choose appropriate architecture and place a library in appropriate directory. -Consult documentation for API reference. For quick insight and functions' prototypes, check /include/ufCoder.h header file. - - -### Prerequisites - -uFR Series reader. - - -## License - -This project is licensed under the ..... License - see the [LICENSE.md](LICENSE.md) file for details - -## Acknowledgments - -* Libraries are specific to mentioned hardware ONLY and some other hardware might have different approach, please bear that in mind. - - diff --git a/lib/arduino_ufr/Packet.cpp b/lib/arduino_ufr/Packet.cpp deleted file mode 100644 index cc48dbf8586a09a68b78c688dc5f1cdf4fed2588..0000000000000000000000000000000000000000 --- a/lib/arduino_ufr/Packet.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "uFR.h" -#ifdef ESP32 -HardwareSerial* uFR::Packet::serial; -#else -SoftwareSerial* uFR::Packet::serial; -#endif - -uFR::CommonPacket::CommonPacket(PacketType type, uint8_t command) { - data = new uint8_t[PACKET_LENGTH]; - errorCode = read(data); - if (errorCode == 0) errorCode = validate(data, type, command); -} -uFR::CommonPacket::~CommonPacket() { - delete[] data; -} - -uFR::EXTPacket::EXTPacket(uint8_t length) { - data = new uint8_t[length]; - errorCode = read(data, length); -} -uFR::EXTPacket::~EXTPacket() { - delete[] data; -} - -uint8_t uFR::Packet::checksum(uint8_t *packet, uint8_t size) { - uint8_t result = packet[0]; - // XOR size bytes - for (uint8_t i = 1; i < size; i++) - result ^= packet[i]; - return result + 0x07; -} - -uint8_t uFR::CommonPacket::validate(uint8_t packet[PACKET_LENGTH], PacketType type, uint8_t command) { - if (checksum(packet) != packet[CHKSUM_BYTE]) return CHKSUM_ERROR_RESPONSE; - if (packet[HEADER_BYTE] == ERR_HEADER) { - if (packet[TRAILER_BYTE] == ERR_TRAILER) return packet[CMD_BYTE]; - return COMMUNICATION_ERROR; - } - if (packet[HEADER_BYTE] != type || packet[CMD_BYTE] != command) return COMMUNICATION_ERROR; - switch (type) { - case PACKET_ACK: - if (packet[TRAILER_BYTE] != ACK_TRAILER) return COMMUNICATION_ERROR; - break; - case PACKET_RSP: - if (packet[TRAILER_BYTE] != RESPONSE_TRAILER) return COMMUNICATION_ERROR; - break; - default: - return COMMUNICATION_ERROR; - } - return 0; -} - -uint8_t uFR::CommonPacket::read(uint8_t response[PACKET_LENGTH]) { - unsigned long time = millis(); - uint8_t incoming = 0; - // Read bytes until header found - while(incoming != ACK_HEADER && incoming != ERR_HEADER && incoming != RESPONSE_HEADER) { - if((unsigned long)(millis() - time) > TIMEOUT_MS) return COMMUNICATION_TIMEOUT; - if (serial->available() > 0) incoming = serial->read(); - } - // Read remaining bytes (PACKET_LENGTH - 1) - while (serial->available() < 6) - if ((unsigned long)(millis() - time) > TIMEOUT_MS) return COMMUNICATION_TIMEOUT; - - // Store bytes - response[0] = incoming; - for (uint8_t i = 1; i < PACKET_LENGTH; i++) - response[i] = serial->read(); - - return 0; -} - -uint8_t uFR::EXTPacket::read(uint8_t *response, uint8_t length) { - unsigned long time = millis(); - uint8_t i = 0; - int b; - // Read length bytes - while (i < length) { - if ((unsigned long)(millis() - time) > TIMEOUT_MS) return COMMUNICATION_TIMEOUT_EXT; - b = serial->read(); - if(b != -1) { - response[i] = b; - i++; - } - } - // Read and check checksum byte (length + 1) - while (serial->available() < 1) - if ((unsigned long)(millis() - time) > TIMEOUT_MS) return COMMUNICATION_TIMEOUT_EXT; - if (serial->read() != checksum(response, length)) return CHKSUM_ERROR_EXT; - - return 0; -} - -void uFR::Packet::copyData(uint8_t *array, uint16_t start, uint16_t length) { - for (uint16_t i = 0; i < length; i++) - array[i + start] = data[i]; -} - -void uFR::Packet::copyDataReverse(uint8_t *array, uint16_t start, uint16_t length) { - for (uint16_t i = 0; i < length; i++) - array[i + start] = data[length - i - 1]; -} \ No newline at end of file diff --git a/lib/arduino_ufr/keywords.txt b/lib/arduino_ufr/keywords.txt deleted file mode 100644 index 5ab05d0d3530788db9612be50d02944fc1747785..0000000000000000000000000000000000000000 --- a/lib/arduino_ufr/keywords.txt +++ /dev/null @@ -1,30 +0,0 @@ -####################################### -# Syntax Coloring Map For uFR -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -uFR KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -hardReset KEYWORD2 -setRedLED KEYWORD2 -getReaderType KEYWORD2 -getReaderSerial KEYWORD2 -setReaderKey KEYWORD2 -getUserData KEYWORD2 -setUserData KEYWORD2 -softReset KEYWORD2 -getCardIDSimple KEYWORD2 -getCardID KEYWORD2 -getCardTypeDLogic KEYWORD2 -TypeDLogicToString KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### \ No newline at end of file diff --git a/lib/arduino_ufr/uFR.cpp b/lib/arduino_ufr/uFR.cpp deleted file mode 100644 index 77f55b510d9d06588a9af264e2b3173bdf1daff8..0000000000000000000000000000000000000000 --- a/lib/arduino_ufr/uFR.cpp +++ /dev/null @@ -1,321 +0,0 @@ -#include "uFR.h" - -#define PROCESS_EXT(length) \ -EXTPacket extPacket(length); \ -if (extPacket.getErrorCode() != 0) return extPacket.getErrorCode() - -#define PROCESS_ACK(command) \ -CommonPacket ackPacket(PACKET_ACK, command); \ -if (ackPacket.getErrorCode() != 0) return ackPacket.getErrorCode() - -#define PROCESS_RSP(command) \ -CommonPacket rspPacket(PACKET_RSP, command); \ -if (rspPacket.getErrorCode() != 0) return rspPacket.getErrorCode() - -#ifdef ESP32 -uFR::uFR(uint8_t uart) : readerSerial(HardwareSerial(uart)) { - setPacketSerial(); -} - -uFR::uFR(uint8_t uart, uint8_t reset) : readerSerial(HardwareSerial(uart)) { - pinMode(reset, OUTPUT); - digitalWrite(reset, HIGH); - resetPin = reset; - setPacketSerial(); -} - -#else - uFR::uFR(uint8_t rx, uint8_t tx) : readerSerial(SoftwareSerial(rx, tx)) { - setPacketSerial(); -} - -uFR::uFR(uint8_t rx, uint8_t tx, uint8_t reset) : readerSerial(SoftwareSerial(rx, tx)) { - pinMode(reset, OUTPUT); - digitalWrite(reset, HIGH); - resetPin = reset; - setPacketSerial(); -} -#endif - -void uFR::setPacketSerial() { - Packet::serial = &readerSerial; -} - -void uFR::begin(unsigned long baud) { - if(resetPin != 0) { - delay(10); - digitalWrite(resetPin, LOW); - } - readerSerial.begin(baud); -} - -void uFR::hardReset() { - if (resetPin != 0) { - digitalWrite(resetPin, HIGH); - delay(10); - digitalWrite(resetPin, LOW); - } -} - -void uFR::flushSerial() { - while (readerSerial.available() > 0) - readerSerial.read(); -} - -void uFR::sendPacketCMD(uint8_t command, uint8_t EXTlength, uint8_t par0, uint8_t par1) { - uint8_t packet[PACKET_LENGTH] = { - CMD_HEADER, - command, - CMD_TRAILER, - EXTlength, - par0, - par1, - Packet::checksum(packet) - }; - readerSerial.write(packet, PACKET_LENGTH); -} - -void uFR::sendPacketEXT(uint8_t *packet, uint8_t length) { - readerSerial.write(packet, length); - readerSerial.write(Packet::checksum(packet, length)); -} - -// ======================================================================================== - -uint8_t uFR::setRedLED(bool state) { - flushSerial(); - sendPacketCMD(RED_LIGHT_CONTROL, 0, state); - PROCESS_RSP(RED_LIGHT_CONTROL); - return 0; -} - -uint8_t uFR::setUserInterfaceSignal(uint8_t light_signal_mode, uint8_t beep_signal_mode) { - flushSerial(); - sendPacketCMD(USER_INTERFACE_SIGNAL, 0, light_signal_mode, beep_signal_mode); - PROCESS_RSP(USER_INTERFACE_SIGNAL); - return 0; -} - -uint8_t uFR::setGreenLightBlinking(bool state) { - flushSerial(); - sendPacketCMD(SET_LED_CONFIG, 0, state); - PROCESS_RSP(SET_LED_CONFIG); - return 0; -} - - - -uint8_t uFR::getReaderType(uint8_t readerType[READER_TYPE_SIZE]) { - flushSerial(); - sendPacketCMD(GET_READER_TYPE); - PROCESS_RSP(GET_READER_TYPE); - PROCESS_EXT(READER_TYPE_SIZE); - extPacket.copyDataReverse(readerType, 0, READER_TYPE_SIZE); - return 0; -} - -uint8_t uFR::getReaderSerial(uint8_t readerSerialNumber[READER_SERIAL_SIZE]) { - flushSerial(); - sendPacketCMD(GET_READER_SERIAL); - PROCESS_RSP(GET_READER_SERIAL); - PROCESS_EXT(READER_SERIAL_SIZE); - extPacket.copyDataReverse(readerSerialNumber, 0, READER_SERIAL_SIZE); - return 0; -} - -uint8_t uFR::setReaderKey(uint8_t key[READER_KEY_SIZE], uint8_t index) { - flushSerial(); - sendPacketCMD(READER_KEY_WRITE, READER_KEY_SIZE + 1, index); - PROCESS_ACK(READER_KEY_WRITE); - sendPacketEXT(key, READER_KEY_SIZE); - PROCESS_RSP(READER_KEY_WRITE); - return 0; -} - -uint8_t uFR::getUserData(uint8_t data[USER_DATA_SIZE]) { - flushSerial(); - sendPacketCMD(USER_DATA_READ); - PROCESS_RSP(USER_DATA_READ); - PROCESS_EXT(USER_DATA_SIZE); - extPacket.copyData(data, 0, USER_DATA_SIZE); - return 0; -} - -uint8_t uFR::setUserData(uint8_t data[USER_DATA_SIZE]) { - flushSerial(); - sendPacketCMD(USER_DATA_WRITE, USER_DATA_SIZE + 1); - PROCESS_ACK(USER_DATA_WRITE); - sendPacketEXT(data, USER_DATA_SIZE); - PROCESS_RSP(USER_DATA_WRITE); - return 0; -} - -uint8_t uFR::softReset() { - flushSerial(); - sendPacketCMD(SELF_RESET); - PROCESS_RSP(SELF_RESET); - return 0; -} - -uint8_t uFR::getCardIDSimple(uint8_t cardID[CARD_ID_SIZE], uint8_t *cardType) { - flushSerial(); - sendPacketCMD(GET_CARD_ID); - PROCESS_RSP(GET_CARD_ID); - PROCESS_EXT(CARD_ID_SIZE); - extPacket.copyDataReverse(cardID, 0, CARD_ID_SIZE); - if (cardType) *cardType = rspPacket[PAR0_BYTE]; - return 0; -} - -uint8_t uFR::getCardID(uint8_t cardID[CARD_ID_EX_SIZE], uint8_t *length, uint8_t *cardType) { - flushSerial(); - sendPacketCMD(GET_CARD_ID_EX); - PROCESS_RSP(GET_CARD_ID_EX); - PROCESS_EXT(CARD_ID_EX_SIZE); - //extPacket.copyDataReverse(cardID, 0, rspPacket[PAR1_BYTE]); - //extPacket.copyData is used to make the order of bytes of cardID as on the card - extPacket.copyData(cardID, 0, rspPacket[PAR1_BYTE]); - if (cardType) *cardType = rspPacket[PAR0_BYTE]; - if (length) *length = rspPacket[PAR1_BYTE]; - return 0; -} - -uint8_t uFR::getDesfireUID(uint8_t cardID[CARD_ID_EX_SIZE], uint8_t *length, uint8_t InternalAESKeyIndexReader, uint32_t AID, uint8_t key_number_in_application) { - uint8_t desfire_uid_size = 7; //as I can see in protocol, there are no length definitions. UID is always 7B. - *length = desfire_uid_size; - uint8_t data_to_send[22]; - memset(data_to_send, 0, 22); - data_to_send[0]=1; - data_to_send[1]=InternalAESKeyIndexReader; - data_to_send[18] = *((uint8_t *)&AID); - data_to_send[19] = *((uint8_t *)&AID+1); - data_to_send[20] = *((uint8_t *)&AID+2); - data_to_send[21]= key_number_in_application; - -/* - Serial.print("data_to_send = "); - for(int i;i<22;i++) - { - Serial.print(data_to_send[i], HEX); - Serial.print(" "); - } - Serial.print("\n"); -*/ - - flushSerial(); - sendPacketCMD(GET_DESFIRE_UID, 23); - PROCESS_ACK(GET_DESFIRE_UID); - sendPacketEXT(data_to_send, 22); - PROCESS_RSP(GET_DESFIRE_UID); -/* - Serial.print("RSP:"); - for(int i;i<7;++i) - { - Serial.print(rspPacket[i], HEX); - Serial.print(" "); - } - Serial.print("\n"); - -*/ - if(rspPacket[3]!=12) - { - return PARAMETERS_ERROR; - } - PROCESS_EXT(11); - extPacket.copyData(cardID, 0, desfire_uid_size); - return 0; -} - -uint8_t uFR::getDesfireUIDPK(uint8_t cardID[CARD_ID_EX_SIZE], uint8_t *length, uint8_t *AESKey, uint32_t AID, uint8_t key_number_in_application) { - uint8_t desfire_uid_size = 7; //as I can see in protocol, there are no length definitions. UID is always 7B. - *length = desfire_uid_size; - uint8_t data_to_send[22]; - memset(data_to_send, 0, 22); - data_to_send[0]=0; - data_to_send[1]=0; - memcpy(&data_to_send[2], AESKey, 16); - data_to_send[18] = *((uint8_t *)&AID); - data_to_send[19] = *((uint8_t *)&AID+1); - data_to_send[20] = *((uint8_t *)&AID+2); - data_to_send[21]= key_number_in_application; - -/* - Serial.print("data_to_send = "); - for(int i;i<22;i++) - { - Serial.print(data_to_send[i], HEX); - Serial.print(" "); - } - Serial.print("\n"); -*/ - - flushSerial(); - sendPacketCMD(GET_DESFIRE_UID, 23); - PROCESS_ACK(GET_DESFIRE_UID); - sendPacketEXT(data_to_send, 22); - PROCESS_RSP(GET_DESFIRE_UID); -/* - Serial.print("RSP:"); - for(int i;i<7;++i) - { - Serial.print(rspPacket[i], HEX); - Serial.print(" "); - } - Serial.print("\n"); - -*/ - if(rspPacket[3]!=12) - { - return PARAMETERS_ERROR; - } - PROCESS_EXT(11); - extPacket.copyData(cardID, 0, desfire_uid_size); - return 0; -} - -uint8_t uFR::getCardTypeDLogic(uint8_t *cardType) { - flushSerial(); - sendPacketCMD(GET_DLOGIC_CARD_TYPE); - PROCESS_RSP(GET_DLOGIC_CARD_TYPE); - *cardType = rspPacket[PAR0_BYTE]; - return 0; -} - -// ======================================================================================== - -// Needs beautifying -const char * TypeDLogicToString(uint8_t type) { - switch (type) { - case 0x00: return "TAG_UNKNOWN"; break; - case 0x01: return "DL_MIFARE_ULTRALIGHT"; break; - case 0x02: return "DL_MIFARE_ULTRALIGHT_EV1_11"; break; - case 0x03: return "DL_MIFARE_ULTRALIGHT_EV1_21"; break; - case 0x04: return "DL_MIFARE_ULTRALIGHT_C"; break; - case 0x05: return "DL_NTAG_203"; break; - case 0x06: return "DL_NTAG_210"; break; - case 0x07: return "DL_NTAG_212"; break; - case 0x08: return "DL_NTAG_213"; break; - case 0x09: return "DL_NTAG_215"; break; - case 0x0A: return "DL_NTAG_216"; break; - case 0x0B: return "DL_MIKRON_MIK640D"; break; - case 0x0C: return "NFC_T2T_GENERIC"; break; - case 0x20: return "DL_MIFARE_MINI"; break; - case 0x21: return "DL_MIFARE_CLASSIC_1K"; break; - case 0x22: return "DL_MIFARE_CLASSIC_4K"; break; - case 0x23: return "DL_MIFARE_PLUS_S_2K"; break; - case 0x24: return "DL_MIFARE_PLUS_S_4K"; break; - case 0x25: return "DL_MIFARE_PLUS_X_2K"; break; - case 0x26: return "DL_MIFARE_PLUS_X_4K"; break; - case 0x27: return "DL_MIFARE_DESFIRE"; break; - case 0x28: return "DL_MIFARE_DESFIRE_EV1_2K"; break; - case 0x29: return "DL_MIFARE_DESFIRE_EV1_4K"; break; - case 0x2A: return "DL_MIFARE_DESFIRE_EV1_8K"; break; - case 0x2B: return "DL_MIFARE_DESFIRE_EV2_2K"; break; - case 0x2C: return "DL_MIFARE_DESFIRE_EV2_4K"; break; - case 0x2D: return "DL_MIFARE_DESFIRE_EV2_8K"; break; - case 0x40: return "DL_GENERIC_ISO14443_4"; break; - case 0x41: return "DL_GENERIC_ISO14443_TYPE_B"; break; - case 0x80: return "DL_IMEI_UID"; break; - default: return "TYPE_ERROR"; - } -} diff --git a/lib/arduino_ufr/uFR.h b/lib/arduino_ufr/uFR.h deleted file mode 100644 index 1dc7711d8649e341d6ecc10f3199fdcdeade694e..0000000000000000000000000000000000000000 --- a/lib/arduino_ufr/uFR.h +++ /dev/null @@ -1,279 +0,0 @@ -/// Digital Logic uFR NFC card reader library for Arduino -/// -/// Based on IS21 DLogic serial communication protocol -/// -/// Version: 1.0.0 -/// 2018 Marko Djordjevic - - -#include -#ifdef ESP32 -#include -#else -#include -#endif - -#define TIMEOUT_MS 100 // Debugging - -// Communication constants -#define MAX_PACKET_LENGTH 64 -#define HEADER_BYTE 0 -#define CMD_BYTE 1 -#define TRAILER_BYTE 2 -#define EXT_LENGTH_BYTE 3 -#define PAR0_BYTE 4 -#define PAR1_BYTE 5 -#define CHKSUM_BYTE 6 -#define PACKET_LENGTH 7 -#define CMD_HEADER 0x55 -#define ACK_HEADER 0xAC -#define RESPONSE_HEADER 0xDE -#define ERR_HEADER 0xEC -#define CMD_TRAILER 0xAA -#define ACK_TRAILER 0xCA -#define RESPONSE_TRAILER 0xED -#define ERR_TRAILER 0xCE - -// CMD codes -#define GET_READER_TYPE 0x10 -#define GET_READER_SERIAL 0x11 -#define READER_KEY_WRITE 0x12 -#define GET_CARD_ID 0x13 -#define LINEAR_READ 0x14 -#define LINEAR_WRITE 0x15 -#define BLOCK_READ 0x16 -#define BLOCK_WRITE 0x17 -#define BLOCK_IN_SECTOR_READ 0x18 -#define BLOCK_IN_SECTOR_WRITE 0x19 -#define SECTOR_TRAILER_WRITE 0X1A -#define USER_DATA_READ 0x1B -#define USER_DATA_WRITE 0x1C -#define VALUE_BLOCK_READ 0x1D -#define VALUE_BLOCK_WRITE 0x1E -#define VALUE_BLOCK_IN_SECTOR_READ 0x1F -#define VALUE_BLOCK_IN_SECTOR_WRITE 0x20 -#define VALUE_BLOCK_INC 0x21 -#define VALUE_BLOCK_DEC 0x22 -#define VALUE_BLOCK_IN_SECTOR_INC 0x23 -#define VALUE_BLOCK_IN_SECTOR_DEC 0x24 -#define LINEAR_FORMAT_CARD 0x25 -#define USER_INTERFACE_SIGNAL 0x26 -#define GET_CARD_ID_EX 0x2C -#define SECTOR_TRAILER_WRITE_UNSAFE 0x2F -#define SELF_RESET 0x30 -#define GET_DLOGIC_CARD_TYPE 0x3C -#define SET_CARD_ID_SEND_CONF 0x3D -#define GET_CARD_ID_SEND_CONF 0x3E -#define SET_LED_CONFIG 0x6E -#define SET_UART_SPEED 0x70 -#define RED_LIGHT_CONTROL 0x71 -#define GET_DESFIRE_UID 0x80 - -// ERR codes -#define OK 0x00 -#define COMMUNICATION_ERROR 0x01 -#define COMMUNICATION_TIMEOUT 0x50 -#define COMMUNICATION_TIMEOUT_EXT 0x51 -#define CHKSUM_ERROR 0x02 -#define CHKSUM_ERROR_RESPONSE 0x52 -#define CHKSUM_ERROR_EXT 0x53 -#define READING_ERROR 0x03 -#define WRITING_ERROR 0x04 -#define BUFFER_OVERFLOW 0x05 -#define MAX_ADDRESS_EXCEEDED 0x06 -#define MAX_KEY_INDEX_EXCEEDED 0x07 -#define NO_CARD 0x08 -#define COMMAND_NOT_SUPPORTED 0x09 -#define FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER 0x0A -#define ADDRESSED_BLOCK_IS_NOT_SECTOR_TRAILER 0x0B -#define WRONG_ADDRESS_MODE 0x0C -#define WRONG_ACCESS_BITS_VALUES 0x0D -#define AUTH_ERROR 0x0E -#define PARAMETERS_ERROR 0x0F -#define WRITE_VERIFICATION_ERROR 0x70 -#define BUFFER_SIZE_EXCEEDED 0x71 -#define VALUE_BLOCK_INVALID 0x72 -#define VALUE_BLOCK_ADDR_INVALID 0x73 -#define VALUE_BLOCK_MANIPULATION_ERROR 0x74 - - - -// MIFARE CLASSIC type id's: -#define MIFARE_CLASSIC_1k 0x08 -#define MF1ICS50 0x08 -#define SLE66R35 0x88 // Infineon = Mifare Classic 1k -#define MIFARE_CLASSIC_4k 0x18 -#define MF1ICS70 0x18 -#define MIFARE_CLASSIC_MINI 0x09 -#define MF1ICS20 0x09 - -// DLOGIC CARD TYPE -#define TAG_UNKNOWN 0 -#define DL_MIFARE_ULTRALIGHT 0x01 -#define DL_MIFARE_ULTRALIGHT_EV1_11 0x02 -#define DL_MIFARE_ULTRALIGHT_EV1_21 0x03 -#define DL_MIFARE_ULTRALIGHT_C 0x04 -#define DL_NTAG_203 0x05 -#define DL_NTAG_210 0x06 -#define DL_NTAG_212 0x07 -#define DL_NTAG_213 0x08 -#define DL_NTAG_215 0x09 -#define DL_NTAG_216 0x0A -#define DL_MIKRON_MIK640D 0x0B -#define NFC_T2T_GENERIC 0x0C -#define DL_MIFARE_MINI 0x20 -#define DL_MIFARE_CLASSIC_1K 0x21 -#define DL_MIFARE_CLASSIC_4K 0x22 -#define DL_MIFARE_PLUS_S_2K 0x23 -#define DL_MIFARE_PLUS_S_4K 0x24 -#define DL_MIFARE_PLUS_X_2K 0x25 -#define DL_MIFARE_PLUS_X_4K 0x26 -#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_UNKNOWN_ISO_14443_4 0x40 -#define DL_GENERIC_ISO14443_4 0x40 -#define DL_GENERIC_ISO14443_TYPE_B 0x41 -#define DL_IMEI_UID 0x80 - -// Function return sizes in bytes -#define READER_TYPE_SIZE 4 -#define READER_SERIAL_SIZE 4 -#define READER_KEY_SIZE 6 -#define USER_DATA_SIZE 16 -#define CARD_ID_SIZE 4 -#define CARD_ID_EX_SIZE 10 - - -// USER_INTERFACE_SIGNAL - -#define NONE 0 -#define LONG_GREEN 1 -#define SHORT_BEEP 1 -#define LONG_RED 2 -#define LONG_BEEP 2 -#define ALTERNATNG_LIGHT 3 -#define DOUBLE_SHORT_BEEP 3 -#define FLASH_LIGHT 4 -#define TRIPLE_SHORT_BEEP 4 -#define TRIPLET_MELODY 5 - -enum PacketType { - PACKET_ACK = ACK_HEADER, - PACKET_ERR = ERR_HEADER, - PACKET_RSP = RESPONSE_HEADER -}; - -class uFR { - public: - #ifdef ESP32 - uFR(uint8_t uart); - uFR(uint8_t uart, uint8_t reset); - #else - uFR(uint8_t rx, uint8_t tx); - uFR(uint8_t rx, uint8_t tx, uint8_t reset); - #endif - - - void begin(unsigned long baud = 115200); // Resets the reader if reset pin is used; make sure to add delay! - inline void end() { readerSerial.end(); } - // Resets through reset pin (if declared) - void hardReset(); // Make sure to add delay! - - // All following functions return error codes after execution - // If 0 is returned, the function has executed normally - - // Controls the reader's red LED. Green LED stops flashing while red LED is on - uint8_t setRedLED(bool state); - - uint8_t setUserInterfaceSignal(uint8_t light_signal_mode = 0, uint8_t beep_signal_mode = 0); - - uint8_t setGreenLightBlinking(bool state); - - uint8_t getReaderType(uint8_t readerType[READER_TYPE_SIZE]); - - uint8_t getReaderSerial(uint8_t readerSerialNumber[READER_SERIAL_SIZE]); - - // Writes MIFARE key into reader EEPROM, at index location (0-31) - uint8_t setReaderKey(uint8_t key[READER_KEY_SIZE], uint8_t index); - - // User data are 16 bytes form internal EEPROM - uint8_t getUserData(uint8_t data[USER_DATA_SIZE]); - - uint8_t setUserData(uint8_t data[USER_DATA_SIZE]); - - // Sends reset command (add 2s delay!) - uint8_t softReset(); - - // Gets card UID that is present in reader's RF field. Obsolete - uint8_t getCardIDSimple(uint8_t cardID[CARD_ID_SIZE], uint8_t *cardType = nullptr); - - // Length - UID size in bytes (4, 7 or 10) - uint8_t getCardID(uint8_t cardID[CARD_ID_EX_SIZE], uint8_t *length = nullptr, uint8_t *cardType = nullptr); - - // Gets Desfire UID - uint8_t getDesfireUID(uint8_t cardID[CARD_ID_EX_SIZE], uint8_t *length = nullptr, uint8_t InternalAESKeyIndexReader = 0, uint32_t AID = 0, uint8_t key_number_in_application = 0); - - // Gets Desfire UID with provided AES key - uint8_t getDesfireUIDPK(uint8_t cardID[CARD_ID_EX_SIZE], uint8_t *length, uint8_t *AESKey = nullptr, uint32_t AID = 0, uint8_t key_number_in_application = 0); - - // Card type per DLogic enumeration - uint8_t getCardTypeDLogic(uint8_t *cardType); - - // ------------------------------------------------------------- - - static const char * TypeDLogicToString(uint8_t type); - - private: - #ifdef ESP32 - HardwareSerial readerSerial; - #else - SoftwareSerial readerSerial; - #endif - uint8_t resetPin = 0; - void flushSerial(); // Flush serial input buffer - - void sendPacketCMD(uint8_t command, uint8_t EXTlength = 0, uint8_t par0 = 0, uint8_t par1 = 0); - void sendPacketEXT(uint8_t *packet, uint8_t length); - - void setPacketSerial (); // Sets static protected packet serial pointer - - class Packet { - public: - static uint8_t checksum(uint8_t *packet, uint8_t size = PACKET_LENGTH - 1); - inline uint8_t getErrorCode() { return errorCode; } - inline uint8_t getLength() { return length; } - void copyData(uint8_t *array, uint16_t start, uint16_t length); - void copyDataReverse(uint8_t *array, uint16_t start, uint16_t length); - inline uint8_t operator[] (uint8_t i) { return data[i]; } - friend void uFR::setPacketSerial (); - protected: - #ifdef ESP32 - static HardwareSerial *serial; - #else - static SoftwareSerial *serial; - #endif - uint8_t errorCode = 0; - uint8_t length = PACKET_LENGTH; - uint8_t *data; - }; - class CommonPacket : public Packet { - // Returns error code - uint8_t read(uint8_t response[PACKET_LENGTH]); - uint8_t validate(uint8_t packet[PACKET_LENGTH], PacketType type, uint8_t command); - public: - CommonPacket(PacketType type, uint8_t command); - ~CommonPacket(); - }; - class EXTPacket : public Packet { - // Returns error code, reads AND validates - uint8_t read(uint8_t *response, uint8_t length); - public: - EXTPacket(uint8_t length); - ~EXTPacket(); - }; -}; diff --git a/lib/include/uFCoder.h b/lib/include/uFCoder.h deleted file mode 100644 index 81ff93106b750bafb9d5d671b9bbeadfaf8f3d6b..0000000000000000000000000000000000000000 --- a/lib/include/uFCoder.h +++ /dev/null @@ -1,3607 +0,0 @@ -/* - * uFCoder.h - * - * library version: 5.0.5 - * - * Created on: 2009-01-14 - * Last edited: 2019-04-04 - * - * Author: D-Logic - */ - -#ifndef uFCoder_H_ -#define uFCoder_H_ - -#include -#include - -#define IN -#define OUT -#define VAR - - -//////////////////////////////////////////////////////////////////// -/** - * Type for representing null terminated char array ( aka C-String ) - * Array is always one byte longer ( for null character ) then string - * Memory space for array must be allocated before use. - */ -typedef const char * c_string; -//////////////////////////////////////////////////////////////////// - -#ifdef _WIN32 -// WINDOWS -# if defined(DL_CREATE_STATIC_LIB) || defined(DL_USE_STATIC_LIB) -# define DL_API -# else -# ifndef DL_uFC_EXPORTS -# ifdef _WIN_IOT -# define DL_API __declspec(dllimport) // Win IoT -# else -# define DL_API /*__declspec(dllimport) */ __stdcall // STDCALL - GCC - .NET -# endif // _WIN_IOT -# else -# define DL_API __declspec(dllexport) __stdcall -# endif // DL_uFC_EXPORTS -# endif // DL_CREATE_STATIC_LIB -#else -// Linux & MAC OS -# define DL_API -#endif // _WIN32 - -#if defined(DL_uFC_EXPORTS) || defined(DL_CREATE_STATIC_LIB) - typedef struct S_UFR_HANDLE * UFR_HANDLE; -#else - typedef void * UFR_HANDLE; -#endif - -// MIFARE CLASSIC type id's: -#define MIFARE_CLASSIC_1k 0x08 -#define MF1ICS50 0x08 -#define SLE66R35 0x88 // Infineon = Mifare Classic 1k -#define MIFARE_CLASSIC_4k 0x18 -#define MF1ICS70 0x18 -#define MIFARE_CLASSIC_MINI 0x09 -#define MF1ICS20 0x09 - -//DLOGIC CARD TYPE -#define TAG_UNKNOWN 0 -#define DL_MIFARE_ULTRALIGHT 0x01 -#define DL_MIFARE_ULTRALIGHT_EV1_11 0x02 -#define DL_MIFARE_ULTRALIGHT_EV1_21 0x03 -#define DL_MIFARE_ULTRALIGHT_C 0x04 -#define DL_NTAG_203 0x05 -#define DL_NTAG_210 0x06 -#define DL_NTAG_212 0x07 -#define DL_NTAG_213 0x08 -#define DL_NTAG_215 0x09 -#define DL_NTAG_216 0x0A -#define DL_MIKRON_MIK640D 0x0B -#define NFC_T2T_GENERIC 0x0C -#define DL_NT3H_1101 0x0D -#define DL_NT3H_1201 0x0E -#define DL_NT3H_2111 0x0F -#define DL_NT3H_2211 0x10 - -#define DL_MIFARE_MINI 0x20 -#define DL_MIFARE_CLASSIC_1K 0x21 -#define DL_MIFARE_CLASSIC_4K 0x22 -#define DL_MIFARE_PLUS_S_2K_SL0 0x23 -#define DL_MIFARE_PLUS_S_4K_SL0 0x24 -#define DL_MIFARE_PLUS_X_2K_SL0 0x25 -#define DL_MIFARE_PLUS_X_4K_SL0 0x26 -#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_PLUS_S_2K_SL1 0x2E -#define DL_MIFARE_PLUS_X_2K_SL1 0x2F -#define DL_MIFARE_PLUS_EV1_2K_SL1 0x30 -#define DL_MIFARE_PLUS_X_2K_SL2 0x31 -#define DL_MIFARE_PLUS_S_2K_SL3 0x32 -#define DL_MIFARE_PLUS_X_2K_SL3 0x33 -#define DL_MIFARE_PLUS_EV1_2K_SL3 0x34 -#define DL_MIFARE_PLUS_S_4K_SL1 0x35 -#define DL_MIFARE_PLUS_X_4K_SL1 0x36 -#define DL_MIFARE_PLUS_EV1_4K_SL1 0x37 -#define DL_MIFARE_PLUS_X_4K_SL2 0x38 -#define DL_MIFARE_PLUS_S_4K_SL3 0x39 -#define DL_MIFARE_PLUS_X_4K_SL3 0x3A -#define DL_MIFARE_PLUS_EV1_4K_SL3 0x3B - -#define DL_UNKNOWN_ISO_14443_4 0x40 -#define DL_GENERIC_ISO14443_4 0x40 -#define DL_GENERIC_ISO14443_4_TYPE_B 0x41 -#define DL_GENERIC_ISO14443_3_TYPE_B 0x42 -#define DL_IMEI_UID 0x80 - -// ST Product ID-s: -#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 - -// DLJavaCardTypes: -#define DLSigner81 0xA0 -#define DLSigner22 0xA1 -#define DLSigner30 0xA2 -#define DLSigner10 0xA3 -#define DLSigner145 0xAA - -// DLJavaCardSignerAlgorithmTypes: -enum E_SIGNER_CIPHERS { - SIG_CIPHER_RSA = 0, - SIG_CIPHER_ECDSA, - - SIG_CIPHER_MAX_SUPPORTED -}; - -enum E_SIGNER_PADDINGS { - PAD_NULL = 0, - PAD_PKCS1, - - SIG_PAD_MAX_SUPPORTED -}; - -enum E_SIGNER_DIGESTS { - ALG_NULL = 0, - ALG_SHA, - ALG_SHA_256, - ALG_SHA_384, - ALG_SHA_512, - ALG_SHA_224, - - SIG_DIGEST_MAX_SUPPORTED -}; - -enum E_KEY_TYPES { - TYPE_RSA_PRIVATE = 0, - TYPE_RSA_CRT_PRIVATE, - TYPE_EC_F2M_PRIVATE, - TYPE_EC_FP_PRIVATE -}; - -enum E_OBJ_TYPES { - OBJ_TYPE_RSA_CERT = 0, - OBJ_TYPE_EC_CERT, - OBJ_TYPE_CA_CERT, - - OBJ_TYPES_COUNT -}; - -// JCApp instructions: -#define INS_SET_RSA_PRIKEY 0x51 -#define INS_GEN_RSA_KEY_PAIR 0x52 -#define INS_GET_RSA_PUBKEY_MODULUS 0x53 -#define INS_GET_RSA_PUBKEY_EXPONENT 0x54 -#define INS_DEL_RSA_KEY_PAIR 0x5F -#define INS_SET_EC_PRIKEY 0x61 -#define INS_GEN_EC_KEY_PAIR 0x62 -#define INS_GET_EC_PUBKEY 0x63 -#define INS_GET_EC_FIELD 0x64 -#define INS_GET_EC_AB 0x65 -#define INS_GET_EC_G 0x66 -#define INS_GET_EC_RK_SIZE 0x67 -#define INS_DEL_EC_KEY_PAIR 0x6F -#define INS_GET_SIGNATURE 0x71 -#define INS_PUT_OBJ 0x31 -#define INS_PUT_OBJ_SUBJECT 0x32 -#define INS_INVALIDATE_CERT 0x33 -#define INS_GET_OBJ 0x41 -#define INS_GET_OBJ_ID 0x42 -#define INS_GET_OBJ_SUBJECT 0x43 -#define INS_LOGIN 0x20 -#define INS_GET_PIN_TRIES_REMAINING 0x21 -#define INS_PIN_CHANGE 0x22 -#define INS_PIN_UNBLOCK 0x23 - -// JCApp DL_AID -#define DL_SIZEOF_SZ(x) (sizeof(x) - 1) -#define DL_AID_RID_PLUS "\xF0""DLogic" -#define DL_AID_PIX "\x00\x01" -#define DL_AID AID_RID_PLUS AID_PIX - -// JCApp max. consts: -#define JC_APP_MAX_KEY_INDEX ((3) - 1) -#define JC_APP_MAX_CA_CERT_INDEX ((12) - 1) -#define JC_APP_MAX_ID_SIZE 253 -#define JC_APP_MAX_SUBJECT_SIZE 255 -#define JC_APP_MAX_SIGNATURE_LEN 256 -#define JC_APP_MAX_PIN_LENGTH 8 - -// MIFARE CLASSIC Authentication Modes: -enum MIFARE_AUTHENTICATION -{ - MIFARE_AUTHENT1A = 0x60, - MIFARE_AUTHENT1B = 0x61, -}; - -//MIFARE PLUS AES Authentication Modes: -enum MIFARE_PLUS_AES_AUTHENTICATION -{ - MIFARE_PLUS_AES_AUTHENT1A = 0x80, - MIFARE_PLUS_AES_AUTHENT1B = 0x81, -}; - -// T2T authentication constants: -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 ADDRESS_MODE -{ - ADDRESS_MODE_BLOCK = 0, - ADDRESS_MODE_SECTOR, -}; - -#define MAX_UID_LEN 10 -#define ECC_SIG_LEN 32 - -// API Status Codes Type: -typedef 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, // ToDo, point 5. - 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_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, - - // NDEF error codes - 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, - - // Tag emulation mode errors: - FORBIDDEN_IN_TAG_EMULATION_MODE = 0x90, - - // FTDI errors: - 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, - - //MIFARE PLUS error codes - 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, - - // multiple units - return from the functions with ReaderList_ prefix in name - UFR_DEVICE_WRONG_HANDLE = 0x100, - UFR_DEVICE_INDEX_OUT_OF_BOUND, - UFR_DEVICE_ALREADY_OPENED, - UFR_DEVICE_ALREADY_CLOSED, - UFR_DEVICE_IS_NOT_CONNECTED, - - // Originality Check Error Codes: - UFR_NOT_NXP_GENUINE = 0x200, - UFR_OPEN_SSL_DYNAMIC_LIB_FAILED, - UFR_OPEN_SSL_DYNAMIC_LIB_NOT_FOUND, - - // DESFIRE Card Status Error Codes: - READER_ERROR = 0xBB7, // 2999 [dec] - NO_CARD_DETECTED = 0xBB8, // 3000 [dec] - CARD_OPERATION_OK = 0xBB9, // 3001 [dec] - WRONG_KEY_TYPE = 0xBBA, // 3002 [dec] - KEY_AUTH_ERROR = 0xBBB, // 3003 [dec] - CARD_CRYPTO_ERROR = 0xBBC, // 3004 [dec] - READER_CARD_COMM_ERROR = 0xBBD, // 3005 [dec] - PC_READER_COMM_ERROR = 0xBBE, // 3006 [dec] - COMMIT_TRANSACTION_NO_REPLY = 0xBBF, // 3007 [dec] - COMMIT_TRANSACTION_ERROR = 0xBC0, // 3008 [dec] - - 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, - - // uFCoder library errors: - UFR_NOT_IMPLEMENTED = 0x1000, - UFR_COMMAND_FAILED, - - UFR_TIMEOUT_ERR = 0x111E, - - // JC cards APDU Error Codes: - UFR_APDU_TRANSCEIVE_ERROR = 0xAE, - UFR_APDU_JC_APP_NOT_SELECTED = 0x6000, - UFR_APDU_JC_APP_BUFF_EMPTY, - UFR_APDU_WRONG_SELECT_RESPONSE, - UFR_APDU_WRONG_KEY_TYPE, - UFR_APDU_WRONG_KEY_SIZE, - UFR_APDU_WRONG_KEY_PARAMS, - UFR_APDU_WRONG_SIGNING_ALGORITHM, - UFR_APDU_PLAIN_TEXT_MAX_SIZE_EXCEEDED, - UFR_APDU_UNSUPPORTED_KEY_SIZE, - UFR_APDU_UNSUPPORTED_ALGORITHMS, - UFR_APDU_PKI_OBJECT_NOT_FOUND, - UFR_APDU_MAX_PIN_LENGTH_EXCEEDED, - UFR_DIGEST_LENGTH_DOES_NOT_MATCH, - - // ISO7816-4 Errors (R-APDU) - 2 SW bytes returned by the card, prefixed with 0x000A: - UFR_APDU_SW_TAG = 0x000A0000, - UFR_APDU_SW_SECURITY_STATUS_NOT_SATISFIED = 0x000A6982, - UFR_APDU_SW_DATA_INVALID = 0x000A6984, - UFR_APDU_SW_CONDITIONS_NOT_SATISFIED = 0x000A6985, - UFR_APDU_SW_WRONG_DATA = 0x000A6A80, - 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_STATUS; - -//DESFIRE key settings values -#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_CHANGE 0x09 -#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_CHANGE 0x0F -#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_CHANGE 0x01 -#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_CHANGE 0x07 -#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_CHANGE_KEY_NOT_CHANGE 0x08 -#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_CHANGE_KEY_NOT_CHANGE 0x0E -#define DESFIRE_KEY_SET_CREATE_WITH_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE 0x00 -#define DESFIRE_KEY_SET_CREATE_WITHOUT_AUTH_SET_NOT_CHANGE_KEY_NOT_CHANGE 0x06 - -enum E_ASYMMETRIC_KEY_TYPES { - RSA_PRIVATE_KEY = 0, - ECDSA_PRIVATE_KEY, - - ASYMMETRIC_KEY_TYPES_NUM -}; - -typedef enum { - USER_PIN = 0, - SO_PIN, - USER_PUK, - SO_PUK -} dl_sec_code_t; - -//SAM definition -typedef enum E_SAM_HW_VER { - SAM_UNKNOWN_TYPE, - SAM_T1AD2060_AV1_MODE , - SAM_T1AD2060_AV2_MODE, - SAM_T1AR1070_AV1_MODE, - SAM_T1AR1070_AV2_MODE -}SAM_HW_TYPE; - -#ifdef __cplusplus -extern "C" -{ -#endif - -//-------------------------------------------------------------------------------------------------- - -UFR_STATUS DL_API ReaderOpen(void); - -/** - * Useful for speed up opening for non uFR basic reader type - * - * @param reader_type : 0 : auto > same as call ReaderOpen() - * 1 : uFR type (1 Mbps) - * 2 : uFR RS232 type (115200 bps) - * 3 : BASE HD uFR (XRC) type (250 Kbps) - * @return - */ -UFR_STATUS DL_API ReaderOpenByType(uint32_t reader_type); - -/** - * ReaderOpenEx() is a function for opening port with - * - * @param reader_type : 0 : auto > same as call ReaderOpen() - * 1 : uFR type (1 Mbps) - * 2 : uFR RS232 type (115200 bps) - * 3 : BASE HD uFR (XRC) type (250 Kbps) - * @param port_name : serial port name, identifier, like - * "COM3" on Window or - * "/dev/ttyS0" on Linux or - * "/dev/tty.serial1" on OS X - * or if you select FTDI - * "UN123456" if Reader have integrated FTDI interface - * "192.168.1.162:8881" IP adress:port for TCP/IP or UDP I/F - * @param port_interface : type of communication interfaces - * 0 : auto - first try FTDI than serial if no port_name defined - * 1 : try serial / virtual COM port / interfaces - * 2 : try only FTDI communication interfaces - * // Digital Logic Shields - * 10 : open Digital Logic Shields with RS232 uFReader on Raspberry Pi (serial interfaces with GPIO reset) - * 84 ('T') : TCP/IP interface - * 85 ('U') : UDP interface - * @param arg : additional settings in c-string format: - * "UNIT_OPEN_RESET_DISABLE" : do not reset the reader when opening - * "UNIT_OPEN_RESET_FORCE" : force reset the reader when opening - * "READER_ACTIVE_ON_RTS_LOW" : (default) Reset the reader when RTS is high - the reader works when RTS is low - * "READER_ACTIVE_ON_RTS_HIGH" : Reset the reader when RTS is low - the reader works when RTS is high - * "RTS_ALWAYS_HIGH" : not implemented yet - * "RTS_ALWAYS_LOW" : not implemented yet - * "RTS_DISCONNECTED" : disconnect RTS (RTS is not initiate nor use) - * - * @return - */ -UFR_STATUS DL_API ReaderOpenEx(uint32_t reader_type, - IN c_string port_name, - uint32_t port_interface, - IN void *arg); - -UFR_STATUS DL_API ReaderReset(void); -UFR_STATUS DL_API ReaderClose(void); -UFR_STATUS DL_API ReaderSoftRestart(void); -UFR_STATUS DL_API ReaderHwReset(void); -UFR_STATUS DL_API GetReaderType(IN uint32_t *lpulReaderType); -UFR_STATUS DL_API GetReaderSerialNumber(IN uint32_t *lpulSerialNumber); - -UFR_STATUS DL_API ReaderStillConnected(VAR uint32_t *connected); - -UFR_STATUS DL_API ReaderKeyWrite(IN const uint8_t *aucKey, uint8_t ucKeyIndex); -UFR_STATUS DL_API ReaderKeysLock(IN const uint8_t *password); -UFR_STATUS DL_API ReaderKeysUnlock(IN const uint8_t *password); -UFR_STATUS DL_API ReaderUISignal(uint8_t light_signal_mode, - uint8_t beep_signal_mode); -UFR_STATUS DL_API ReadUserData(OUT uint8_t *aucData); -UFR_STATUS DL_API WriteUserData(IN const uint8_t *aucData); -UFR_STATUS DL_API GetCardId(VAR uint8_t *lpucCardType, OUT uint32_t *lpulCardSerial); -UFR_STATUS DL_API BlockRead(OUT uint8_t *data, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API BlockWrite(IN const uint8_t *data, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); -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); -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); -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); -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); -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); -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); -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); -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); -UFR_STATUS DL_API ValueBlockRead(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API ValueBlockInSectorRead(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API ValueBlockWrite(int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API ValueBlockInSectorWrite(int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API ValueBlockIncrement(int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API ValueBlockInSectorIncrement(int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API ValueBlockDecrement(int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); -UFR_STATUS DL_API ValueBlockInSectorDecrement(int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API BlockRead_AKM1(OUT uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API BlockWrite_AKM1(IN const uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API BlockInSectorRead_AKM1(OUT uint8_t *data, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -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); -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); -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); -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); -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); -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); -UFR_STATUS DL_API SectorTrailerWriteUnsafe_AKM1(uint8_t addressing_mode, - uint8_t address, - IN const uint8_t *sector_trailer, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockRead_AKM1(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorRead_AKM1(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockWrite_AKM1(int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorWrite_AKM1(int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockIncrement_AKM1(int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorIncrement_AKM1(int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockDecrement_AKM1(int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorDecrement_AKM1(int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API BlockRead_AKM2(OUT uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API BlockWrite_AKM2(IN const uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API BlockInSectorRead_AKM2(OUT uint8_t *data, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -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); -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); -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); -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); -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); -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); -UFR_STATUS DL_API SectorTrailerWriteUnsafe_AKM2(uint8_t addressing_mode, - uint8_t address, - IN const uint8_t *sector_trailer, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockRead_AKM2(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorRead_AKM2(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockWrite_AKM2(int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorWrite_AKM2(int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockIncrement_AKM2(int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorIncrement_AKM2(int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockDecrement_AKM2(int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode); -UFR_STATUS DL_API ValueBlockInSectorDecrement_AKM2(int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API BlockRead_PK(OUT uint8_t *data, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API BlockWrite_PK(IN const uint8_t *data, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); -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); -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); -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); -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); -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); -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); -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); -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); -UFR_STATUS DL_API ValueBlockRead_PK(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API ValueBlockInSectorRead_PK(VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API ValueBlockWrite_PK(int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API ValueBlockInSectorWrite_PK(int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API ValueBlockIncrement_PK(int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API ValueBlockInSectorIncrement_PK(int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API ValueBlockDecrement_PK(int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API ValueBlockInSectorDecrement_PK(int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); -UFR_STATUS DL_API GetReaderHardwareVersion(VAR uint8_t *version_major, - VAR uint8_t *version_minor); -UFR_STATUS DL_API GetReaderFirmwareVersion(VAR uint8_t *version_major, - VAR uint8_t *version_minor); - -// New commands (for RTC & I2C EEPROM): -UFR_STATUS DL_API GetReaderTime(VAR uint8_t *time); -UFR_STATUS DL_API SetReaderTime(IN uint8_t *password, VAR uint8_t *time); -UFR_STATUS DL_API ChangeReaderPassword(IN uint8_t *old_password, IN uint8_t *new_password); -UFR_STATUS DL_API ReaderEepromWrite(IN uint8_t *data, uint32_t address, uint32_t size, IN uint8_t *password); -UFR_STATUS DL_API ReaderEepromRead(OUT uint8_t *data, uint32_t address, uint32_t size); - -UFR_STATUS DL_API SubscribeSector(uint8_t block_nr, uint32_t admin_serial); -UFR_STATUS DL_API SubscribeBlock(uint8_t block_nr, uint32_t admin_serial); -UFR_STATUS DL_API BusAdminCardMake(uint32_t serial, IN uint8_t *password); - -UFR_STATUS DL_API GetReaderSerialDescription(OUT uint8_t pSerialDescription[8]); - -// New since version 2.0: -UFR_STATUS DL_API GetBuildNumber(VAR uint8_t *build); -UFR_STATUS DL_API GetCardIdEx(VAR uint8_t *lpucSak, OUT uint8_t *aucUid, - VAR uint8_t *lpucUidSize); -UFR_STATUS DL_API GetLastCardIdEx(VAR uint8_t *lpucSak, OUT uint8_t *aucUid, - VAR uint8_t *lpucUidSize); -//------------------------------------------------------------------------------ -//Multi-card (anti collision) mode: -//------------------------------------------------------------------------------ -UFR_STATUS DL_API EnableAntiCollision(void); -UFR_STATUS DL_API DisableAntiCollision(void); -UFR_STATUS DL_API EnumCards(VAR uint8_t *lpucCardsNumber, OUT uint8_t *lpucUidListSize); // Card pointer is on the first card in list -UFR_STATUS DL_API ListCards(OUT uint8_t *aucUidList, uint8_t ucUidListSize); // Before calling this function you must call EnumCards() first. -UFR_STATUS DL_API SelectCard(IN const uint8_t *aucUid, uint8_t ucUidSize, OUT uint8_t *lpucSelctedCardType); -UFR_STATUS DL_API DeslectCard(void); -UFR_STATUS DL_API GetAntiCollisionStatus(VAR int8_t *lpcIsAntiCollEnabled, VAR int8_t *lpcIsAnyCardSelected); -//------------------------------------------------------------------------------ -UFR_STATUS DL_API GetDlogicCardType(VAR uint8_t *lpucCardType); -UFR_STATUS DL_API GetNfcT2TVersion(OUT uint8_t lpucVersionResponse[8]); -UFR_STATUS DL_API GetCardSize(VAR uint32_t *lpulLinearSize, VAR uint32_t *lpulRawSize); - -// uFCoder PRO MODE -UFR_STATUS DL_API GetReaderProMode(VAR uint32_t *pReaderProMode, OUT uint32_t *pReaderProConfig); -UFR_STATUS DL_API SetReaderProMode(const uint32_t ReaderProMode); - -// QR barcode crypt algorithm -// initialization. with TB serial like 'TB123456' -UFR_STATUS DL_API CardEncryption_Initialize(IN const uint8_t *TBSerialString, uint16_t job_number); - -// You must define 25 bytes array in memory for out_card_data[] -UFR_STATUS DL_API CardEncryption_GetNextEncryptedCard(const uint32_t from_timestamp, const uint32_t to_timestamp, - OUT uint8_t out_card_data[]); - -enum CARD_ENCRYPTION_CODE_TYPE -{ - CODE_TYPE_STANDARD, - CODE_TYPE_GROUP, - CODE_TYPE_DAILY_RANGE, // valid from, but only to_timestamp / every day -}; - -/** - * Same function like CardEncryption_GetNextEncryptedCard() with an additional byte - * to set master byte on the encrypted card ID - * - * @param code_type card type, look in CARD_ENCRYPTION_CODE_TYPE enumeration - * @param from_timestamp start date-time validity of the generated card - * @param to_timestamp end date-time validity of the generated card - * @param additional_data_size additional data size in bytes - * @param additional_data array with additional data - only master byte on the encrypted card ID for now - * @param out_card_data_size returns how many bytes are stored in the out_card_data array - * @param out_card_data pointer to the allocated byte array in memory (minimal size of 20 bytes) for the output data - * @return - */ -UFR_STATUS DL_API CardEncryption_GetNext(const uint32_t code_type, - const uint32_t from_timestamp, const uint32_t to_timestamp, - const uint32_t additional_data_size, IN const uint8_t additional_data[], - VAR uint32_t *out_card_data_size, OUT uint8_t out_card_data[]); - -UFR_STATUS DL_API CardEncryption_GetActualCardSN(OUT uint32_t *ActualCard_SN, VAR uint32_t *ActualCard_SN_LOG); -UFR_STATUS DL_API CardEncryption_GetJobSN(VAR uint32_t *JobSN); -UFR_STATUS DL_API CardEncryption_GetSalterSN(OUT uint8_t SalterSN[8], VAR uint8_t * magicByte); - -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); -UFR_STATUS DL_API write_ndef_record(uint8_t message_nr, uint8_t *tnf, IN uint8_t *type_record, uint8_t *type_length, IN uint8_t *id, uint8_t *id_length, - IN uint8_t *payload, uint32_t *payload_length, VAR uint8_t *card_formated); -UFR_STATUS DL_API write_ndef_record_mirroring(uint8_t message_nr, - uint8_t *tnf, IN uint8_t *type_record, uint8_t *type_length, IN uint8_t *id, - uint8_t *id_length, IN uint8_t *payload, uint32_t *payload_length, - VAR uint8_t *card_formated, - int use_uid_ascii_mirror, int use_counter_ascii_mirror, uint32_t payload_mirroring_pos); -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); -UFR_STATUS DL_API erase_last_ndef_record(uint8_t message_nr); -UFR_STATUS DL_API erase_all_ndef_records(uint8_t message_nr); -UFR_STATUS DL_API ndef_card_initialization(void); -//--------------------------------------------------------------------- -// Card emulation: -//--------------------------------------------------------------------- -UFR_STATUS DL_API WriteEmulationNdef(uint8_t tnf, - IN uint8_t* type_record, - uint8_t type_length, - IN uint8_t* id, - uint8_t id_length, - IN uint8_t* payload, - uint8_t payload_length); -UFR_STATUS DL_API WriteEmulationNdefWithAAR( - uint8_t tnf, - IN uint8_t *type_record, - uint8_t type_length, - IN uint8_t *id, - uint8_t id_length, - IN uint8_t *payload, - uint8_t payload_length, - IN uint8_t *aar, - uint8_t aar_length); -UFR_STATUS DL_API TagEmulationStart(void); -UFR_STATUS DL_API TagEmulationStop(void); -UFR_STATUS DL_API CombinedModeEmulationStart(void); -UFR_STATUS DL_API AdHocEmulationStart(void); -UFR_STATUS DL_API AdHocEmulationStop(void); -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); -UFR_STATUS DL_API SetAdHocEmulationParams(uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel); -UFR_STATUS DL_API GetExternalFieldState(VAR uint8_t *is_field_present); -UFR_STATUS DL_API EnterShareRamCommMode(void); -UFR_STATUS DL_API ExitShareRamCommMode(void); -UFR_STATUS DL_API WriteShareRam(IN uint8_t *ram_data, uint8_t addr, uint8_t data_len); -UFR_STATUS DL_API ReadShareRam(OUT uint8_t *ram_data, uint8_t addr, uint8_t data_len); - -//------------------------------------------------------------------------------ - -// GetNfcT2TVersion() returns 8 bytes (see T2T documentation): -typedef struct t2t_version_struct { - uint8_t header; - uint8_t vendor_id; - uint8_t product_type; - uint8_t product_subtype; - uint8_t major_product_version; - uint8_t minor_product_version; - uint8_t storage_size; - uint8_t protocol_type; -} t2t_version_t; - -// NfcT2TSafeConvertVersion() returns converts version_record that returned from GetNfcT2TVersion() -// or GetNfcT2TVersionM(). Conversion is "alignment safe" -// (you don't need to pay attention on structure byte alignment): -void DL_API NfcT2TSafeConvertVersion(t2t_version_t *version, const uint8_t *version_record); -UFR_STATUS DL_API ReadECCSignature(IN uint8_t lpucECCSignature[ECC_SIG_LEN], - OUT uint8_t lpucUid[MAX_UID_LEN], VAR uint8_t *lpucUidLen, VAR uint8_t *lpucDlogicCardType); - -//------------------------------------------------------------------------------ -UFR_STATUS DL_API ReadCounter(uint8_t counter_address, VAR uint32_t *value); -UFR_STATUS DL_API IncrementCounter(uint8_t counter_address, uint32_t inc_value); -UFR_STATUS DL_API ReadNFCCounter(VAR uint32_t *value); // Same as ReadCounter(2, &value); -UFR_STATUS DL_API ReadNFCCounterPwdAuth_RK(VAR uint32_t *value, uint8_t reader_key_index); -UFR_STATUS DL_API ReadNFCCounterPwdAuth_PK(VAR uint32_t *value, IN const uint8_t *key); - -//------------------------------------------------------------------------------ - -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); - -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); - -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); - -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); - -/***************************************************************************** - * AIS FUNCTIONS - ***************************************************************************** - */ - -/** - * ais_get_card_number() read assigned serial number from AIS cards - * - * @param card_number ( pointer to reserved 32 bit integer ) AIS card serial number - * @return UFR_STATUS execution status - */ -UFR_STATUS DL_API ais_get_card_number(VAR uint32_t *card_number); - -UFR_STATUS DL_API ais_set_right_record(uint8_t record_number, uint16_t first_reader_nr, uint16_t last_reader_nr, - uint8_t start_hour, uint8_t start_minute, uint8_t end_hour, uint8_t end_minute, IN uint8_t *days); -UFR_STATUS DL_API ais_get_right_record(uint8_t record_number, VAR uint16_t *first_reader_nr, VAR uint16_t *last_reader_nr, - VAR uint8_t *start_hour, VAR uint8_t *start_minute, VAR uint8_t *end_hour, VAR uint8_t *end_minute, OUT uint8_t *days); -UFR_STATUS DL_API ais_erase_right_record(uint8_t record_number); -UFR_STATUS DL_API ais_set_validate_record(uint8_t begin_year, uint8_t begin_month, uint8_t begin_day, uint8_t begin_hour, uint8_t begin_minute, - uint8_t end_year, uint8_t end_month, uint8_t end_day, uint8_t end_hour, uint8_t end_minute); -UFR_STATUS DL_API ais_get_validate_record(VAR uint8_t *begin_year, VAR uint8_t *begin_month, VAR uint8_t *begin_day, VAR uint8_t *begin_hour, VAR uint8_t *begin_minute, - VAR uint8_t *end_year, VAR uint8_t *end_month, VAR uint8_t *end_day, VAR uint8_t *end_hour, VAR uint8_t *end_minute); -UFR_STATUS DL_API ais_set_card_type(uint8_t card_type); -UFR_STATUS DL_API ais_get_card_type(VAR uint8_t *card_type); -UFR_STATUS DL_API ais_set_card_daily_duration(uint16_t duration); -UFR_STATUS DL_API ais_get_card_daily_duration(VAR uint16_t *duration); -UFR_STATUS DL_API ais_set_card_total_duration(uint32_t duration); -UFR_STATUS DL_API ais_get_card_total_duration(VAR uint32_t *duration); - -// swimming pool ************************************************************** -/** - * ais_get_credit_and_period_validity() > get information about credit and period of validity - * - * @param credit ( pointer to integer ) : - * @param begin_year ( pointer to integer ) : - * @param begin_month ( pointer to integer ) : - * @param begin_day ( pointer to integer ) : - * @param begin_hour ( pointer to integer ) : - * @param begin_minute ( pointer to integer ) : - * @param end_year ( pointer to integer ) : - * @param end_month ( pointer to integer ) : - * @param end_day ( pointer to integer ) : - * @param end_hour ( pointer to integer ) : - * @param end_minute ( pointer to integer ) : - * @return - */ -UFR_STATUS DL_API ais_get_credit_and_period_validity(VAR int32_t *credit, - VAR uint32_t *begin_year, VAR uint32_t *begin_month, VAR uint32_t *begin_day, - VAR uint32_t *begin_hour, - VAR uint32_t *begin_minute, // - VAR uint32_t *end_year, VAR uint32_t *end_month, VAR uint32_t *end_day, - VAR uint32_t *end_hour, VAR uint32_t *end_minute); - -/** - * ais_set_credit_and_period_validity() > set credit and period of validity - * - * @param credit ( integer ) : - * @param begin_year ( integer ) : - * @param begin_month ( integer ) : - * @param begin_day ( integer ) : - * @param begin_hour ( integer ) : - * @param begin_minute ( integer ) : - * @param end_year ( integer ) : - * @param end_month ( integer ) : - * @param end_day ( integer ) : - * @param end_hour ( integer ) : - * @param end_minute ( integer ) : - * @return - */ -UFR_STATUS DL_API ais_set_credit_and_period_validity(int32_t credit, - uint32_t begin_year, uint32_t begin_month, uint32_t begin_day, - uint32_t begin_hour, - uint32_t begin_minute, // - uint32_t end_year, uint32_t end_month, uint32_t end_day, - uint32_t end_hour, uint32_t end_minute); - -UFR_STATUS DL_API ais_set_right_type_record(uint8_t record_number, - uint8_t right_record_type, IN uint8_t *right_data); - -UFR_STATUS DL_API ais_get_right_type_record(uint8_t record_number, - VAR uint8_t *right_record_type, OUT uint8_t *right_data); - -UFR_STATUS DL_API ais_set_right_record_type_max_daily_counter(uint8_t record_number, - uint16_t first_reader_nr, uint16_t last_reader_nr, uint8_t start_hour, - uint8_t start_minute, uint8_t end_hour, uint8_t end_minute, - IN uint8_t *days, uint8_t max_daily_counter); - -UFR_STATUS DL_API ais_get_right_record_type_max_daily_counter(uint8_t record_number, - VAR uint16_t *first_reader_nr, VAR uint16_t *last_reader_nr, - VAR uint8_t *start_hour, VAR uint8_t *start_minute, VAR uint8_t *end_hour, - VAR uint8_t *end_minute, OUT uint8_t *days, VAR uint8_t *max_daily_counter); - -//============================================================================= - -UFR_STATUS DL_API UfrXrcLockOn(uint16_t pulse_duration); -UFR_STATUS DL_API UfrXrcRelayState(uint8_t state); -UFR_STATUS DL_API UfrXrcGetIoState(VAR uint8_t *intercom, VAR uint8_t *door, VAR uint8_t *relay_state); -UFR_STATUS DL_API UfrRedLightControl(uint8_t light_status); -UFR_STATUS DL_API UfrRgbLightControl(uint8_t red, uint8_t green, uint8_t blue, uint8_t intensity, uint8_t enable); - -UFR_STATUS DL_API UfrSetBadSelectCardNrMax(uint8_t bad_select_nr_max); -UFR_STATUS DL_API UfrGetBadSelectCardNrMax(VAR uint8_t *bad_select_nr_max); - -UFR_STATUS DL_API UfrEnterSleepMode(void); -UFR_STATUS DL_API UfrLeaveSleepMode(void); -UFR_STATUS DL_API AutoSleepSet(uint8_t seconds_wait); -UFR_STATUS DL_API AutoSleepGet(VAR uint8_t *seconds_wait); - -UFR_STATUS DL_API SetSpeedPermanently(unsigned char tx_speed, unsigned char rx_speed); -UFR_STATUS DL_API GetSpeedParameters(VAR unsigned char *tx_speed, VAR unsigned char *rx_speed); -UFR_STATUS DL_API SetDisplayData(IN uint8_t *display_data, uint8_t data_length); -UFR_STATUS DL_API SetSpeakerFrequency(uint16_t frequency); -UFR_STATUS DL_API SetDisplayIntensity(uint8_t intensity); -UFR_STATUS DL_API GetDisplayIntensity(VAR uint8_t *intensity); -// DESFIRE functions ************************************************************** - -/** - * - * @param chaining - * @param timeout - * @param block_length - * @param snd_data_array - * @param rcv_length - * @param rcv_data_array - * @param ufr_status - * @return - */ -UFR_STATUS DL_API SetISO14443_4_Mode(void); -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); - -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); - -UFR_STATUS DL_API APDUHexStrTransceive(IN const char *c_apdu, OUT char **r_apdu); -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); -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); -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); -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); -UFR_STATUS DL_API s_block_deselect(uint8_t timeout); - -UFR_STATUS DL_API card_transceive(uint8_t card_activate, uint8_t card_halted, uint8_t tx_crc, uint8_t rx_crc, uint8_t crypto1, - uint32_t timeout, IN uint8_t *tx_data, uint8_t tx_data_len, OUT uint8_t *rx_data, VAR uint8_t *rx_data_len); -UFR_STATUS DL_API card_transceive_mode_start(uint8_t tx_crc, uint8_t rx_crc, uint32_t rf_timeout, uint32_t uart_timeout); -UFR_STATUS DL_API card_transceive_mode_stop(void); -UFR_STATUS DL_API card_halt_enable(void); - -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); - -UFR_STATUS DL_API open_ISO7816_interface(OUT uint8_t *atr_data, VAR uint8_t *atr_len); -UFR_STATUS DL_API APDU_switch_to_ISO7816_interface(void); -UFR_STATUS DL_API close_ISO7816_interface_no_APDU(void); -UFR_STATUS DL_API close_ISO7816_interface_APDU_ISO14443_4(void); -UFR_STATUS DL_API APDU_switch_to_ISO14443_4_interface(void); -UFR_STATUS DL_API APDU_switch_off_from_ISO7816_interface(void); - -//============================================================================== -UFR_STATUS DL_API JCAppSelectByAid(IN const uint8_t *aid, uint8_t aid_len, OUT uint8_t selection_response[16]); -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); -UFR_STATUS DL_API JCAppGenerateKeyPair(uint8_t key_type, uint8_t key_index, uint8_t key_designator, - uint16_t key_bit_len, IN const uint8_t *params, uint16_t params_size); -UFR_STATUS DL_API JCAppDeleteRsaKeyPair(uint8_t key_index); -UFR_STATUS DL_API JCAppDeleteEcKeyPair(uint8_t key_index); -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); -UFR_STATUS DL_API JCAppSignatureUpdate(IN const uint8_t *chunk, uint16_t chunk_len); -UFR_STATUS DL_API JCAppSignatureEnd(VAR uint16_t *sig_len); -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); -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); -UFR_STATUS DL_API JCAppPutObjSubject(uint8_t obj_type, uint8_t obj_index, IN uint8_t *subject, uint8_t size); -UFR_STATUS DL_API JCAppInvalidateCert(uint8_t obj_type, uint8_t obj_index); -UFR_STATUS DL_API JCAppGetObjId(uint8_t obj_type, uint8_t obj_index, OUT uint8_t *id, VAR uint16_t *id_size); // when id == NULL returns size -UFR_STATUS DL_API JCAppGetObjSubject(uint8_t obj_type, uint8_t obj_index, OUT uint8_t *subject, VAR uint16_t *size); // when subject == NULL returns size -UFR_STATUS DL_API JCAppGetObj(uint8_t obj_type, uint8_t obj_index, OUT uint8_t *obj, int16_t size); // when obj == NULL returns size -c_string DL_API JCAppGetErrorDescription(UFR_STATUS apdu_error_status); -UFR_STATUS DL_API JCAppLogin(uint8_t SO, IN uint8_t *pin, uint8_t pinSize); -UFR_STATUS DL_API JCAppGetPinTriesRemaining(dl_sec_code_t secureCodeType, VAR uint16_t *triesRemaining); -UFR_STATUS DL_API JCAppPinChange(dl_sec_code_t secureCodeType, IN uint8_t *newPin, uint8_t newPinSize); -UFR_STATUS DL_API JCAppPinUnblock(uint8_t SO, IN uint8_t *puk, uint8_t pukSize); -UFR_STATUS DL_API JCAppGetRsaPublicKey(uint8_t key_index, OUT uint8_t *modulus, VAR uint16_t *modulus_size, - OUT uint8_t *exponent, VAR uint16_t *exponent_size); // when modulus == NULL, returns sizes and exponent ignored -UFR_STATUS DL_API JCAppGetEcPublicKey(uint8_t key_index, OUT uint8_t *keyW, VAR uint16_t *kexWSize, // when keyW == NULL, returns size - OUT uint8_t *field, VAR uint16_t *field_size, OUT uint8_t *ab , VAR uint16_t *ab_size, OUT uint8_t *g, VAR uint16_t *g_size, - OUT uint8_t *r, VAR uint16_t *r_size, VAR uint16_t *k, VAR uint16_t *key_size_bits, VAR uint16_t *key_designator); -UFR_STATUS DL_API JCAppGetEcKeySizeBits(uint8_t key_index, VAR uint16_t *key_size_bits, VAR uint16_t *key_designator); -//------------------------------------------------------------------------------ -UFR_STATUS DL_API JCAppGetSignature(OUT uint8_t *sig, uint16_t sig_len); -//============================================================================== -UFR_STATUS DL_API DES_to_AES_key_type(void); -UFR_STATUS DL_API AES_to_DES_key_type(void); - -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -UFR_STATUS DL_API uFR_int_GetDesfireUid(uint8_t aes_key_nr, uint32_t aid, - uint8_t aid_key_nr, OUT uint8_t *card_uid, VAR uint8_t *card_uid_len, - VAR uint16_t *card_status, VAR uint16_t *exec_time); -UFR_STATUS DL_API uFR_int_GetDesfireUid_PK(IN uint8_t *aes_key_ext, uint32_t aid, - uint8_t aid_key_nr, OUT uint8_t *card_uid, VAR uint8_t *card_uid_len, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireFreeMem(VAR uint32_t *free_mem_byte, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireFormatCard(uint8_t aes_key_nr, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireFormatCard_PK(IN uint8_t *aes_key_ext, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateStdDataFile(uint8_t aes_key_nr, uint32_t aid, uint8_t file_id, uint32_t file_size, - uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, - uint8_t communication_settings, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateStdDataFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t file_id, uint32_t file_size, - uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, - uint8_t communication_settings, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateStdDataFile_no_auth(uint32_t aid, uint8_t file_id, uint32_t file_size, - uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, - uint8_t communication_settings, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteFile(uint8_t aes_key_nr, uint32_t aid, uint8_t file_id, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t file_id, - uint16_t VAR *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteFile_no_auth(uint32_t aid, uint8_t file_id, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateAesApplication(uint8_t aes_key_nr, uint32_t aid, - uint8_t setting, uint8_t max_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateAesApplication_PK(IN uint8_t *aes_key_ext, uint32_t aid, - uint8_t setting, uint8_t max_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateAesApplication_no_auth(uint32_t aid, - uint8_t setting, uint8_t max_key_no, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteApplication(uint8_t aes_key_nr, uint32_t aid, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteApplication_PK(IN uint8_t *aes_key_ext, uint32_t aid, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireSetConfiguration(uint8_t aes_key_nr, uint8_t random_uid, uint8_t format_disable, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireSetConfiguration_PK(IN uint8_t *aes_key_ext, uint8_t random_uid, uint8_t format_disable, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireGetKeySettings(uint8_t aes_key_nr, uint32_t aid, - VAR uint8_t *setting, VAR uint8_t *max_key_no, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireGetKeySettings_PK(IN uint8_t *aes_key_ext, uint32_t aid, - VAR uint8_t *setting, VAR uint8_t *max_key_no, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -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); - -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); - -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); - -// all keys are in reader -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); - -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); - -UFR_STATUS DL_API uFR_int_DesfireWriteAesKey(uint8_t aes_key_no, IN uint8_t *aes_key); - -//--------------------------------------------------------------------------- - -UFR_STATUS DL_API uFR_int_DesfireReadStdDataFile(uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint16_t offset, uint16_t data_length, - uint8_t communication_settings, OUT uint8_t *data, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadStdDataFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint16_t offset, uint16_t data_length, - uint8_t communication_settings, OUT uint8_t *data, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadStdDataFile_no_auth(uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint16_t offset, uint16_t data_length, - uint8_t communication_settings, OUT uint8_t *data, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireWriteStdDataFile(uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint16_t offset, uint16_t data_length, - uint8_t communication_settings, IN uint8_t *data, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireWriteStdDataFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint16_t offset, uint16_t data_length, - uint8_t communication_settings, IN uint8_t *data, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireWriteStdDataFile_no_auth(uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint16_t offset, uint16_t data_length, - uint8_t communication_settings, IN uint8_t *data, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateValueFile(uint8_t aes_key_nr, uint32_t aid, uint8_t file_id, - int32_t lower_limit, int32_t upper_limit, int32_t value, uint8_t limited_credit_enabled, - uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, - uint8_t communication_settings, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateValueFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t file_id, - int32_t lower_limit, int32_t upper_limit, int32_t value, uint8_t limited_credit_enabled, - uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, - uint8_t communication_settings, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateValueFile_no_auth(uint32_t aid, uint8_t file_id, - int32_t lower_limit, int32_t upper_limit, int32_t value, uint8_t limited_credit_enabled, - uint8_t read_key_no, uint8_t write_key_no, uint8_t read_write_key_no, uint8_t change_key_no, - uint8_t communication_settings, VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadValueFile(uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, VAR int32_t *value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadValueFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, VAR int32_t *value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadValueFile_no_auth(uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, VAR int32_t *value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireIncreaseValueFile(uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, uint32_t value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireIncreaseValueFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, uint32_t value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireIncreaseValueFile_no_auth(uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, uint32_t value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDecreaseValueFile(uint8_t aes_key_nr, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, uint32_t value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDecreaseValueFile_PK(IN uint8_t *aes_key_ext, uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, uint32_t value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDecreaseValueFile_no_auth(uint32_t aid, uint8_t aid_key_nr, uint8_t file_id, - uint8_t communication_settings, uint32_t value, - VAR uint16_t *card_status, VAR uint16_t *exec_time); - -///////////////////////////////////////////////////////////////////// - -UFR_STATUS DL_API GreenLedBlinkingTurnOn(void); -UFR_STATUS DL_API GreenLedBlinkingTurnOff(void); - -///////////////////////////////////////////////////////////////////// - -UFR_STATUS DL_API SetRfAnalogRegistersTypeA(uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel); -UFR_STATUS DL_API SetRfAnalogRegistersTypeB(uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel); -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212(uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel); -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424(uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel); - -UFR_STATUS DL_API SetRfAnalogRegistersTypeADefault(void); -UFR_STATUS DL_API SetRfAnalogRegistersTypeBDefault(void); -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212Default(void); -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424Default(void); - -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); -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); -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); -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); - -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); -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); - -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); -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); - -UFR_STATUS DL_API CheckBootFirmware(VAR uint8_t *exec_location); -UFR_STATUS DL_API FastFlashCheck(void); -UFR_STATUS DL_API DefaultBaudrateFlashCheck(void); - -//SAM -UFR_STATUS DL_API SAM_get_version_raw(OUT uint8_t *data, VAR uint8_t *length); -UFR_STATUS DL_API SAM_get_version(VAR SAM_HW_TYPE *sam_type, OUT uint8_t *sam_uid); - -//MIFARE PLUS -UFR_STATUS DL_API MFP_WritePerso(uint16_t address, IN uint8_t *data); -UFR_STATUS DL_API MFP_CommitPerso(void); -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); -UFR_STATUS DL_API MFP_SwitchToSecurityLevel3(uint8_t key_index); -UFR_STATUS DL_API MFP_SwitchToSecurityLevel3_PK(IN uint8_t *aes_key); -UFR_STATUS DL_API MFP_AesAuthSecurityLevel1(uint8_t key_index); -UFR_STATUS DL_API MFP_AesAuthSecurityLevel1_PK(IN uint8_t *aes_key); -UFR_STATUS DL_API MFP_ChangeMasterKey(uint8_t key_index, IN uint8_t *new_key); -UFR_STATUS DL_API MFP_ChangeMasterKey_PK(IN uint8_t *old_key, IN uint8_t *new_key); -UFR_STATUS DL_API MFP_ChangeConfigurationKey(uint8_t key_index, IN uint8_t *new_key); -UFR_STATUS DL_API MFP_ChangeConfigurationKey_PK(IN uint8_t *old_key, IN uint8_t *new_key); -UFR_STATUS DL_API MFP_FieldConfigurationSet(uint8_t configuration_key_index, uint8_t rid_use, uint8_t prox_check_use); -UFR_STATUS DL_API MFP_FieldConfigurationSet_PK(IN uint8_t *configuration_key, uint8_t rid_use, uint8_t prox_check_use); -UFR_STATUS DL_API MFP_ChangeSectorKey(uint8_t sector_nr, uint8_t auth_mode, uint8_t key_index, IN uint8_t *new_key); -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); -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); -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); -UFR_STATUS DL_API MFP_ChangeVcPollingEncKey(uint8_t configuration_key_index, IN uint8_t *new_key); -UFR_STATUS DL_API MFP_ChangeVcPollingEncKey_PK(IN uint8_t *configuration_key, IN uint8_t *new_key); -UFR_STATUS DL_API MFP_ChangeVcPollingMacKey(uint8_t configuration_key_index, IN uint8_t *new_key); -UFR_STATUS DL_API MFP_ChangeVcPollingMacKey_PK(IN uint8_t *configuration_key, IN uint8_t *new_key); - -//ULTRALIGHT C -UFR_STATUS DL_API ULC_ExternalAuth_PK(IN uint8_t *key); -UFR_STATUS DL_API ULC_write_3des_key_no_auth(IN uint8_t *new_3des_key); -UFR_STATUS DL_API ULC_write_3des_key_factory_key(IN uint8_t *new_3des_key); -UFR_STATUS DL_API ULC_write_3des_key(IN uint8_t *new_3des_key, IN uint8_t *old_3des_key); - -/** - * BalanceGet() gets balance of the AIS SDK formated cards - * - * @param auth_mode only MIFARE_AUTHENT1A supported for now - * @param auth_value pointer to the Crypto1 6-bytes key array, for now - * @param credit how many credits is on the card - * - * @return execution status - */ -UFR_STATUS DL_API BalanceGet(uint32_t auth_mode, IN void *auth_value, VAR int32_t *credit); - -/** - * BalanceSet() sets balance of the AIS SDK formated cards - * - * @param auth_mode only MIFARE_AUTHENT1A supported for now - * @param auth_value pointer to the Crypto1 6-bytes key array, for now - * @param credit new credit balance - * - * @return execution status - */ -UFR_STATUS DL_API BalanceSet(uint32_t auth_mode, IN void *auth_value, int32_t credit); - -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -// XXX: Support for multiple readers with same DLL -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//################# M U L T I R E A D E R S U P P O R T ################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# -//############################################################################# - -//-------------------------------------------------------------------------------------------------- -/** - * This is the main function of the multi-reader support. - * ReaderList_UpdateAndGetCount() scan all communication ports for compatible devices. - * Function probes opened readers if still connected, if not close and mark them handles for deletion. - * If some device is disconnected from system this function should remove its handle. - * - * @param NumberOfDevices - * @return status of execution - */ -UFR_STATUS DL_API ReaderList_UpdateAndGetCount(VAR int32_t * NumberOfDevices); - -/** - * Function for getting all relevant information about connected readers. - * - * Eg. If you have tree connected readers, detected by ReaderList_UpdateAndGetCount(), - * you should call this function tree times. - * - * @param DeviceHandle - * @param DeviceSerialNumber - * @param DeviceType - * @param DeviceFWver - * @param DeviceCommID - * @param DeviceCommSpeed - * @param DeviceCommFTDISerial - * @param DeviceCommFTDIDescription - * @param DeviceIsOpened - * @param DeviceStatus - * @return - */ -UFR_STATUS DL_API ReaderList_GetInformation( // - VAR UFR_HANDLE *DeviceHandle, //// assigned Handle - OUT c_string *DeviceSerialNumber, //// device serial number - VAR int *DeviceType, //// device type - device identification in AIS database - VAR int *DeviceFWver, //// version of firmware - VAR int *DeviceCommID, //// device identification number (master) - VAR int *DeviceCommSpeed, //// communication speed - OUT c_string *DeviceCommFTDISerial, //// FTDI COM port identification - OUT c_string *DeviceCommFTDIDescription, //// FTDI COM port description - VAR int *DeviceIsOpened, //// is Device opened - VAR int *DeviceStatus //// actual device status -); - -/** - * If the handle exists in the list of opened devices, - * function would try to close communication port and destroy the handle. - * ( ReaderList_UpdateAndGetCount() will do that automatically in next execution) - * - * Good when you identify that the reader is no longer connected, and want to release the handle. - * - * @param DeviceHandle the handle that will be destroyed - * @return - */ -UFR_STATUS DL_API ReaderList_Destroy(UFR_HANDLE DeviceHandle); - -// XXX: Obsolete functions - remain for backward compatibility -UFR_STATUS DL_API ReaderList_GetSerialByIndex(int32_t DeviceIndex, VAR uint32_t *lpulSerialNumber); -UFR_STATUS DL_API ReaderList_GetSerialDescriptionByIndex(int32_t DeviceIndex, OUT uint8_t pSerialDescription[8]); -UFR_STATUS DL_API ReaderList_GetTypeByIndex(int32_t DeviceIndex, VAR uint32_t *lpulReaderType); -UFR_STATUS DL_API ReaderList_GetFTDISerialByIndex(int32_t DeviceIndex, OUT char ** Device_Serial); -UFR_STATUS DL_API ReaderList_GetFTDIDescriptionByIndex(int32_t DeviceIndex, OUT char ** Device_Description); -UFR_STATUS DL_API ReaderList_OpenByIndex(const int32_t DeviceIndex, VAR UFR_HANDLE *hndUFR); -UFR_STATUS DL_API ReaderList_OpenBySerial(const char Device_SN[16], VAR UFR_HANDLE *hndUFR); // ! not implemented - -//-------------------------------------------------------------------------------------------------- - -// open first/next Reader and return handle - better to use ReaderList_OpenByIndex() -UFR_STATUS DL_API ReaderOpenM(VAR UFR_HANDLE *hndUFR); - -UFR_STATUS DL_API ReaderResetM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API ReaderCloseM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API ReaderSoftRestartM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API GetReaderTypeM(UFR_HANDLE hndUFR, - IN uint32_t *lpulReaderType); - -UFR_STATUS DL_API GetReaderSerialNumberM(UFR_HANDLE hndUFR, - IN uint32_t *lpulSerialNumber); - -UFR_STATUS DL_API ReaderStillConnectedM(UFR_HANDLE hndUFR, - VAR uint32_t *connected); - -UFR_STATUS DL_API ReaderKeyWriteM(UFR_HANDLE hndUFR, - IN const uint8_t *aucKey, - uint8_t ucKeyIndex); - -UFR_STATUS DL_API ReaderKeysLockM(UFR_HANDLE hndUFR, - IN const uint8_t *password); - -UFR_STATUS DL_API ReaderKeysUnlockM(UFR_HANDLE hndUFR, - IN const uint8_t *password); - -UFR_STATUS DL_API ReaderUISignalM(UFR_HANDLE hndUFR, - uint8_t light_signal_mode, - uint8_t beep_signal_mode); - -UFR_STATUS DL_API ReadUserDataM(UFR_HANDLE hndUFR, - OUT uint8_t *aucData); - -UFR_STATUS DL_API WriteUserDataM(UFR_HANDLE hndUFR, - IN const uint8_t *aucData); - -UFR_STATUS DL_API GetCardIdM(UFR_HANDLE hndUFR, - VAR uint8_t *lpucCardType, - OUT uint32_t *lpulCardSerial); - -UFR_STATUS DL_API BlockReadM(UFR_HANDLE hndUFR, - OUT uint8_t *data, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -UFR_STATUS DL_API ValueBlockReadM(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API ValueBlockInSectorReadM(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API ValueBlockWriteM(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API ValueBlockInSectorWriteM(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API ValueBlockIncrementM(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API ValueBlockInSectorIncrementM(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API ValueBlockDecrementM(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API ValueBlockInSectorDecrementM(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - uint8_t key_index); - -UFR_STATUS DL_API BlockRead_AKM1M(UFR_HANDLE hndUFR, - OUT uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API BlockWrite_AKM1M(UFR_HANDLE hndUFR, - IN const uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -UFR_STATUS DL_API ValueBlockRead_AKM1M(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorRead_AKM1M(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockWrite_AKM1M(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorWrite_AKM1M(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockIncrement_AKM1M(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorIncrement_AKM1M(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockDecrement_AKM1M(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorDecrement_AKM1M(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API BlockRead_AKM2M(UFR_HANDLE hndUFR, - OUT uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API BlockWrite_AKM2M(UFR_HANDLE hndUFR, - IN const uint8_t *data, - uint8_t block_address, - uint8_t auth_mode); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -UFR_STATUS DL_API ValueBlockRead_AKM2M(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorRead_AKM2M(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockWrite_AKM2M(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorWrite_AKM2M(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockIncrement_AKM2M(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorIncrement_AKM2M(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockDecrement_AKM2M(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode); - -UFR_STATUS DL_API ValueBlockInSectorDecrement_AKM2M(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -UFR_STATUS DL_API ValueBlockRead_PKM(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API ValueBlockInSectorRead_PKM(UFR_HANDLE hndUFR, - VAR int32_t *value, - VAR uint8_t *value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API ValueBlockWrite_PKM(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API ValueBlockInSectorWrite_PKM(UFR_HANDLE hndUFR, - int32_t value, - uint8_t value_addr, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API ValueBlockIncrement_PKM(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API ValueBlockInSectorIncrement_PKM(UFR_HANDLE hndUFR, - int32_t increment_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API ValueBlockDecrement_PKM(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t block_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API ValueBlockInSectorDecrement_PKM(UFR_HANDLE hndUFR, - int32_t decrement_value, - uint8_t sector_address, - uint8_t block_in_sector_address, - uint8_t auth_mode, - IN const uint8_t *key); - -UFR_STATUS DL_API GetReaderHardwareVersionM(UFR_HANDLE hndUFR, - VAR uint8_t *version_major, - VAR uint8_t *version_minor); - -UFR_STATUS DL_API GetReaderFirmwareVersionM(UFR_HANDLE hndUFR, - VAR uint8_t *version_major, - VAR uint8_t *version_minor); - -// New commands (for RTC & I2C EEPROM): -UFR_STATUS DL_API GetReaderTimeM(UFR_HANDLE hndUFR, - VAR uint8_t *time); - -UFR_STATUS DL_API SetReaderTimeM(UFR_HANDLE hndUFR, - IN uint8_t *password, - VAR uint8_t *time); - -UFR_STATUS DL_API ChangeReaderPasswordM(UFR_HANDLE hndUFR, - IN uint8_t *old_password, - IN uint8_t *new_password); - -UFR_STATUS DL_API ReaderEepromWriteM(UFR_HANDLE hndUFR, - IN uint8_t *data, - uint32_t address, - uint32_t size, - IN uint8_t *password); - -UFR_STATUS DL_API ReaderEepromReadM(UFR_HANDLE hndUFR, - OUT uint8_t *data, - uint32_t address, - uint32_t size); - -UFR_STATUS DL_API GetReaderSerialDescriptionM(UFR_HANDLE hndUFR, - OUT uint8_t pSerialDescription[8]); - -// New since version 2.0: -UFR_STATUS DL_API GetBuildNumberM(UFR_HANDLE hndUFR, - VAR uint8_t *build); - -UFR_STATUS DL_API GetCardIdExM(UFR_HANDLE hndUFR, - VAR uint8_t *lpucSak, - OUT uint8_t *aucUid, - VAR uint8_t *lpucUidSize); - -UFR_STATUS DL_API GetLastCardIdExM(UFR_HANDLE hndUFR, - VAR uint8_t *lpucSak, - OUT uint8_t *aucUid, - VAR uint8_t *lpucUidSize); - -//------------------------------------------------------------------------------ -//Multi card mode: -//------------------------------------------------------------------------------ -UFR_STATUS DL_API EnableAntiCollisionM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API DisableAntiCollisionM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API EnumCardsM(UFR_HANDLE hndUFR, - VAR uint8_t *lpucCardsNumber, - OUT uint8_t *lpucUidListSize); // Card pointer is on the first card in list - -UFR_STATUS DL_API ListCardsM(UFR_HANDLE hndUFR, - OUT uint8_t *aucUidList, - uint8_t ucUidListSize); // Before calling this function you must call EnumCards() first. - -UFR_STATUS DL_API SelectCardM(UFR_HANDLE hndUFR, - IN const uint8_t *aucUid, - uint8_t ucUidSize, - OUT uint8_t *lpucSelctedCardType); - -UFR_STATUS DL_API DeslectCardM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API GetAntiCollisionStatusM(UFR_HANDLE hndUFR, - VAR int8_t *lpcIsAntiCollEnabled, - VAR int8_t *lpcIsAnyCardSelected); -//------------------------------------------------------------------------------ - -UFR_STATUS DL_API GetDlogicCardTypeM(UFR_HANDLE hndUFR, - VAR uint8_t *lpucCardType); - -UFR_STATUS DL_API GetNfcT2TVersionM(UFR_HANDLE hndUFR, - OUT uint8_t lpucVersionResponse[8]); - -UFR_STATUS DL_API GetCardSizeM(UFR_HANDLE hndUFR, - VAR uint32_t *lpulLinearSize, - VAR uint32_t *lpulRawSize); - -// uFCoder PRO MODE -UFR_STATUS DL_API GetReaderProModeM(UFR_HANDLE hndUFR, - VAR uint32_t *pReaderProMode, - OUT uint32_t *pReaderProConfig); - -UFR_STATUS DL_API SetReaderProModeM(UFR_HANDLE hndUFR, - const uint32_t ReaderProMode); - -// QR barcode crypt algorithm -// initialization. with TB serial like 'TB123456' -UFR_STATUS DL_API CardEncryption_InitializeM(UFR_HANDLE hndUFR, - IN const uint8_t *TBSerialString, - uint16_t job_number); - -// You must define 25 bytes array in memory for out_card_data[] -UFR_STATUS DL_API CardEncryption_GetNextEncryptedCardM(UFR_HANDLE hndUFR, - const uint32_t from_timestamp, - const uint32_t to_timestamp, - OUT uint8_t out_card_data[]); - -UFR_STATUS DL_API CardEncryption_GetNextM(UFR_HANDLE hndUFR, - const uint32_t code_type, - const uint32_t from_timestamp, - const uint32_t to_timestamp, - const uint32_t additional_data_size, - IN const uint8_t additional_data[], - VAR uint32_t *out_card_data_size, - OUT uint8_t out_card_data[]); - -UFR_STATUS DL_API CardEncryption_GetActualCardSNM(UFR_HANDLE hndUFR, - OUT uint32_t *ActualCard_SN, - VAR uint32_t *ActualCard_SN_LOG); - -UFR_STATUS DL_API CardEncryption_GetJobSNM(UFR_HANDLE hndUFR, - VAR uint32_t *JobSN); - -UFR_STATUS DL_API CardEncryption_GetSalterSNM(UFR_HANDLE hndUFR, - OUT uint8_t SalterSN[8], - VAR uint8_t * magicByte); - -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); - -UFR_STATUS DL_API write_ndef_recordM(UFR_HANDLE hndUFR, - uint8_t message_nr, - uint8_t *tnf, - IN uint8_t *type_record, - uint8_t *type_length, - IN uint8_t *id, - uint8_t *id_length, - IN uint8_t *payload, - uint32_t *payload_length, - VAR uint8_t *card_formated); - -UFR_STATUS DL_API write_ndef_record_mirroringM(UFR_HANDLE hndUFR, - uint8_t message_nr, - uint8_t *tnf, - IN uint8_t *type_record, - uint8_t *type_length, - IN uint8_t *id, - uint8_t *id_length, - IN uint8_t *payload, - uint32_t *payload_length, - VAR uint8_t *card_formated, - int use_uid_ascii_mirror, - int use_counter_ascii_mirror, - uint32_t payload_mirroring_pos); - -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); - -UFR_STATUS DL_API erase_last_ndef_recordM(UFR_HANDLE hndUFR, - uint8_t message_nr); - -UFR_STATUS DL_API erase_all_ndef_recordsM(UFR_HANDLE hndUFR, - uint8_t message_nr); - -UFR_STATUS DL_API ndef_card_initializationM(UFR_HANDLE hndUFR); - -//--------------------------------------------------------------------- -// Card emulation: -//--------------------------------------------------------------------- -UFR_STATUS DL_API WriteEmulationNdefM(UFR_HANDLE hndUFR, - uint8_t tnf, - IN uint8_t* type_record, - uint8_t type_length, - IN uint8_t* id, - uint8_t id_length, - IN uint8_t* payload, - uint8_t payload_length); - -UFR_STATUS DL_API TagEmulationStartM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API TagEmulationStopM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API CombinedModeEmulationStartM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API AdHocEmulationStartM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API AdHocEmulationStopM(UFR_HANDLE hndUFR); - -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); - -UFR_STATUS DL_API SetAdHocEmulationParamsM(UFR_HANDLE hndUFR, - uint8_t ThresholdMinLevel, - uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, - uint8_t RxGain, - uint8_t RFLevel); - -UFR_STATUS DL_API GetExternalFieldStateM(UFR_HANDLE hndUFR, - VAR uint8_t *is_field_present); -//------------------------------------------------------------------------------ -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); - -//------------------------------------------------------------------------------ -UFR_STATUS DL_API ReadCounterM(UFR_HANDLE hndUFR, - uint8_t counter_address, - VAR uint32_t *value); - -UFR_STATUS DL_API IncrementCounterM(UFR_HANDLE hndUFR, - uint8_t counter_address, - uint32_t inc_value); - -UFR_STATUS DL_API ReadNFCCounterM(UFR_HANDLE hndUFR, - VAR uint32_t *value); // Same as ReadCounter(2, &value); - -UFR_STATUS DL_API ReadNFCCounterPwdAuth_RKM(UFR_HANDLE hndUFR, - VAR uint32_t *value, - uint8_t reader_key_index); - -UFR_STATUS DL_API ReadNFCCounterPwdAuth_PKM(UFR_HANDLE hndUFR, - VAR uint32_t *value, - IN const uint8_t *key); -//------------------------------------------------------------------------------ - -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); - -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); - -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); - -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); - -/***************************************************************************** - * AIS FUNCTIONS - ***************************************************************************** - */ - -UFR_STATUS DL_API ais_get_card_numberM(UFR_HANDLE hndUFR, - VAR uint32_t *card_number); - -UFR_STATUS DL_API ais_set_right_recordM(UFR_HANDLE hndUFR, - uint8_t record_number, - uint16_t first_reader_nr, - uint16_t last_reader_nr, - uint8_t start_hour, - uint8_t start_minute, - uint8_t end_hour, - uint8_t end_minute, - IN uint8_t *days); - -UFR_STATUS DL_API ais_get_right_recordM(UFR_HANDLE hndUFR, - uint8_t record_number, - VAR uint16_t *first_reader_nr, - VAR uint16_t *last_reader_nr, - VAR uint8_t *start_hour, - VAR uint8_t *start_minute, - VAR uint8_t *end_hour, - VAR uint8_t *end_minute, - OUT uint8_t *days); - -UFR_STATUS DL_API ais_erase_right_recordM(UFR_HANDLE hndUFR, - uint8_t record_number); - -UFR_STATUS DL_API ais_set_validate_recordM(UFR_HANDLE hndUFR, - uint8_t begin_year, - uint8_t begin_month, - uint8_t begin_day, - uint8_t begin_hour, - uint8_t begin_minute, - uint8_t end_year, - uint8_t end_month, - uint8_t end_day, - uint8_t end_hour, - uint8_t end_minute); - -UFR_STATUS DL_API ais_get_validate_recordM(UFR_HANDLE hndUFR, - VAR uint8_t *begin_year, - VAR uint8_t *begin_month, - VAR uint8_t *begin_day, - VAR uint8_t *begin_hour, - VAR uint8_t *begin_minute, - VAR uint8_t *end_year, - VAR uint8_t *end_month, - VAR uint8_t *end_day, - VAR uint8_t *end_hour, - VAR uint8_t *end_minute); - -UFR_STATUS DL_API ais_set_card_typeM(UFR_HANDLE hndUFR, - uint8_t card_type); - -UFR_STATUS DL_API ais_get_card_typeM(UFR_HANDLE hndUFR, - VAR uint8_t *card_type); - -UFR_STATUS DL_API ais_set_card_daily_durationM(UFR_HANDLE hndUFR, - uint16_t duration); - -UFR_STATUS DL_API ais_get_card_daily_durationM(UFR_HANDLE hndUFR, - VAR uint16_t *duration); - -UFR_STATUS DL_API ais_set_card_total_durationM(UFR_HANDLE hndUFR, - uint32_t duration); - -UFR_STATUS DL_API ais_get_card_total_durationM(UFR_HANDLE hndUFR, - VAR uint32_t *duration); - -// swimming pool ************************************************************** - -UFR_STATUS DL_API ais_get_credit_and_period_validityM(UFR_HANDLE hndUFR, - VAR int32_t *credit, - VAR uint32_t *begin_year, - VAR uint32_t *begin_month, - VAR uint32_t *begin_day, - VAR uint32_t *begin_hour, - VAR uint32_t *begin_minute, - VAR uint32_t *end_year, - VAR uint32_t *end_month, - VAR uint32_t *end_day, - VAR uint32_t *end_hour, - VAR uint32_t *end_minute); - -UFR_STATUS DL_API ais_set_credit_and_period_validityM(UFR_HANDLE hndUFR, - int32_t credit, - uint32_t begin_year, - uint32_t begin_month, - uint32_t begin_day, - uint32_t begin_hour, - uint32_t begin_minute, - uint32_t end_year, - uint32_t end_month, - uint32_t end_day, - uint32_t end_hour, - uint32_t end_minute); - -UFR_STATUS DL_API ais_set_right_type_recordM(UFR_HANDLE hndUFR, - uint8_t record_number, - uint8_t right_record_type, - IN uint8_t *right_data); - -UFR_STATUS DL_API ais_get_right_type_recordM(UFR_HANDLE hndUFR, - uint8_t record_number, - VAR uint8_t *right_record_type, - OUT uint8_t *right_data); - -UFR_STATUS DL_API ais_set_right_record_type_max_daily_counterM(UFR_HANDLE hndUFR, - uint8_t record_number, - uint16_t first_reader_nr, - uint16_t last_reader_nr, - uint8_t start_hour, - uint8_t start_minute, - uint8_t end_hour, - uint8_t end_minute, - IN uint8_t *days, - uint8_t max_daily_counter); - -//============================================================================= - -UFR_STATUS DL_API UfrXrcLockOnM(UFR_HANDLE hndUFR, - uint16_t pulse_duration); - -UFR_STATUS DL_API UfrXrcRelayStateM(UFR_HANDLE hndUFR, - uint8_t state); - -UFR_STATUS DL_API UfrXrcGetIoStateM(UFR_HANDLE hndUFR, - VAR uint8_t *intercom, - VAR uint8_t *door, - VAR uint8_t *relay_state); - -UFR_STATUS DL_API UfrRedLightControlM(UFR_HANDLE hndUFR, - uint8_t light_status); - -UFR_STATUS DL_API UfrRgbLightControlM(UFR_HANDLE hndUFR, - uint8_t red, - uint8_t green, - uint8_t blue, - uint8_t intensity, - uint8_t enable); - -UFR_STATUS DL_API UfrSetBadSelectCardNrMaxM(UFR_HANDLE hndUFR, - uint8_t bad_select_nr_max); - -UFR_STATUS DL_API UfrGetBadSelectCardNrMaxM(UFR_HANDLE hndUFR, - VAR uint8_t *bad_select_nr_max); - -UFR_STATUS DL_API UfrEnterSleepModeM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API UfrLeaveSleepModeM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API AutoSleepSetM(UFR_HANDLE hndUFR, - uint8_t seconds_wait); - -UFR_STATUS DL_API AutoSleepGetM(UFR_HANDLE hndUFR, - VAR uint8_t *seconds_wait); - -UFR_STATUS DL_API SetSpeedPermanentlyM(UFR_HANDLE hndUFR, - unsigned char tx_speed, - unsigned char rx_speed); - -UFR_STATUS DL_API GetSpeedParametersM(UFR_HANDLE hndUFR, - VAR unsigned char *tx_speed, - VAR unsigned char *rx_speed); - -UFR_STATUS DL_API SetDisplayDataM(UFR_HANDLE hndUFR, - IN uint8_t *display_data, - uint8_t data_length); - -UFR_STATUS DL_API SetSpeakerFrequencyM(UFR_HANDLE hndUFR, - uint16_t frequency); - -UFR_STATUS DL_API SetDisplayIntensityM(UFR_HANDLE hndUFR, - uint8_t intensity); - -UFR_STATUS DL_API GetDisplayIntensityM(UFR_HANDLE hndUFR, - VAR uint8_t *intensity); - -//############################################################################# -//############################################################################# - -UFR_STATUS DL_API SetISO14443_4_ModeM(UFR_HANDLE hndUFR); - -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); - -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); - -UFR_STATUS DL_API APDUHexStrTransceiveM(UFR_HANDLE hndUFR, - IN const char *c_apdu, - OUT char **r_apdu); - -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); - -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); - -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); - -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); - -UFR_STATUS DL_API s_block_deselectM(UFR_HANDLE hndUFR, - uint8_t timeout); - -UFR_STATUS DL_API card_transceiveM(UFR_HANDLE hndUFR, - uint8_t card_activate, - uint8_t card_halted, - uint8_t tx_crc, - uint8_t rx_crc, - uint8_t crypto1, - uint32_t timeout, - IN uint8_t *tx_data, - uint8_t tx_data_len, - OUT uint8_t *rx_data, - VAR uint8_t *rx_data_len); - -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); - -UFR_STATUS DL_API card_transceive_mode_stopM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API card_halt_enableM(UFR_HANDLE hndUFR); - -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); - -UFR_STATUS DL_API open_ISO7816_interfaceM(UFR_HANDLE hndUFR, - OUT uint8_t *atr_data, - VAR uint8_t *atr_len); - -UFR_STATUS DL_API APDU_switch_to_ISO7816_interfaceM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API close_ISO7816_interface_no_APDUM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API close_ISO7816_interface_APDU_ISO14443_4M(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API APDU_switch_to_ISO14443_4_interfaceM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API APDU_switch_off_from_ISO7816_interfaceM(UFR_HANDLE hndUFR); - -//------------------------------------------------------------------------------ -UFR_STATUS DL_API JCAppSelectByAidM(UFR_HANDLE hndUFR, - IN const uint8_t *aid, - uint8_t aid_len, - OUT uint8_t selection_response[16]); - -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); - -UFR_STATUS DL_API JCAppGenerateKeyPairM(UFR_HANDLE hndUFR, - uint8_t key_type, - uint8_t key_index, - uint8_t key_designator, - uint16_t key_bit_len, - IN const uint8_t *params, - uint16_t params_size); - -UFR_STATUS DL_API JCAppDeleteRsaKeyPairM(UFR_HANDLE hndUFR, - uint8_t key_index); - -UFR_STATUS DL_API JCAppDeleteEcKeyPairM(UFR_HANDLE hndUFR, - uint8_t key_index); - -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); - -UFR_STATUS DL_API JCAppSignatureUpdateM(UFR_HANDLE hndUFR, - IN const uint8_t *chunk, - uint16_t chunk_len); - -UFR_STATUS DL_API JCAppSignatureEndM(UFR_HANDLE hndUFR, - VAR uint16_t *sig_len); - -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); - -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); - -UFR_STATUS DL_API JCAppPutObjSubjectM(UFR_HANDLE hndUFR, - uint8_t obj_type, - uint8_t obj_index, - IN uint8_t *subject, - uint8_t size); - -UFR_STATUS DL_API JCAppInvalidateCertM(UFR_HANDLE hndUFR, - uint8_t obj_type, - uint8_t obj_index); - -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); // when id == NULL returns size - -UFR_STATUS DL_API JCAppGetObjSubjectM(UFR_HANDLE hndUFR, - uint8_t obj_type, - uint8_t obj_index, - OUT uint8_t *subject, - VAR uint16_t *size); // when subject == NULL returns size - -UFR_STATUS DL_API JCAppGetObjM(UFR_HANDLE hndUFR, - uint8_t obj_type, - uint8_t obj_index, - OUT uint8_t *obj, - int16_t size); // when obj == NULL returns size - -UFR_STATUS DL_API JCAppLoginM(UFR_HANDLE hndUFR, - uint8_t SO, - IN uint8_t *pin, - uint8_t pinSize); - -UFR_STATUS DL_API JCAppGetPinTriesRemainingM(UFR_HANDLE hndUFR, - dl_sec_code_t secureCodeType, - VAR uint16_t *triesRemaining); - -UFR_STATUS DL_API JCAppPinChangeM(UFR_HANDLE hndUFR, - dl_sec_code_t secureCodeType, - IN uint8_t *newPin, - uint8_t newPinSize); - -UFR_STATUS DL_API JCAppPinUnblockM(UFR_HANDLE hndUFR, - uint8_t SO, - IN uint8_t *puk, - uint8_t pukSize); - -UFR_STATUS DL_API JCAppGetRsaPublicKeyM(UFR_HANDLE hndUFR, - uint8_t key_index, - OUT uint8_t *modulus, - VAR uint16_t *modulus_size, - OUT uint8_t *exponent, - VAR uint16_t *exponent_size); // when modulus == NULL, returns sizes and exponent ignored - -UFR_STATUS DL_API JCAppGetEcPublicKeyM(UFR_HANDLE hndUFR, - uint8_t key_index, - OUT uint8_t *keyW, - VAR uint16_t *kexWSize, - OUT uint8_t *field, - VAR uint16_t *field_size, - OUT uint8_t *ab, - VAR uint16_t *ab_size, - OUT uint8_t *g, - VAR uint16_t *g_size, - OUT uint8_t *r, - VAR uint16_t *r_size, - VAR uint16_t *k, - VAR uint16_t *key_size_bits, - VAR uint16_t *key_designator); // when keyW == NULL, returns size - -UFR_STATUS DL_API JCAppGetEcKeySizeBitsM(UFR_HANDLE hndUFR, - uint8_t key_index, - VAR uint16_t *key_size_bits, - VAR uint16_t *key_designator); -//############################################################################# - -UFR_STATUS DL_API uFR_DESFIRE_Start(void); -UFR_STATUS DL_API uFR_DESFIRE_StartM(UFR_HANDLE hndUFR); -UFR_STATUS DL_API uFR_DESFIRE_Stop(void); -UFR_STATUS DL_API uFR_DESFIRE_StopM(UFR_HANDLE hndUFR); -UFR_STATUS DL_API uFR_APDU_Start(void); // Alias for uFR_DESFIRE_Start() -UFR_STATUS DL_API uFR_APDU_StartM(UFR_HANDLE hndUFR); // Alias for uFR_DESFIRE_StartM() -UFR_STATUS DL_API uFR_APDU_Stop(void); // Alias for uFR_DESFIRE_Stop() -UFR_STATUS DL_API uFR_APDU_StopM(UFR_HANDLE hndUFR); // Alias for uFR_DESFIRE_StopM() - -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -UFR_STATUS DL_API uFR_int_GetDesfireUidM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t aid_key_nr, - OUT uint8_t *card_uid, - VAR uint8_t *card_uid_len, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_GetDesfireUid_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t aid_key_nr, - OUT uint8_t *card_uid, - VAR uint8_t *card_uid_len, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireFreeMemM(UFR_HANDLE hndUFR, - VAR uint32_t *free_mem_byte, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireFormatCardM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireFormatCard_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateStdDataFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t file_id, - uint32_t file_size, - uint8_t read_key_no, - uint8_t write_key_no, - uint8_t read_write_key_no, - uint8_t change_key_no, - uint8_t communication_settings, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateStdDataFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t file_id, - uint32_t file_size, - uint8_t read_key_no, - uint8_t write_key_no, - uint8_t read_write_key_no, - uint8_t change_key_no, - uint8_t communication_settings, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateStdDataFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t file_id, - uint32_t file_size, - uint8_t read_key_no, - uint8_t write_key_no, - uint8_t read_write_key_no, - uint8_t change_key_no, - uint8_t communication_settings, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t file_id, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t file_id, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t file_id, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateAesApplicationM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t setting, - uint8_t max_key_no, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateAesApplication_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t setting, - uint8_t max_key_no, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateAesApplication_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t setting, - uint8_t max_key_no, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteApplicationM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDeleteApplication_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - OUT uint16_t *card_status, - OUT uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireSetConfigurationM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint8_t random_uid, - uint8_t format_disable, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireSetConfiguration_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint8_t random_uid, - uint8_t format_disable, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireGetKeySettingsM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - VAR uint8_t *setting, - VAR uint8_t *max_key_no, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireGetKeySettings_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - VAR uint8_t *setting, - VAR uint8_t *max_key_no, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -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); - -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); - -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); - -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], - OUT uint16_t *card_status, - OUT uint16_t *exec_time); - -//--------------------------------------------------------------------------- - -UFR_STATUS DL_API uFR_int_DesfireReaStddDataFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint16_t offset, - uint16_t data_length, - uint8_t communication_settings, - OUT uint8_t *data, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadStdDataFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint16_t offset, - uint16_t data_length, - uint8_t communication_settings, - OUT uint8_t *data, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadStdDataFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint16_t offset, - uint16_t data_length, - uint8_t communication_settings, - OUT uint8_t *data, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireWriteStdDataFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint16_t offset, - uint16_t data_length, - uint8_t communication_settings, - IN uint8_t *data, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireWriteStdDataFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint16_t offset, - uint16_t data_length, - uint8_t communication_settings, - IN uint8_t *data, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireWriteStdDataFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint16_t offset, - uint16_t data_length, - uint8_t communication_settings, - IN uint8_t *data, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateValueFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t file_id, - int32_t lower_limit, - int32_t upper_limit, - int32_t value, - uint8_t limited_credit_enabled, - uint8_t read_key_no, - uint8_t write_key_no, - uint8_t read_write_key_no, - uint8_t change_key_no, - uint8_t communication_settings, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateValueFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t file_id, - int32_t lower_limit, - int32_t upper_limit, - int32_t value, - uint8_t limited_credit_enabled, - uint8_t read_key_no, - uint8_t write_key_no, - uint8_t read_write_key_no, - uint8_t change_key_no, - uint8_t communication_settings, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireCreateValueFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t file_id, - int32_t lower_limit, - int32_t upper_limit, - int32_t value, - uint8_t limited_credit_enabled, - uint8_t read_key_no, - uint8_t write_key_no, - uint8_t read_write_key_no, - uint8_t change_key_no, - uint8_t communication_settings, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadValueFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - VAR int32_t *value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadValueFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - VAR int32_t *value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireReadValueFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - VAR int32_t *value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireIncreaseValueFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - uint32_t value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireIncreaseValueFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - uint32_t value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireIncreaseValueFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - uint32_t value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDecreaseValueFileM(UFR_HANDLE hndUFR, - uint8_t aes_key_nr, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - uint32_t value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDecreaseValueFile_PK_M(UFR_HANDLE hndUFR, - IN uint8_t *aes_key_ext, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - uint32_t value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API uFR_int_DesfireDecreaseValueFile_no_auth_M(UFR_HANDLE hndUFR, - uint32_t aid, - uint8_t aid_key_nr, - uint8_t file_id, - uint8_t communication_settings, - uint32_t value, - VAR uint16_t *card_status, - VAR uint16_t *exec_time); - -UFR_STATUS DL_API GreenLedBlinkingTurnOnM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API GreenLedBlinkingTurnOffM(UFR_HANDLE hndUFR); - -///////////////////////////////////////////////////////////////////// - -UFR_STATUS DL_API SetRfAnalogRegistersTypeAM(UFR_HANDLE hndUFR, - uint8_t ThresholdMinLevel, - uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, - uint8_t RxGain, - uint8_t RFLevel); - -UFR_STATUS DL_API SetRfAnalogRegistersTypeBM(UFR_HANDLE hndUFR, - uint8_t ThresholdMinLevel, - uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, - uint8_t RxGain, - uint8_t RFLevel); - -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212M(UFR_HANDLE hndUFR, - uint8_t ThresholdMinLevel, - uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, - uint8_t RxGain, - uint8_t RFLevel); - -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424M(UFR_HANDLE hndUFR, - uint8_t ThresholdMinLevel, - uint8_t ThresholdCollLevel, - uint8_t RFLevelAmp, - uint8_t RxGain, - uint8_t RFLevel); - -UFR_STATUS DL_API SetRfAnalogRegistersTypeADefaultM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API SetRfAnalogRegistersTypeBDefaultM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_212DefaultM(UFR_HANDLE hndUFR); - -UFR_STATUS DL_API SetRfAnalogRegistersISO14443_424DefaultM(UFR_HANDLE hndUFR); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -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); - -//MIFARE PLUS -UFR_STATUS DL_API MFP_WritePersoM(UFR_HANDLE hndUFR, - uint16_t address, - IN uint8_t *data); - -UFR_STATUS DL_API MFP_CommitPersoM(UFR_HANDLE hndUFR); - -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); - -UFR_STATUS DL_API MFP_SwitchToSecurityLevel3M(UFR_HANDLE hndUFR, - uint8_t key_index); - -UFR_STATUS DL_API MFP_SwitchToSecurityLevel3_PKM(UFR_HANDLE hndUFR, - IN uint8_t *aes_key); - -UFR_STATUS DL_API MFP_AesAuthSecurityLevel1M(UFR_HANDLE hndUFR, - uint8_t key_index); - -UFR_STATUS DL_API MFP_AesAuthSecurityLevel1_PKM(UFR_HANDLE hndUFR, - IN uint8_t *aes_key); - -UFR_STATUS DL_API MFP_ChangeMasterKeyM(UFR_HANDLE hndUFR, - uint8_t key_index, - IN uint8_t *new_key); - -UFR_STATUS DL_API MFP_ChangeMasterKey_PKM(UFR_HANDLE hndUFR, - IN uint8_t *old_key, - IN uint8_t *new_key); - -UFR_STATUS DL_API MFP_ChangeConfigurationKeyM(UFR_HANDLE hndUFR, - uint8_t key_index, - IN uint8_t *new_key); - -UFR_STATUS DL_API MFP_ChangeConfigurationKey_PKM(UFR_HANDLE hndUFR, - IN uint8_t *old_key, - IN uint8_t *new_key); - -UFR_STATUS DL_API MFP_FieldConfigurationSetM(UFR_HANDLE hndUFR, - uint8_t configuration_key_index, - uint8_t rid_use, - uint8_t prox_check_use); - -UFR_STATUS DL_API MFP_FieldConfigurationSet_PKM(UFR_HANDLE hndUFR, - IN uint8_t *configuration_key, - uint8_t rid_use, - uint8_t prox_check_use); - -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); - -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); - -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); - -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); - -UFR_STATUS DL_API MFP_ChangeVcPollingEncKeyM(UFR_HANDLE hndUFR, - uint8_t configuration_key_index, - IN uint8_t *new_key); - -UFR_STATUS DL_API MFP_ChangeVcPollingEncKey_PKM(UFR_HANDLE hndUFR, - IN uint8_t *configuration_key, - IN uint8_t *new_key); - -UFR_STATUS DL_API MFP_ChangeVcPollingMacKeyM(UFR_HANDLE hndUFR, - uint8_t configuration_key_index, - IN uint8_t *new_key); - -UFR_STATUS DL_API MFP_ChangeVcPollingMacKey_PKM(UFR_HANDLE hndUFR, - IN uint8_t *configuration_key, - IN uint8_t *new_key); - -//ULTRALIGHT C -UFR_STATUS DL_API ULC_ExternalAuth_PKM(UFR_HANDLE hndUFR, - IN uint8_t *key); - -UFR_STATUS DL_API ULC_write_3des_key_no_authM(UFR_HANDLE hndUFR, - IN uint8_t *new_3des_key); - -UFR_STATUS DL_API ULC_write_3des_key_factory_keyM(UFR_HANDLE hndUFR, - IN uint8_t *new_3des_key); - -UFR_STATUS DL_API ULC_write_3des_keyM(UFR_HANDLE hndUFR, - IN uint8_t *new_3des_key, - IN uint8_t *old_3des_key); - -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -// DLL version ---------------------------------------------------------------- -uint32_t DL_API GetDllVersion(void); - -/* - * Get "exploded" dll version example: - * - * #include - * #include - * - * void main(int argc, char *argv[]) - * { - * uint32_t dwDllVersion = 0; - * uint32_t dwDllMajorVersion = 0; - * uint32_t dwDllMinorVersion = 0; - * uint32_t dwDllBuild = 0; - * - * dwDllVersion = GetDllVersion(); - * - * // "explode" the dll version: - * dwDllMajorVersion = (DWORD)(LOBYTE(LOWORD(dwDllVersion))); - * dwDllMinorVersion = (DWORD)(HIBYTE(LOWORD(dwDllVersion))); - * - * // Get the dll build number. - * dwDllBuild = (DWORD)(HIWORD(dwDllVersion)); - * - * printf("Dll version is %ld.%ld (%ld)\n", dwDllMajorVersion, - * dwDllMinorVersion, - * dwDllBuild); - * } - * - */ - -// Originality Check (performs the check is the chip on the card/tag NXP genuine): -UFR_STATUS DL_API OriginalityCheck(IN const uint8_t *signature, IN const uint8_t *uid, uint8_t uid_len, uint8_t DlogicCardType); -// Returns: -// UFR_OPEN_SSL_DYNAMIC_LIB_NOT_FOUND in case there is no OpenSSL library (libeay32.dll) in current folder or path -// UFR_OPEN_SSL_DYNAMIC_LIB_FAILED in case of OpenSSL library error (e.g. wrong OpenSSL version) -// UFR_NOT_NXP_GENUINE if chip on the card/tag is NOT NXP genuine -// UFR_OK is chip on the card/tag is NXP GENUINE - -//// debug functions: -c_string DL_API GetDllVersionStr(void); -c_string DL_API UFR_Status2String(const UFR_STATUS status); - -//// Helper functions: -#ifndef _WIN32 - -unsigned long GetTickCount(void); - -#endif // #ifndef _WIN32 - -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -c_string DL_API GetReaderDescription(void); -c_string DL_API GetReaderDescriptionM(UFR_HANDLE hndUFR); - -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -#ifdef __cplusplus -} -#endif - -#endif /* uFCoder_H_ */ diff --git a/lib/linux/aarch64/libuFCoder-aarch64.so b/lib/linux/aarch64/libuFCoder-aarch64.so deleted file mode 100644 index ddc61b42c5cb545ed59b9e5a8abdc5e735cc0802..0000000000000000000000000000000000000000 Binary files a/lib/linux/aarch64/libuFCoder-aarch64.so and /dev/null differ diff --git a/lib/linux/arm-el/libuFCoder-armel.so b/lib/linux/arm-el/libuFCoder-armel.so deleted file mode 100644 index ad3c56173aa4890838afbe704cea77341a151fc0..0000000000000000000000000000000000000000 Binary files a/lib/linux/arm-el/libuFCoder-armel.so and /dev/null differ diff --git a/lib/linux/arm-hf/libuFCoder-armhf.so b/lib/linux/arm-hf/libuFCoder-armhf.so deleted file mode 100644 index fc07f5dfce1fd07a425cef76f29ecf085443790b..0000000000000000000000000000000000000000 Binary files a/lib/linux/arm-hf/libuFCoder-armhf.so and /dev/null differ diff --git a/lib/linux/static-aarch64/libuFCoder-aarch64.a b/lib/linux/static-aarch64/libuFCoder-aarch64.a deleted file mode 100644 index f1d68d1cfa3fc02381787aed6a10041102c7fc26..0000000000000000000000000000000000000000 Binary files a/lib/linux/static-aarch64/libuFCoder-aarch64.a and /dev/null differ diff --git a/lib/linux/static-armel/libuFCoder-armel.a b/lib/linux/static-armel/libuFCoder-armel.a deleted file mode 100644 index a6973fc2a74da5e95beb39b060b86ca864d640c0..0000000000000000000000000000000000000000 Binary files a/lib/linux/static-armel/libuFCoder-armel.a and /dev/null differ diff --git a/lib/linux/static-armhf/libuFCoder-armhf.a b/lib/linux/static-armhf/libuFCoder-armhf.a deleted file mode 100644 index 0d42c00f6fffc2949a69cd02e1bd1ba4b46753e8..0000000000000000000000000000000000000000 Binary files a/lib/linux/static-armhf/libuFCoder-armhf.a and /dev/null differ diff --git a/lib/linux/static-x86/libuFCoder-x86.a b/lib/linux/static-x86/libuFCoder-x86.a deleted file mode 100644 index 40407a0bcda7d37d24f10ef197ec84a65e6f3fa0..0000000000000000000000000000000000000000 Binary files a/lib/linux/static-x86/libuFCoder-x86.a and /dev/null differ diff --git a/lib/linux/static-x86_64/libuFCoder-x86_64.a b/lib/linux/static-x86_64/libuFCoder-x86_64.a deleted file mode 100644 index 908b3cd492b140df1b87d635fb1d0a5c2fa8bb42..0000000000000000000000000000000000000000 Binary files a/lib/linux/static-x86_64/libuFCoder-x86_64.a and /dev/null differ diff --git a/lib/linux/x86/libuFCoder-x86.so b/lib/linux/x86/libuFCoder-x86.so deleted file mode 100644 index cb2889cd5fea579312bb275eb4c978758a568a35..0000000000000000000000000000000000000000 Binary files a/lib/linux/x86/libuFCoder-x86.so and /dev/null differ diff --git a/lib/linux/x86_64/libuFCoder-x86_64.so b/lib/linux/x86_64/libuFCoder-x86_64.so deleted file mode 100644 index 151b7209bea16d3b68b6b48f8ed40429a1a74662..0000000000000000000000000000000000000000 Binary files a/lib/linux/x86_64/libuFCoder-x86_64.so and /dev/null differ diff --git a/lib/macos/static-x86_64/libuFCoder-x86_64.a b/lib/macos/static-x86_64/libuFCoder-x86_64.a deleted file mode 100644 index be5d919dbb746e0f45a11af0839db2c8202eabf5..0000000000000000000000000000000000000000 Binary files a/lib/macos/static-x86_64/libuFCoder-x86_64.a and /dev/null differ diff --git a/lib/macos/x86_64/libuFCoder-x86_64.dylib b/lib/macos/x86_64/libuFCoder-x86_64.dylib deleted file mode 100644 index c6a195b9ac18fb606b0dea7e0a917a8e9c6d0967..0000000000000000000000000000000000000000 Binary files a/lib/macos/x86_64/libuFCoder-x86_64.dylib and /dev/null differ diff --git a/lib/windows/arm/uFCoder-arm.dll b/lib/windows/arm/uFCoder-arm.dll deleted file mode 100644 index 835f4fa1642dab4ca2783da078a4c954915ddb48..0000000000000000000000000000000000000000 Binary files a/lib/windows/arm/uFCoder-arm.dll and /dev/null differ diff --git a/lib/windows/arm/uFCoder-arm.lib b/lib/windows/arm/uFCoder-arm.lib deleted file mode 100644 index 72100c92aca71f543c31e6d08c127700c3ed6b57..0000000000000000000000000000000000000000 Binary files a/lib/windows/arm/uFCoder-arm.lib and /dev/null differ diff --git a/lib/windows/arm/win_iot_serial.dll b/lib/windows/arm/win_iot_serial.dll deleted file mode 100644 index 5b85cec9f50294481c2f6bda5cfa5d9c8d313bfd..0000000000000000000000000000000000000000 Binary files a/lib/windows/arm/win_iot_serial.dll and /dev/null differ diff --git a/lib/windows/arm/win_iot_serial.lib b/lib/windows/arm/win_iot_serial.lib deleted file mode 100644 index 055b62014d3e70e96f75d3d629f32429a4d21b2f..0000000000000000000000000000000000000000 Binary files a/lib/windows/arm/win_iot_serial.lib and /dev/null differ diff --git a/lib/windows/static-x86/libuFCoder-x86.a b/lib/windows/static-x86/libuFCoder-x86.a deleted file mode 100644 index 70d49462db16acd606efa8eace8709fecd88328d..0000000000000000000000000000000000000000 Binary files a/lib/windows/static-x86/libuFCoder-x86.a and /dev/null differ diff --git a/lib/windows/static-x86/readme.txt b/lib/windows/static-x86/readme.txt deleted file mode 100644 index 654a266ea075a3d34c349fe84cf65f36f3b5c687..0000000000000000000000000000000000000000 --- a/lib/windows/static-x86/readme.txt +++ /dev/null @@ -1,11 +0,0 @@ -When you use uFCoder static library, you must define DL_USE_STATIC_LIB macro before include uFCoder.h - -Also you must setup linking FTDI d2xx library in your project. FTDI distribute their library on its website http://www.ftdichip.com/Drivers/D2XX.htm -They stated in ftd2xx.h: -// Static D2XX depends on these Windows libs: -#pragma comment(lib, "setupapi.lib") -#pragma comment(lib, "advapi32.lib") -#pragma comment(lib, "user32.lib") - -After uFR-library version 4.4.1 an additional library [ws2_32.lib] must be included to support UDP transfer protocol -#pragma comment(lib, "ws2_32.lib") diff --git a/lib/windows/static-x86_64/libuFCoder-x86_64.a b/lib/windows/static-x86_64/libuFCoder-x86_64.a deleted file mode 100644 index f4b426681b240e85e51349648a2414149688021a..0000000000000000000000000000000000000000 Binary files a/lib/windows/static-x86_64/libuFCoder-x86_64.a and /dev/null differ diff --git a/lib/windows/static-x86_64/readme.txt b/lib/windows/static-x86_64/readme.txt deleted file mode 100644 index 654a266ea075a3d34c349fe84cf65f36f3b5c687..0000000000000000000000000000000000000000 --- a/lib/windows/static-x86_64/readme.txt +++ /dev/null @@ -1,11 +0,0 @@ -When you use uFCoder static library, you must define DL_USE_STATIC_LIB macro before include uFCoder.h - -Also you must setup linking FTDI d2xx library in your project. FTDI distribute their library on its website http://www.ftdichip.com/Drivers/D2XX.htm -They stated in ftd2xx.h: -// Static D2XX depends on these Windows libs: -#pragma comment(lib, "setupapi.lib") -#pragma comment(lib, "advapi32.lib") -#pragma comment(lib, "user32.lib") - -After uFR-library version 4.4.1 an additional library [ws2_32.lib] must be included to support UDP transfer protocol -#pragma comment(lib, "ws2_32.lib") diff --git a/lib/windows/uwp/uwp-serial-arm.dll b/lib/windows/uwp/uwp-serial-arm.dll deleted file mode 100644 index 53bfacf3508099bd7c873509ce9daec0a8d3b40c..0000000000000000000000000000000000000000 Binary files a/lib/windows/uwp/uwp-serial-arm.dll and /dev/null differ diff --git a/lib/windows/uwp/uwp-serial-arm.lib b/lib/windows/uwp/uwp-serial-arm.lib deleted file mode 100644 index d71ccc8a9d21feed73a13b32e7356b57ed3ff108..0000000000000000000000000000000000000000 Binary files a/lib/windows/uwp/uwp-serial-arm.lib and /dev/null differ diff --git a/lib/windows/uwp/uwp-serial-x86.dll b/lib/windows/uwp/uwp-serial-x86.dll deleted file mode 100644 index 44f7bc149e63da5bec97a3df1254709ac8696271..0000000000000000000000000000000000000000 Binary files a/lib/windows/uwp/uwp-serial-x86.dll and /dev/null differ diff --git a/lib/windows/uwp/uwp-serial-x86.lib b/lib/windows/uwp/uwp-serial-x86.lib deleted file mode 100644 index 14f2fae1ae00b8273c6ac52e440d534438bb90d0..0000000000000000000000000000000000000000 Binary files a/lib/windows/uwp/uwp-serial-x86.lib and /dev/null differ diff --git a/lib/windows/uwp/uwp-serial-x86_64.dll b/lib/windows/uwp/uwp-serial-x86_64.dll deleted file mode 100644 index 486510edac9b6519b2602d2b5ab9b505d7622623..0000000000000000000000000000000000000000 Binary files a/lib/windows/uwp/uwp-serial-x86_64.dll and /dev/null differ diff --git a/lib/windows/uwp/uwp-serial-x86_64.lib b/lib/windows/uwp/uwp-serial-x86_64.lib deleted file mode 100644 index 750486e3da8f762fbee28b51faa25d8550b53638..0000000000000000000000000000000000000000 Binary files a/lib/windows/uwp/uwp-serial-x86_64.lib and /dev/null differ diff --git a/lib/windows/x86/COMuFCoder-x86.dll b/lib/windows/x86/COMuFCoder-x86.dll deleted file mode 100644 index d7b8827855b907a39370984efa864161cf1f35d1..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86/COMuFCoder-x86.dll and /dev/null differ diff --git a/lib/windows/x86/COMuFCoder-x86.tlb b/lib/windows/x86/COMuFCoder-x86.tlb deleted file mode 100644 index 0a671405abf8dc733cf3a7f1b5128d23a6b7ed6a..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86/COMuFCoder-x86.tlb and /dev/null differ diff --git a/lib/windows/x86/libeay32.dll b/lib/windows/x86/libeay32.dll deleted file mode 100644 index c5d13a133b57922872c22a8891c31982f1454cf3..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86/libeay32.dll and /dev/null differ diff --git a/lib/windows/x86/readme.md b/lib/windows/x86/readme.md deleted file mode 100644 index 21e883f3826b510d20342abb1e70843b9e75d21b..0000000000000000000000000000000000000000 --- a/lib/windows/x86/readme.md +++ /dev/null @@ -1,22 +0,0 @@ - -# New Feature - COM wrapper for uFCoder library - -Implemented Component Object Model wrapper for uFCoder library. - -``` -COMuFCoder-x86.dll -``` - -## How to register COM library - -``` -regasm COMuFCoder-x86.dll /codebase -``` -response: -``` -Microsoft .NET Framework Assembly Registration Utility version 4.7.3056.0 -for Microsoft .NET Framework version 4.7.3056.0 -Copyright (C) Microsoft Corporation. All rights reserved. - -Types registered successfully -``` diff --git a/lib/windows/x86/uFCoder-x86.def b/lib/windows/x86/uFCoder-x86.def deleted file mode 100644 index 5c1fba70932546c4e3acc3b696225bf86f0670c0..0000000000000000000000000000000000000000 --- a/lib/windows/x86/uFCoder-x86.def +++ /dev/null @@ -1,675 +0,0 @@ -EXPORTS - AES_to_DES_key_type = AES_to_DES_key_type@0 @1 - APDUHexStrTransceive = APDUHexStrTransceive@8 @2 - APDUHexStrTransceiveM = APDUHexStrTransceiveM@12 @3 - APDUPlainTransceive = APDUPlainTransceive@16 @4 - APDUPlainTransceiveM = APDUPlainTransceiveM@20 @5 - APDUTransceive = APDUTransceive@40 @6 - APDUTransceiveM = APDUTransceiveM@44 @7 - APDU_switch_off_from_ISO7816_interface = APDU_switch_off_from_ISO7816_interface@0 @8 - APDU_switch_off_from_ISO7816_interfaceM = APDU_switch_off_from_ISO7816_interfaceM@4 @9 - APDU_switch_to_ISO14443_4_interface = APDU_switch_to_ISO14443_4_interface@0 @10 - APDU_switch_to_ISO14443_4_interfaceM = APDU_switch_to_ISO14443_4_interfaceM@4 @11 - APDU_switch_to_ISO7816_interface = APDU_switch_to_ISO7816_interface@0 @12 - APDU_switch_to_ISO7816_interfaceM = APDU_switch_to_ISO7816_interfaceM@4 @13 - AdHocEmulationStart = AdHocEmulationStart@0 @14 - AdHocEmulationStartM = AdHocEmulationStartM@4 @15 - AdHocEmulationStop = AdHocEmulationStop@0 @16 - AdHocEmulationStopM = AdHocEmulationStopM@4 @17 - AutoSleepGet = AutoSleepGet@4 @18 - AutoSleepGetM = AutoSleepGetM@8 @19 - AutoSleepSet = AutoSleepSet@4 @20 - AutoSleepSetM = AutoSleepSetM@8 @21 - BalanceGet = BalanceGet@12 @22 - BalanceGetM = BalanceGetM@16 @23 - BalanceSet = BalanceSet@12 @24 - BalanceSetM = BalanceSetM@16 @25 - BlockInSectorRead = BlockInSectorRead@20 @26 - BlockInSectorReadM = BlockInSectorReadM@24 @27 - BlockInSectorRead_AKM1 = BlockInSectorRead_AKM1@16 @28 - BlockInSectorRead_AKM1M = BlockInSectorRead_AKM1M@20 @29 - BlockInSectorRead_AKM2 = BlockInSectorRead_AKM2@16 @30 - BlockInSectorRead_AKM2M = BlockInSectorRead_AKM2M@20 @31 - BlockInSectorRead_PK = BlockInSectorRead_PK@20 @32 - BlockInSectorRead_PKM = BlockInSectorRead_PKM@24 @33 - BlockInSectorWrite = BlockInSectorWrite@20 @34 - BlockInSectorWriteM = BlockInSectorWriteM@24 @35 - BlockInSectorWrite_AKM1 = BlockInSectorWrite_AKM1@16 @36 - BlockInSectorWrite_AKM1M = BlockInSectorWrite_AKM1M@20 @37 - BlockInSectorWrite_AKM2 = BlockInSectorWrite_AKM2@16 @38 - BlockInSectorWrite_AKM2M = BlockInSectorWrite_AKM2M@20 @39 - BlockInSectorWrite_PK = BlockInSectorWrite_PK@20 @40 - BlockInSectorWrite_PKM = BlockInSectorWrite_PKM@24 @41 - BlockRead = BlockRead@16 @42 - BlockReadM = BlockReadM@20 @43 - BlockRead_AKM1 = BlockRead_AKM1@12 @44 - BlockRead_AKM1M = BlockRead_AKM1M@16 @45 - BlockRead_AKM2 = BlockRead_AKM2@12 @46 - BlockRead_AKM2M = BlockRead_AKM2M@16 @47 - BlockRead_PK = BlockRead_PK@16 @48 - BlockRead_PKM = BlockRead_PKM@20 @49 - BlockWrite = BlockWrite@16 @50 - BlockWriteM = BlockWriteM@20 @51 - BlockWrite_AKM1 = BlockWrite_AKM1@12 @52 - BlockWrite_AKM1M = BlockWrite_AKM1M@16 @53 - BlockWrite_AKM2 = BlockWrite_AKM2@12 @54 - BlockWrite_AKM2M = BlockWrite_AKM2M@16 @55 - BlockWrite_PK = BlockWrite_PK@16 @56 - BlockWrite_PKM = BlockWrite_PKM@20 @57 - BusAdminCardMake = BusAdminCardMake@8 @58 - CardEncryption_GetActualCardSN = CardEncryption_GetActualCardSN@8 @59 - CardEncryption_GetActualCardSNM = CardEncryption_GetActualCardSNM@12 @60 - CardEncryption_GetJobSN = CardEncryption_GetJobSN@4 @61 - CardEncryption_GetJobSNM = CardEncryption_GetJobSNM@8 @62 - CardEncryption_GetNext = CardEncryption_GetNext@28 @63 - CardEncryption_GetNextEncryptedCard = CardEncryption_GetNextEncryptedCard@12 @64 - CardEncryption_GetNextEncryptedCardM = CardEncryption_GetNextEncryptedCardM@16 @65 - CardEncryption_GetNextM = CardEncryption_GetNextM@32 @66 - CardEncryption_GetSalterSN = CardEncryption_GetSalterSN@8 @67 - CardEncryption_GetSalterSNM = CardEncryption_GetSalterSNM@12 @68 - CardEncryption_Initialize = CardEncryption_Initialize@8 @69 - CardEncryption_InitializeM = CardEncryption_InitializeM@12 @70 - ChangeReaderJobId = ChangeReaderJobId@8 @71 - ChangeReaderJobIdM = ChangeReaderJobIdM@12 @72 - ChangeReaderPassword = ChangeReaderPassword@8 @73 - ChangeReaderPasswordM = ChangeReaderPasswordM@12 @74 - CheckBootFirmware = CheckBootFirmware@4 @75 - CombinedModeEmulationStart = CombinedModeEmulationStart@0 @76 - CombinedModeEmulationStartM = CombinedModeEmulationStartM@4 @77 - DES_to_AES_key_type = DES_to_AES_key_type@0 @78 - DefaultBaudrateFlashCheck = DefaultBaudrateFlashCheck@0 @79 - DeslectCard = DeslectCard@0 @80 - DeslectCardM = DeslectCardM@4 @81 - DisableAntiCollision = DisableAntiCollision@0 @82 - DisableAntiCollisionM = DisableAntiCollisionM@4 @83 - EE_Lock = EE_Lock@8 @84 - EE_Password_Change = EE_Password_Change@8 @85 - EE_Read = EE_Read@12 @86 - EE_Write = EE_Write@12 @87 - EnableAntiCollision = EnableAntiCollision@0 @88 - EnableAntiCollisionM = EnableAntiCollisionM@4 @89 - EnterShareRamCommMode = EnterShareRamCommMode@0 @90 - EnterShareRamCommModeM = EnterShareRamCommModeM@4 @91 - EnumCards = EnumCards@8 @92 - EnumCardsM = EnumCardsM@12 @93 - ExitShareRamCommMode = ExitShareRamCommMode@0 @94 - ExitShareRamCommModeM = ExitShareRamCommModeM@4 @95 - FastFlashCheck = FastFlashCheck@0 @96 - GetAdHocEmulationParams = GetAdHocEmulationParams@20 @97 - GetAdHocEmulationParamsM = GetAdHocEmulationParamsM@24 @98 - GetAntiCollisionStatus = GetAntiCollisionStatus@8 @99 - GetAntiCollisionStatusM = GetAntiCollisionStatusM@12 @100 - GetAsyncCardIdSendConfig = GetAsyncCardIdSendConfig@24 @101 - GetAsyncCardIdSendConfigEx = GetAsyncCardIdSendConfigEx@32 @102 - GetAsyncCardIdSendConfigExM = GetAsyncCardIdSendConfigExM@36 @103 - GetAsyncCardIdSendConfigM = GetAsyncCardIdSendConfigM@28 @104 - GetBuildNumber = GetBuildNumber@4 @105 - GetBuildNumberM = GetBuildNumberM@8 @106 - GetCardId = GetCardId@8 @107 - GetCardIdEx = GetCardIdEx@12 @108 - GetCardIdExM = GetCardIdExM@16 @109 - GetCardIdM = GetCardIdM@12 @110 - GetCardSize = GetCardSize@8 @111 - GetCardSizeM = GetCardSizeM@12 @112 - GetDisplayIntensity = GetDisplayIntensity@4 @113 - GetDisplayIntensityM = GetDisplayIntensityM@8 @114 - GetDllVersion = GetDllVersion@0 @115 - GetDllVersionStr = GetDllVersionStr@0 @116 - GetDlogicCardType = GetDlogicCardType@4 @117 - GetDlogicCardTypeM = GetDlogicCardTypeM@8 @118 - GetExternalFieldState = GetExternalFieldState@4 @119 - GetExternalFieldStateM = GetExternalFieldStateM@8 @120 - GetLastCardIdEx = GetLastCardIdEx@12 @121 - GetLastCardIdExM = GetLastCardIdExM@16 @122 - GetNfcT2TVersion = GetNfcT2TVersion@4 @123 - GetNfcT2TVersionM = GetNfcT2TVersionM@8 @124 - GetReaderDescriptioM = GetReaderDescriptioM@4 @125 - GetReaderDescription = GetReaderDescription@0 @126 - GetReaderFirmwareVersion = GetReaderFirmwareVersion@8 @127 - GetReaderFirmwareVersionM = GetReaderFirmwareVersionM@12 @128 - GetReaderHardwareVersion = GetReaderHardwareVersion@8 @129 - GetReaderHardwareVersionM = GetReaderHardwareVersionM@12 @130 - GetReaderProMode = GetReaderProMode@8 @131 - GetReaderProModeM = GetReaderProModeM@12 @132 - GetReaderSerialDescription = GetReaderSerialDescription@4 @133 - GetReaderSerialDescriptionM = GetReaderSerialDescriptionM@8 @134 - GetReaderSerialNumber = GetReaderSerialNumber@4 @135 - GetReaderSerialNumberM = GetReaderSerialNumberM@8 @136 - GetReaderTime = GetReaderTime@4 @137 - GetReaderTimeM = GetReaderTimeM@8 @138 - GetReaderType = GetReaderType@4 @139 - GetReaderTypeM = GetReaderTypeM@8 @140 - GetRfAnalogRegistersISO14443_212 = GetRfAnalogRegistersISO14443_212@20 @141 - GetRfAnalogRegistersISO14443_212M = GetRfAnalogRegistersISO14443_212M@24 @142 - GetRfAnalogRegistersISO14443_424 = GetRfAnalogRegistersISO14443_424@20 @143 - GetRfAnalogRegistersISO14443_424M = GetRfAnalogRegistersISO14443_424M@24 @144 - GetRfAnalogRegistersTypeA = GetRfAnalogRegistersTypeA@20 @145 - GetRfAnalogRegistersTypeAM = GetRfAnalogRegistersTypeAM@24 @146 - GetRfAnalogRegistersTypeATrans = GetRfAnalogRegistersTypeATrans@40 @147 - GetRfAnalogRegistersTypeATransM = GetRfAnalogRegistersTypeATransM@44 @148 - GetRfAnalogRegistersTypeB = GetRfAnalogRegistersTypeB@20 @149 - GetRfAnalogRegistersTypeBM = GetRfAnalogRegistersTypeBM@24 @150 - GetRfAnalogRegistersTypeBTrans = GetRfAnalogRegistersTypeBTrans@36 @151 - GetRfAnalogRegistersTypeBTransM = GetRfAnalogRegistersTypeBTransM@40 @152 - GetSpeedParameters = GetSpeedParameters@8 @153 - GetSpeedParametersM = GetSpeedParametersM@12 @154 - GreenLedBlinkingTurnOff = GreenLedBlinkingTurnOff@0 @155 - GreenLedBlinkingTurnOffM = GreenLedBlinkingTurnOffM@4 @156 - GreenLedBlinkingTurnOn = GreenLedBlinkingTurnOn@0 @157 - GreenLedBlinkingTurnOnM = GreenLedBlinkingTurnOnM@4 @158 - IncrementCounter = IncrementCounter@8 @159 - IncrementCounterM = IncrementCounterM@12 @160 - JCAppDeleteEcKeyPair = JCAppDeleteEcKeyPair@4 @161 - JCAppDeleteEcKeyPairM = JCAppDeleteEcKeyPairM@8 @162 - JCAppDeleteRsaKeyPair = JCAppDeleteRsaKeyPair@4 @163 - JCAppDeleteRsaKeyPairM = JCAppDeleteRsaKeyPairM@8 @164 - JCAppGenerateKeyPair = JCAppGenerateKeyPair@24 @165 - JCAppGenerateKeyPairM = JCAppGenerateKeyPairM@28 @166 - JCAppGenerateSignature = JCAppGenerateSignature@36 @167 - JCAppGenerateSignatureM = JCAppGenerateSignatureM@40 @168 - JCAppGetEcKeySizeBits = JCAppGetEcKeySizeBits@12 @169 - JCAppGetEcKeySizeBitsM = JCAppGetEcKeySizeBitsM@16 @170 - JCAppGetEcPublicKey = JCAppGetEcPublicKey@56 @171 - JCAppGetEcPublicKeyM = JCAppGetEcPublicKeyM@60 @172 - JCAppGetErrorDescription = JCAppGetErrorDescription@4 @173 - JCAppGetObj = JCAppGetObj@16 @174 - JCAppGetObjId = JCAppGetObjId@16 @175 - JCAppGetObjIdM = JCAppGetObjIdM@20 @176 - JCAppGetObjM = JCAppGetObjM@20 @177 - JCAppGetObjSubject = JCAppGetObjSubject@16 @178 - JCAppGetObjSubjectM = JCAppGetObjSubjectM@20 @179 - JCAppGetPinTriesRemaining = JCAppGetPinTriesRemaining@8 @180 - JCAppGetPinTriesRemainingM = JCAppGetPinTriesRemainingM@12 @181 - JCAppGetRsaPublicKey = JCAppGetRsaPublicKey@20 @182 - JCAppGetRsaPublicKeyM = JCAppGetRsaPublicKeyM@24 @183 - JCAppGetSignature = JCAppGetSignature@8 @184 - JCAppInvalidateCert = JCAppInvalidateCert@8 @185 - JCAppInvalidateCertM = JCAppInvalidateCertM@12 @186 - JCAppLogin = JCAppLogin@12 @187 - JCAppLoginM = JCAppLoginM@16 @188 - JCAppPinChange = JCAppPinChange@12 @189 - JCAppPinChangeM = JCAppPinChangeM@16 @190 - JCAppPinUnblock = JCAppPinUnblock@12 @191 - JCAppPinUnblockM = JCAppPinUnblockM@16 @192 - JCAppPutObj = JCAppPutObj@24 @193 - JCAppPutObjM = JCAppPutObjM@28 @194 - JCAppPutObjSubject = JCAppPutObjSubject@16 @195 - JCAppPutObjSubjectM = JCAppPutObjSubjectM@20 @196 - JCAppPutPrivateKey = JCAppPutPrivateKey@24 @197 - JCAppPutPrivateKeyM = JCAppPutPrivateKeyM@28 @198 - JCAppSelectByAid = JCAppSelectByAid@12 @199 - JCAppSelectByAidM = JCAppSelectByAidM@16 @200 - JCAppSignatureBegin = JCAppSignatureBegin@32 @201 - JCAppSignatureBeginM = JCAppSignatureBeginM@36 @202 - JCAppSignatureEnd = JCAppSignatureEnd@4 @203 - JCAppSignatureEndM = JCAppSignatureEndM@8 @204 - JCAppSignatureUpdate = JCAppSignatureUpdate@8 @205 - JCAppSignatureUpdateM = JCAppSignatureUpdateM@12 @206 - LinRowRead = LinRowRead@24 @207 - LinRowReadM = LinRowReadM@28 @208 - LinRowRead_AKM1 = LinRowRead_AKM1@20 @209 - LinRowRead_AKM1M = LinRowRead_AKM1M@24 @210 - LinRowRead_AKM2 = LinRowRead_AKM2@20 @211 - LinRowRead_AKM2M = LinRowRead_AKM2M@24 @212 - LinRowRead_PK = LinRowRead_PK@24 @213 - LinRowRead_PKM = LinRowRead_PKM@28 @214 - LinearFormatCard = LinearFormatCard@32 @215 - LinearFormatCardM = LinearFormatCardM@36 @216 - LinearFormatCard_AKM1 = LinearFormatCard_AKM1@28 @217 - LinearFormatCard_AKM1M = LinearFormatCard_AKM1M@32 @218 - LinearFormatCard_AKM2 = LinearFormatCard_AKM2@28 @219 - LinearFormatCard_AKM2M = LinearFormatCard_AKM2M@32 @220 - LinearFormatCard_PK = LinearFormatCard_PK@32 @221 - LinearFormatCard_PKM = LinearFormatCard_PKM@36 @222 - LinearRead = LinearRead@24 @223 - LinearReadM = LinearReadM@28 @224 - LinearRead_AKM1 = LinearRead_AKM1@20 @225 - LinearRead_AKM1M = LinearRead_AKM1M@24 @226 - LinearRead_AKM2 = LinearRead_AKM2@20 @227 - LinearRead_AKM2M = LinearRead_AKM2M@24 @228 - LinearRead_PK = LinearRead_PK@24 @229 - LinearRead_PKM = LinearRead_PKM@28 @230 - LinearWrite = LinearWrite@24 @231 - LinearWriteM = LinearWriteM@28 @232 - LinearWrite_AKM1 = LinearWrite_AKM1@20 @233 - LinearWrite_AKM1M = LinearWrite_AKM1M@24 @234 - LinearWrite_AKM2 = LinearWrite_AKM2@20 @235 - LinearWrite_AKM2M = LinearWrite_AKM2M@24 @236 - LinearWrite_PK = LinearWrite_PK@24 @237 - LinearWrite_PKM = LinearWrite_PKM@28 @238 - ListCards = ListCards@8 @239 - ListCardsM = ListCardsM@12 @240 - MFP_AesAuthSecurityLevel1 = MFP_AesAuthSecurityLevel1@4 @241 - MFP_AesAuthSecurityLevel1M = MFP_AesAuthSecurityLevel1M@8 @242 - MFP_AesAuthSecurityLevel1_PK = MFP_AesAuthSecurityLevel1_PK@4 @243 - MFP_AesAuthSecurityLevel1_PKM = MFP_AesAuthSecurityLevel1_PKM@8 @244 - MFP_ChangeConfigurationKey = MFP_ChangeConfigurationKey@8 @245 - MFP_ChangeConfigurationKeyM = MFP_ChangeConfigurationKeyM@12 @246 - MFP_ChangeConfigurationKey_PK = MFP_ChangeConfigurationKey_PK@8 @247 - MFP_ChangeConfigurationKey_PKM = MFP_ChangeConfigurationKey_PKM@12 @248 - MFP_ChangeMasterKey = MFP_ChangeMasterKey@8 @249 - MFP_ChangeMasterKeyM = MFP_ChangeMasterKeyM@12 @250 - MFP_ChangeMasterKey_PK = MFP_ChangeMasterKey_PK@8 @251 - MFP_ChangeMasterKey_PKM = MFP_ChangeMasterKey_PKM@12 @252 - MFP_ChangeSectorKey = MFP_ChangeSectorKey@16 @253 - MFP_ChangeSectorKeyM = MFP_ChangeSectorKeyM@20 @254 - MFP_ChangeSectorKey_PK = MFP_ChangeSectorKey_PK@16 @255 - MFP_ChangeSectorKey_PKM = MFP_ChangeSectorKey_PKM@20 @256 - MFP_ChangeVcPollingEncKey = MFP_ChangeVcPollingEncKey@8 @257 - MFP_ChangeVcPollingEncKeyM = MFP_ChangeVcPollingEncKeyM@12 @258 - MFP_ChangeVcPollingEncKey_PK = MFP_ChangeVcPollingEncKey_PK@8 @259 - MFP_ChangeVcPollingEncKey_PKM = MFP_ChangeVcPollingEncKey_PKM@12 @260 - MFP_ChangeVcPollingMacKey = MFP_ChangeVcPollingMacKey@8 @261 - MFP_ChangeVcPollingMacKeyM = MFP_ChangeVcPollingMacKeyM@12 @262 - MFP_ChangeVcPollingMacKey_PK = MFP_ChangeVcPollingMacKey_PK@8 @263 - MFP_ChangeVcPollingMacKey_PKM = MFP_ChangeVcPollingMacKey_PKM@12 @264 - MFP_CommitPerso = MFP_CommitPerso@0 @265 - MFP_CommitPersoM = MFP_CommitPersoM@4 @266 - MFP_FieldConfigurationSet = MFP_FieldConfigurationSet@12 @267 - MFP_FieldConfigurationSetM = MFP_FieldConfigurationSetM@16 @268 - MFP_FieldConfigurationSet_PK = MFP_FieldConfigurationSet_PK@12 @269 - MFP_FieldConfigurationSet_PKM = MFP_FieldConfigurationSet_PKM@16 @270 - MFP_GetUid = MFP_GetUid@16 @271 - MFP_GetUidM = MFP_GetUidM@20 @272 - MFP_GetUid_PK = MFP_GetUid_PK@16 @273 - MFP_GetUid_PKM = MFP_GetUid_PKM@20 @274 - MFP_PersonalizationMinimal = MFP_PersonalizationMinimal@36 @275 - MFP_PersonalizationMinimalM = MFP_PersonalizationMinimalM@40 @276 - MFP_SwitchToSecurityLevel3 = MFP_SwitchToSecurityLevel3@4 @277 - MFP_SwitchToSecurityLevel3M = MFP_SwitchToSecurityLevel3M@8 @278 - MFP_SwitchToSecurityLevel3_PK = MFP_SwitchToSecurityLevel3_PK@4 @279 - MFP_SwitchToSecurityLevel3_PKM = MFP_SwitchToSecurityLevel3_PKM@8 @280 - MFP_WritePerso = MFP_WritePerso@8 @281 - MFP_WritePersoM = MFP_WritePersoM@12 @282 - NfcT2TSafeConvertVersion = NfcT2TSafeConvertVersion@8 @283 - OriginalityCheck = OriginalityCheck@16 @284 - ReadCounter = ReadCounter@8 @285 - ReadCounterM = ReadCounterM@12 @286 - ReadECCSignature = ReadECCSignature@16 @287 - ReadECCSignatureM = ReadECCSignatureM@20 @288 - ReadNFCCounter = ReadNFCCounter@4 @289 - ReadNFCCounterM = ReadNFCCounterM@8 @290 - ReadNFCCounterPwdAuth_PK = ReadNFCCounterPwdAuth_PK@8 @291 - ReadNFCCounterPwdAuth_PKM = ReadNFCCounterPwdAuth_PKM@12 @292 - ReadNFCCounterPwdAuth_RK = ReadNFCCounterPwdAuth_RK@8 @293 - ReadNFCCounterPwdAuth_RKM = ReadNFCCounterPwdAuth_RKM@12 @294 - ReadShareRam = ReadShareRam@12 @295 - ReadShareRamM = ReadShareRamM@16 @296 - ReadUserData = ReadUserData@4 @297 - ReadUserDataM = ReadUserDataM@8 @298 - ReaderClose = ReaderClose@0 @299 - ReaderCloseM = ReaderCloseM@4 @300 - ReaderEepromRead = ReaderEepromRead@12 @301 - ReaderEepromReadM = ReaderEepromReadM@16 @302 - ReaderEepromWrite = ReaderEepromWrite@16 @303 - ReaderEepromWriteM = ReaderEepromWriteM@20 @304 - ReaderHwReset = ReaderHwReset@0 @305 - ReaderKeyWrite = ReaderKeyWrite@8 @306 - ReaderKeyWriteM = ReaderKeyWriteM@12 @307 - ReaderKeysLock = ReaderKeysLock@4 @308 - ReaderKeysLockM = ReaderKeysLockM@8 @309 - ReaderKeysUnlock = ReaderKeysUnlock@4 @310 - ReaderKeysUnlockM = ReaderKeysUnlockM@8 @311 - ReaderList_Destroy = ReaderList_Destroy@4 @312 - ReaderList_GetFTDIDescriptionByIndex = ReaderList_GetFTDIDescriptionByIndex@8 @313 - ReaderList_GetFTDISerialByIndex = ReaderList_GetFTDISerialByIndex@8 @314 - ReaderList_GetInformation = ReaderList_GetInformation@40 @315 - ReaderList_GetSerialByIndex = ReaderList_GetSerialByIndex@8 @316 - ReaderList_GetSerialDescriptionByIndex = ReaderList_GetSerialDescriptionByIndex@8 @317 - ReaderList_GetTypeByIndex = ReaderList_GetTypeByIndex@8 @318 - ReaderList_OpenByIndex = ReaderList_OpenByIndex@8 @319 - ReaderList_OpenBySerial = ReaderList_OpenBySerial@8 @320 - ReaderList_UpdateAndGetCount = ReaderList_UpdateAndGetCount@4 @321 - ReaderOpen = ReaderOpen@0 @322 - ReaderOpenByType = ReaderOpenByType@4 @323 - ReaderOpenEx = ReaderOpenEx@16 @324 - ReaderOpenM = ReaderOpenM@4 @325 - ReaderReset = ReaderReset@0 @326 - ReaderResetM = ReaderResetM@4 @327 - ReaderSoftRestart = ReaderSoftRestart@0 @328 - ReaderSoftRestartM = ReaderSoftRestartM@4 @329 - ReaderStillConnected = ReaderStillConnected@4 @330 - ReaderStillConnectedM = ReaderStillConnectedM@8 @331 - ReaderUISignal = ReaderUISignal@8 @332 - ReaderUISignalM = ReaderUISignalM@12 @333 - SAM_get_key_entry_raw = SAM_get_key_entry_raw@16 @334 - SAM_get_kuc_entry = SAM_get_kuc_entry@24 @335 - SAM_get_version = SAM_get_version@8 @336 - SAM_get_version_raw = SAM_get_version_raw@8 @337 - SectorTrailerWrite = SectorTrailerWrite@44 @338 - SectorTrailerWriteM = SectorTrailerWriteM@48 @339 - SectorTrailerWriteUnsafe = SectorTrailerWriteUnsafe@20 @340 - SectorTrailerWriteUnsafeM = SectorTrailerWriteUnsafeM@24 @341 - SectorTrailerWriteUnsafe_AKM1 = SectorTrailerWriteUnsafe_AKM1@16 @342 - SectorTrailerWriteUnsafe_AKM1M = SectorTrailerWriteUnsafe_AKM1M@20 @343 - SectorTrailerWriteUnsafe_AKM2 = SectorTrailerWriteUnsafe_AKM2@16 @344 - SectorTrailerWriteUnsafe_AKM2M = SectorTrailerWriteUnsafe_AKM2M@20 @345 - SectorTrailerWriteUnsafe_PK = SectorTrailerWriteUnsafe_PK@20 @346 - SectorTrailerWriteUnsafe_PKM = SectorTrailerWriteUnsafe_PKM@24 @347 - SectorTrailerWrite_AKM1 = SectorTrailerWrite_AKM1@40 @348 - SectorTrailerWrite_AKM1M = SectorTrailerWrite_AKM1M@44 @349 - SectorTrailerWrite_AKM2 = SectorTrailerWrite_AKM2@40 @350 - SectorTrailerWrite_AKM2M = SectorTrailerWrite_AKM2M@44 @351 - SectorTrailerWrite_PK = SectorTrailerWrite_PK@44 @352 - SectorTrailerWrite_PKM = SectorTrailerWrite_PKM@48 @353 - SelectCard = SelectCard@12 @354 - SelectCardM = SelectCardM@16 @355 - SetAdHocEmulationParams = SetAdHocEmulationParams@20 @356 - SetAdHocEmulationParamsM = SetAdHocEmulationParamsM@24 @357 - SetAsyncCardIdSendConfig = SetAsyncCardIdSendConfig@24 @358 - SetAsyncCardIdSendConfigEx = SetAsyncCardIdSendConfigEx@32 @359 - SetAsyncCardIdSendConfigExM = SetAsyncCardIdSendConfigExM@36 @360 - SetAsyncCardIdSendConfigM = SetAsyncCardIdSendConfigM@28 @361 - SetDisplayData = SetDisplayData@8 @362 - SetDisplayDataM = SetDisplayDataM@12 @363 - SetDisplayIntensity = SetDisplayIntensity@4 @364 - SetDisplayIntensityM = SetDisplayIntensityM@8 @365 - SetISO14443_4_Mode = SetISO14443_4_Mode@0 @366 - SetISO14443_4_ModeM = SetISO14443_4_ModeM@4 @367 - SetReaderProMode = SetReaderProMode@4 @368 - SetReaderProModeM = SetReaderProModeM@8 @369 - SetReaderSerialDescription = SetReaderSerialDescription@4 @370 - SetReaderSerialDescriptionM = SetReaderSerialDescriptionM@8 @371 - SetReaderTime = SetReaderTime@8 @372 - SetReaderTimeM = SetReaderTimeM@12 @373 - SetRfAnalogRegistersISO14443_212 = SetRfAnalogRegistersISO14443_212@20 @374 - SetRfAnalogRegistersISO14443_212Default = SetRfAnalogRegistersISO14443_212Default@0 @375 - SetRfAnalogRegistersISO14443_212DefaultM = SetRfAnalogRegistersISO14443_212DefaultM@4 @376 - SetRfAnalogRegistersISO14443_212M = SetRfAnalogRegistersISO14443_212M@24 @377 - SetRfAnalogRegistersISO14443_424 = SetRfAnalogRegistersISO14443_424@20 @378 - SetRfAnalogRegistersISO14443_424Default = SetRfAnalogRegistersISO14443_424Default@0 @379 - SetRfAnalogRegistersISO14443_424DefaultM = SetRfAnalogRegistersISO14443_424DefaultM@4 @380 - SetRfAnalogRegistersISO14443_424M = SetRfAnalogRegistersISO14443_424M@24 @381 - SetRfAnalogRegistersTypeA = SetRfAnalogRegistersTypeA@20 @382 - SetRfAnalogRegistersTypeADefault = SetRfAnalogRegistersTypeADefault@0 @383 - SetRfAnalogRegistersTypeADefaultM = SetRfAnalogRegistersTypeADefaultM@4 @384 - SetRfAnalogRegistersTypeAM = SetRfAnalogRegistersTypeAM@24 @385 - SetRfAnalogRegistersTypeATrans = SetRfAnalogRegistersTypeATrans@40 @386 - SetRfAnalogRegistersTypeATransM = SetRfAnalogRegistersTypeATransM@44 @387 - SetRfAnalogRegistersTypeB = SetRfAnalogRegistersTypeB@20 @388 - SetRfAnalogRegistersTypeBDefault = SetRfAnalogRegistersTypeBDefault@0 @389 - SetRfAnalogRegistersTypeBDefaultM = SetRfAnalogRegistersTypeBDefaultM@4 @390 - SetRfAnalogRegistersTypeBM = SetRfAnalogRegistersTypeBM@24 @391 - SetRfAnalogRegistersTypeBTrans = SetRfAnalogRegistersTypeBTrans@36 @392 - SetRfAnalogRegistersTypeBTransM = SetRfAnalogRegistersTypeBTransM@40 @393 - SetSpeakerFrequency = SetSpeakerFrequency@4 @394 - SetSpeakerFrequencyM = SetSpeakerFrequencyM@8 @395 - SetSpeedPermanently = SetSpeedPermanently@8 @396 - SetSpeedPermanentlyM = SetSpeedPermanentlyM@12 @397 - SubscribeBlock = SubscribeBlock@8 @398 - SubscribeSector = SubscribeSector@8 @399 - TagEmulationStart = TagEmulationStart@0 @400 - TagEmulationStartM = TagEmulationStartM@4 @401 - TagEmulationStop = TagEmulationStop@0 @402 - TagEmulationStopM = TagEmulationStopM@4 @403 - UFR_Status2String = UFR_Status2String@4 @404 - ULC_ExternalAuth_PK = ULC_ExternalAuth_PK@4 @405 - ULC_ExternalAuth_PKM = ULC_ExternalAuth_PKM@8 @406 - ULC_write_3des_key = ULC_write_3des_key@8 @407 - ULC_write_3des_keyM = ULC_write_3des_keyM@12 @408 - ULC_write_3des_key_factory_key = ULC_write_3des_key_factory_key@4 @409 - ULC_write_3des_key_factory_keyM = ULC_write_3des_key_factory_keyM@8 @410 - ULC_write_3des_key_no_auth = ULC_write_3des_key_no_auth@4 @411 - ULC_write_3des_key_no_authM = ULC_write_3des_key_no_authM@8 @412 - UfrEnterSleepMode = UfrEnterSleepMode@0 @413 - UfrEnterSleepModeM = UfrEnterSleepModeM@4 @414 - UfrGetBadSelectCardNrMax = UfrGetBadSelectCardNrMax@4 @415 - UfrGetBadSelectCardNrMaxM = UfrGetBadSelectCardNrMaxM@8 @416 - UfrLeaveSleepMode = UfrLeaveSleepMode@0 @417 - UfrLeaveSleepModeM = UfrLeaveSleepModeM@4 @418 - UfrRedLightControl = UfrRedLightControl@4 @419 - UfrRedLightControlM = UfrRedLightControlM@8 @420 - UfrRgbLightControl = UfrRgbLightControl@20 @421 - UfrRgbLightControlM = UfrRgbLightControlM@24 @422 - UfrSetBadSelectCardNrMax = UfrSetBadSelectCardNrMax@4 @423 - UfrSetBadSelectCardNrMaxM = UfrSetBadSelectCardNrMaxM@8 @424 - UfrXrcGetIoState = UfrXrcGetIoState@12 @425 - UfrXrcGetIoStateM = UfrXrcGetIoStateM@16 @426 - UfrXrcLockOn = UfrXrcLockOn@4 @427 - UfrXrcLockOnM = UfrXrcLockOnM@8 @428 - UfrXrcRelayState = UfrXrcRelayState@4 @429 - UfrXrcRelayStateM = UfrXrcRelayStateM@8 @430 - ValueBlockDecrement = ValueBlockDecrement@16 @431 - ValueBlockDecrementM = ValueBlockDecrementM@20 @432 - ValueBlockDecrement_AKM1 = ValueBlockDecrement_AKM1@12 @433 - ValueBlockDecrement_AKM1M = ValueBlockDecrement_AKM1M@16 @434 - ValueBlockDecrement_AKM2 = ValueBlockDecrement_AKM2@12 @435 - ValueBlockDecrement_AKM2M = ValueBlockDecrement_AKM2M@16 @436 - ValueBlockDecrement_PK = ValueBlockDecrement_PK@16 @437 - ValueBlockDecrement_PKM = ValueBlockDecrement_PKM@20 @438 - ValueBlockInSectorDecrement = ValueBlockInSectorDecrement@20 @439 - ValueBlockInSectorDecrementM = ValueBlockInSectorDecrementM@24 @440 - ValueBlockInSectorDecrement_AKM1 = ValueBlockInSectorDecrement_AKM1@16 @441 - ValueBlockInSectorDecrement_AKM1M = ValueBlockInSectorDecrement_AKM1M@20 @442 - ValueBlockInSectorDecrement_AKM2 = ValueBlockInSectorDecrement_AKM2@16 @443 - ValueBlockInSectorDecrement_AKM2M = ValueBlockInSectorDecrement_AKM2M@20 @444 - ValueBlockInSectorDecrement_PK = ValueBlockInSectorDecrement_PK@20 @445 - ValueBlockInSectorDecrement_PKM = ValueBlockInSectorDecrement_PKM@24 @446 - ValueBlockInSectorIncrement = ValueBlockInSectorIncrement@20 @447 - ValueBlockInSectorIncrementM = ValueBlockInSectorIncrementM@24 @448 - ValueBlockInSectorIncrement_AKM1 = ValueBlockInSectorIncrement_AKM1@16 @449 - ValueBlockInSectorIncrement_AKM1M = ValueBlockInSectorIncrement_AKM1M@20 @450 - ValueBlockInSectorIncrement_AKM2 = ValueBlockInSectorIncrement_AKM2@16 @451 - ValueBlockInSectorIncrement_AKM2M = ValueBlockInSectorIncrement_AKM2M@20 @452 - ValueBlockInSectorIncrement_PK = ValueBlockInSectorIncrement_PK@20 @453 - ValueBlockInSectorIncrement_PKM = ValueBlockInSectorIncrement_PKM@24 @454 - ValueBlockInSectorRead = ValueBlockInSectorRead@24 @455 - ValueBlockInSectorReadM = ValueBlockInSectorReadM@28 @456 - ValueBlockInSectorRead_AKM1 = ValueBlockInSectorRead_AKM1@20 @457 - ValueBlockInSectorRead_AKM1M = ValueBlockInSectorRead_AKM1M@24 @458 - ValueBlockInSectorRead_AKM2 = ValueBlockInSectorRead_AKM2@20 @459 - ValueBlockInSectorRead_AKM2M = ValueBlockInSectorRead_AKM2M@24 @460 - ValueBlockInSectorRead_PK = ValueBlockInSectorRead_PK@24 @461 - ValueBlockInSectorRead_PKM = ValueBlockInSectorRead_PKM@28 @462 - ValueBlockInSectorWrite = ValueBlockInSectorWrite@24 @463 - ValueBlockInSectorWriteM = ValueBlockInSectorWriteM@28 @464 - ValueBlockInSectorWrite_AKM1 = ValueBlockInSectorWrite_AKM1@20 @465 - ValueBlockInSectorWrite_AKM1M = ValueBlockInSectorWrite_AKM1M@24 @466 - ValueBlockInSectorWrite_AKM2 = ValueBlockInSectorWrite_AKM2@20 @467 - ValueBlockInSectorWrite_AKM2M = ValueBlockInSectorWrite_AKM2M@24 @468 - ValueBlockInSectorWrite_PK = ValueBlockInSectorWrite_PK@24 @469 - ValueBlockInSectorWrite_PKM = ValueBlockInSectorWrite_PKM@28 @470 - ValueBlockIncrement = ValueBlockIncrement@16 @471 - ValueBlockIncrementM = ValueBlockIncrementM@20 @472 - ValueBlockIncrement_AKM1 = ValueBlockIncrement_AKM1@12 @473 - ValueBlockIncrement_AKM1M = ValueBlockIncrement_AKM1M@16 @474 - ValueBlockIncrement_AKM2 = ValueBlockIncrement_AKM2@12 @475 - ValueBlockIncrement_AKM2M = ValueBlockIncrement_AKM2M@16 @476 - ValueBlockIncrement_PK = ValueBlockIncrement_PK@16 @477 - ValueBlockIncrement_PKM = ValueBlockIncrement_PKM@20 @478 - ValueBlockRead = ValueBlockRead@20 @479 - ValueBlockReadM = ValueBlockReadM@24 @480 - ValueBlockRead_AKM1 = ValueBlockRead_AKM1@16 @481 - ValueBlockRead_AKM1M = ValueBlockRead_AKM1M@20 @482 - ValueBlockRead_AKM2 = ValueBlockRead_AKM2@16 @483 - ValueBlockRead_AKM2M = ValueBlockRead_AKM2M@20 @484 - ValueBlockRead_PK = ValueBlockRead_PK@20 @485 - ValueBlockRead_PKM = ValueBlockRead_PKM@24 @486 - ValueBlockWrite = ValueBlockWrite@20 @487 - ValueBlockWriteM = ValueBlockWriteM@24 @488 - ValueBlockWrite_AKM1 = ValueBlockWrite_AKM1@16 @489 - ValueBlockWrite_AKM1M = ValueBlockWrite_AKM1M@20 @490 - ValueBlockWrite_AKM2 = ValueBlockWrite_AKM2@16 @491 - ValueBlockWrite_AKM2M = ValueBlockWrite_AKM2M@20 @492 - ValueBlockWrite_PK = ValueBlockWrite_PK@20 @493 - ValueBlockWrite_PKM = ValueBlockWrite_PKM@24 @494 - WriteEmulationNdef = WriteEmulationNdef@28 @495 - WriteEmulationNdefM = WriteEmulationNdefM@32 @496 - WriteEmulationNdefWithAAR = WriteEmulationNdefWithAAR@36 @497 - WriteShareRam = WriteShareRam@12 @498 - WriteShareRamM = WriteShareRamM@16 @499 - WriteUserData = WriteUserData@4 @500 - WriteUserDataM = WriteUserDataM@8 @501 - ais_erase_right_record = ais_erase_right_record@4 @502 - ais_erase_right_recordM = ais_erase_right_recordM@8 @503 - ais_get_card_daily_duration = ais_get_card_daily_duration@4 @504 - ais_get_card_daily_durationM = ais_get_card_daily_durationM@8 @505 - ais_get_card_number = ais_get_card_number@4 @506 - ais_get_card_numberM = ais_get_card_numberM@8 @507 - ais_get_card_total_duration = ais_get_card_total_duration@4 @508 - ais_get_card_total_durationM = ais_get_card_total_durationM@8 @509 - ais_get_card_type = ais_get_card_type@4 @510 - ais_get_card_typeM = ais_get_card_typeM@8 @511 - ais_get_credit_and_period_validity = ais_get_credit_and_period_validity@44 @512 - ais_get_credit_and_period_validityM = ais_get_credit_and_period_validityM@48 @513 - ais_get_right_record = ais_get_right_record@32 @514 - ais_get_right_recordM = ais_get_right_recordM@36 @515 - ais_get_right_record_type_max_daily_counter = ais_get_right_record_type_max_daily_counter@36 @516 - ais_get_right_record_type_max_daily_counterM = ais_get_right_record_type_max_daily_counterM@40 @517 - ais_get_right_type_record = ais_get_right_type_record@12 @518 - ais_get_right_type_recordM = ais_get_right_type_recordM@16 @519 - ais_get_validate_record = ais_get_validate_record@40 @520 - ais_get_validate_recordM = ais_get_validate_recordM@44 @521 - ais_set_card_daily_duration = ais_set_card_daily_duration@4 @522 - ais_set_card_daily_durationM = ais_set_card_daily_durationM@8 @523 - ais_set_card_total_duration = ais_set_card_total_duration@4 @524 - ais_set_card_total_durationM = ais_set_card_total_durationM@8 @525 - ais_set_card_type = ais_set_card_type@4 @526 - ais_set_card_typeM = ais_set_card_typeM@8 @527 - ais_set_credit_and_period_validity = ais_set_credit_and_period_validity@44 @528 - ais_set_credit_and_period_validityM = ais_set_credit_and_period_validityM@48 @529 - ais_set_right_record = ais_set_right_record@32 @530 - ais_set_right_recordM = ais_set_right_recordM@36 @531 - ais_set_right_record_type_max_daily_counter = ais_set_right_record_type_max_daily_counter@36 @532 - ais_set_right_record_type_max_daily_counterM = ais_set_right_record_type_max_daily_counterM@40 @533 - ais_set_right_type_record = ais_set_right_type_record@12 @534 - ais_set_right_type_recordM = ais_set_right_type_recordM@16 @535 - ais_set_validate_record = ais_set_validate_record@40 @536 - ais_set_validate_recordM = ais_set_validate_recordM@44 @537 - card_halt_enable = card_halt_enable@0 @538 - card_halt_enableM = card_halt_enableM@4 @539 - card_transceive = card_transceive@40 @540 - card_transceiveM = card_transceiveM@44 @541 - card_transceive_mode_start = card_transceive_mode_start@16 @542 - card_transceive_mode_startM = card_transceive_mode_startM@20 @543 - card_transceive_mode_stop = card_transceive_mode_stop@0 @544 - card_transceive_mode_stopM = card_transceive_mode_stopM@4 @545 - close_ISO7816_interface_APDU_ISO14443_4 = close_ISO7816_interface_APDU_ISO14443_4@0 @546 - close_ISO7816_interface_APDU_ISO14443_4M = close_ISO7816_interface_APDU_ISO14443_4M@4 @547 - close_ISO7816_interface_no_APDU = close_ISO7816_interface_no_APDU@0 @548 - close_ISO7816_interface_no_APDUM = close_ISO7816_interface_no_APDUM@4 @549 - erase_all_ndef_records = erase_all_ndef_records@4 @550 - erase_all_ndef_recordsM = erase_all_ndef_recordsM@8 @551 - erase_last_ndef_record = erase_last_ndef_record@4 @552 - erase_last_ndef_recordM = erase_last_ndef_recordM@8 @553 - get_ndef_record_count = get_ndef_record_count@16 @554 - get_ndef_record_countM = get_ndef_record_countM@20 @555 - i_block_trans_rcv_chain = i_block_trans_rcv_chain@32 @556 - i_block_trans_rcv_chainM = i_block_trans_rcv_chainM@36 @557 - ndef_card_initialization = ndef_card_initialization@0 @558 - ndef_card_initializationM = ndef_card_initializationM@4 @559 - open_ISO7816_interface = open_ISO7816_interface@8 @560 - open_ISO7816_interfaceM = open_ISO7816_interfaceM@12 @561 - r_block_transceive = r_block_transceive@24 @562 - r_block_transceiveM = r_block_transceiveM@28 @563 - read_ndef_record = read_ndef_record@36 @564 - read_ndef_recordM = read_ndef_recordM@40 @565 - s_block_deselect = s_block_deselect@4 @566 - s_block_deselectM = s_block_deselectM@8 @567 - test_desfire_ver = test_desfire_ver@0 @568 - test_i_block = test_i_block@0 @569 - uFR_APDU_Start = uFR_APDU_Start@0 @570 - uFR_APDU_StartM = uFR_APDU_StartM@4 @571 - uFR_APDU_Stop = uFR_APDU_Stop@0 @572 - uFR_APDU_StopM = uFR_APDU_StopM@4 @573 - uFR_APDU_Transceive = uFR_APDU_Transceive@44 @574 - uFR_APDU_TransceiveM = uFR_APDU_TransceiveM@48 @575 - uFR_DESFIRE_Start = uFR_DESFIRE_Start@0 @576 - uFR_DESFIRE_StartM = uFR_DESFIRE_StartM@4 @577 - uFR_DESFIRE_Stop = uFR_DESFIRE_Stop@0 @578 - uFR_DESFIRE_StopM = uFR_DESFIRE_StopM@4 @579 - uFR_i_block_transceive = uFR_i_block_transceive@28 @580 - uFR_i_block_transceiveM = uFR_i_block_transceiveM@32 @581 - uFR_int_DesfireChangeAesKey = uFR_int_DesfireChangeAesKey@32 @582 - uFR_int_DesfireChangeAesKeyM = uFR_int_DesfireChangeAesKeyM@36 @583 - uFR_int_DesfireChangeAesKey_A = uFR_int_DesfireChangeAesKey_A@32 @584 - uFR_int_DesfireChangeAesKey_PK = uFR_int_DesfireChangeAesKey_PK@32 @585 - uFR_int_DesfireChangeAesKey_PK_M = uFR_int_DesfireChangeAesKey_PK_M@36 @586 - uFR_int_DesfireChangeKeySettings = uFR_int_DesfireChangeKeySettings@20 @587 - uFR_int_DesfireChangeKeySettingsM = uFR_int_DesfireChangeKeySettingsM@24 @588 - uFR_int_DesfireChangeKeySettings_PK = uFR_int_DesfireChangeKeySettings_PK@20 @589 - uFR_int_DesfireChangeKeySettings_PK_M = uFR_int_DesfireChangeKeySettings_PK_M@24 @590 - uFR_int_DesfireCreateAesApplication = uFR_int_DesfireCreateAesApplication@24 @591 - uFR_int_DesfireCreateAesApplicationM = uFR_int_DesfireCreateAesApplicationM@28 @592 - uFR_int_DesfireCreateAesApplication_PK = uFR_int_DesfireCreateAesApplication_PK@24 @593 - uFR_int_DesfireCreateAesApplication_PK_M = uFR_int_DesfireCreateAesApplication_PK_M@28 @594 - uFR_int_DesfireCreateAesApplication_no_auth = uFR_int_DesfireCreateAesApplication_no_auth@20 @595 - uFR_int_DesfireCreateAesApplication_no_auth_M = uFR_int_DesfireCreateAesApplication_no_auth_M@24 @596 - uFR_int_DesfireCreateStdDataFile = uFR_int_DesfireCreateStdDataFile@44 @597 - uFR_int_DesfireCreateStdDataFileM = uFR_int_DesfireCreateStdDataFileM@48 @598 - uFR_int_DesfireCreateStdDataFile_PK = uFR_int_DesfireCreateStdDataFile_PK@44 @599 - uFR_int_DesfireCreateStdDataFile_PK_M = uFR_int_DesfireCreateStdDataFile_PK_M@48 @600 - uFR_int_DesfireCreateStdDataFile_no_auth = uFR_int_DesfireCreateStdDataFile_no_auth@40 @601 - uFR_int_DesfireCreateStdDataFile_no_auth_M = uFR_int_DesfireCreateStdDataFile_no_auth_M@44 @602 - uFR_int_DesfireCreateValueFile = uFR_int_DesfireCreateValueFile@56 @603 - uFR_int_DesfireCreateValueFileM = uFR_int_DesfireCreateValueFileM@60 @604 - uFR_int_DesfireCreateValueFile_PK = uFR_int_DesfireCreateValueFile_PK@56 @605 - uFR_int_DesfireCreateValueFile_PK_M = uFR_int_DesfireCreateValueFile_PK_M@60 @606 - uFR_int_DesfireCreateValueFile_no_auth = uFR_int_DesfireCreateValueFile_no_auth@52 @607 - uFR_int_DesfireCreateValueFile_no_auth_M = uFR_int_DesfireCreateValueFile_no_auth_M@56 @608 - uFR_int_DesfireDecreaseValueFile = uFR_int_DesfireDecreaseValueFile@32 @609 - uFR_int_DesfireDecreaseValueFileM = uFR_int_DesfireDecreaseValueFileM@36 @610 - uFR_int_DesfireDecreaseValueFile_PK = uFR_int_DesfireDecreaseValueFile_PK@32 @611 - uFR_int_DesfireDecreaseValueFile_PK_M = uFR_int_DesfireDecreaseValueFile_PK_M@36 @612 - uFR_int_DesfireDecreaseValueFile_no_auth = uFR_int_DesfireDecreaseValueFile_no_auth@28 @613 - uFR_int_DesfireDecreaseValueFile_no_auth_M = uFR_int_DesfireDecreaseValueFile_no_auth_M@32 @614 - uFR_int_DesfireDeleteApplication = uFR_int_DesfireDeleteApplication@16 @615 - uFR_int_DesfireDeleteApplicationM = uFR_int_DesfireDeleteApplicationM@20 @616 - uFR_int_DesfireDeleteApplication_PK = uFR_int_DesfireDeleteApplication_PK@16 @617 - uFR_int_DesfireDeleteApplication_PK_M = uFR_int_DesfireDeleteApplication_PK_M@20 @618 - uFR_int_DesfireDeleteFile = uFR_int_DesfireDeleteFile@20 @619 - uFR_int_DesfireDeleteFileM = uFR_int_DesfireDeleteFileM@24 @620 - uFR_int_DesfireDeleteFile_PK = uFR_int_DesfireDeleteFile_PK@20 @621 - uFR_int_DesfireDeleteFile_PK_M = uFR_int_DesfireDeleteFile_PK_M@24 @622 - uFR_int_DesfireDeleteFile_no_auth = uFR_int_DesfireDeleteFile_no_auth@16 @623 - uFR_int_DesfireDeleteFile_no_auth_M = uFR_int_DesfireDeleteFile_no_auth_M@20 @624 - uFR_int_DesfireFormatCard = uFR_int_DesfireFormatCard@12 @625 - uFR_int_DesfireFormatCardM = uFR_int_DesfireFormatCardM@16 @626 - uFR_int_DesfireFormatCard_PK = uFR_int_DesfireFormatCard_PK@12 @627 - uFR_int_DesfireFormatCard_PK_M = uFR_int_DesfireFormatCard_PK_M@16 @628 - uFR_int_DesfireFreeMem = uFR_int_DesfireFreeMem@12 @629 - uFR_int_DesfireFreeMemM = uFR_int_DesfireFreeMemM@16 @630 - uFR_int_DesfireGetKeySettings = uFR_int_DesfireGetKeySettings@24 @631 - uFR_int_DesfireGetKeySettingsM = uFR_int_DesfireGetKeySettingsM@28 @632 - uFR_int_DesfireGetKeySettings_PK = uFR_int_DesfireGetKeySettings_PK@24 @633 - uFR_int_DesfireGetKeySettings_PK_M = uFR_int_DesfireGetKeySettings_PK_M@28 @634 - uFR_int_DesfireIncreaseValueFile = uFR_int_DesfireIncreaseValueFile@32 @635 - uFR_int_DesfireIncreaseValueFileM = uFR_int_DesfireIncreaseValueFileM@36 @636 - uFR_int_DesfireIncreaseValueFile_PK = uFR_int_DesfireIncreaseValueFile_PK@32 @637 - uFR_int_DesfireIncreaseValueFile_PK_M = uFR_int_DesfireIncreaseValueFile_PK_M@36 @638 - uFR_int_DesfireIncreaseValueFile_no_auth = uFR_int_DesfireIncreaseValueFile_no_auth@28 @639 - uFR_int_DesfireIncreaseValueFile_no_auth_M = uFR_int_DesfireIncreaseValueFile_no_auth_M@32 @640 - uFR_int_DesfireReaStddDataFileM = uFR_int_DesfireReaStddDataFileM@44 @641 - uFR_int_DesfireReadStdDataFile = uFR_int_DesfireReadStdDataFile@40 @642 - uFR_int_DesfireReadStdDataFile_PK = uFR_int_DesfireReadStdDataFile_PK@40 @643 - uFR_int_DesfireReadStdDataFile_PK_M = uFR_int_DesfireReadStdDataFile_PK_M@44 @644 - uFR_int_DesfireReadStdDataFile_no_auth = uFR_int_DesfireReadStdDataFile_no_auth@36 @645 - uFR_int_DesfireReadStdDataFile_no_auth_M = uFR_int_DesfireReadStdDataFile_no_auth_M@40 @646 - uFR_int_DesfireReadValueFile = uFR_int_DesfireReadValueFile@32 @647 - uFR_int_DesfireReadValueFileM = uFR_int_DesfireReadValueFileM@36 @648 - uFR_int_DesfireReadValueFile_PK = uFR_int_DesfireReadValueFile_PK@32 @649 - uFR_int_DesfireReadValueFile_PK_M = uFR_int_DesfireReadValueFile_PK_M@36 @650 - uFR_int_DesfireReadValueFile_no_auth = uFR_int_DesfireReadValueFile_no_auth@28 @651 - uFR_int_DesfireReadValueFile_no_auth_M = uFR_int_DesfireReadValueFile_no_auth_M@32 @652 - uFR_int_DesfireSetConfiguration = uFR_int_DesfireSetConfiguration@20 @653 - uFR_int_DesfireSetConfigurationM = uFR_int_DesfireSetConfigurationM@24 @654 - uFR_int_DesfireSetConfiguration_PK = uFR_int_DesfireSetConfiguration_PK@20 @655 - uFR_int_DesfireSetConfiguration_PK_M = uFR_int_DesfireSetConfiguration_PK_M@24 @656 - uFR_int_DesfireWriteAesKey = uFR_int_DesfireWriteAesKey@8 @657 - uFR_int_DesfireWriteAesKeyM = uFR_int_DesfireWriteAesKeyM@12 @658 - uFR_int_DesfireWriteStdDataFile = uFR_int_DesfireWriteStdDataFile@40 @659 - uFR_int_DesfireWriteStdDataFileM = uFR_int_DesfireWriteStdDataFileM@44 @660 - uFR_int_DesfireWriteStdDataFile_PK = uFR_int_DesfireWriteStdDataFile_PK@40 @661 - uFR_int_DesfireWriteStdDataFile_PK_M = uFR_int_DesfireWriteStdDataFile_PK_M@44 @662 - uFR_int_DesfireWriteStdDataFile_no_auth = uFR_int_DesfireWriteStdDataFile_no_auth@36 @663 - uFR_int_DesfireWriteStdDataFile_no_auth_M = uFR_int_DesfireWriteStdDataFile_no_auth_M@40 @664 - uFR_int_GetDesfireUid = uFR_int_GetDesfireUid@28 @665 - uFR_int_GetDesfireUidM = uFR_int_GetDesfireUidM@32 @666 - uFR_int_GetDesfireUid_PK = uFR_int_GetDesfireUid_PK@28 @667 - uFR_int_GetDesfireUid_PK_M = uFR_int_GetDesfireUid_PK_M@32 @668 - uart_transceive = uart_transceive@20 @669 - uart_transceiveM = uart_transceiveM@24 @670 - write_ndef_record = write_ndef_record@36 @671 - write_ndef_recordM = write_ndef_recordM@40 @672 - write_ndef_record_mirroring = write_ndef_record_mirroring@48 @673 - write_ndef_record_mirroringM = write_ndef_record_mirroringM@52 @674 diff --git a/lib/windows/x86/uFCoder-x86.dll b/lib/windows/x86/uFCoder-x86.dll deleted file mode 100644 index cb4c16d5ff8c4289bbfe61dac12b7a6aacc11175..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86/uFCoder-x86.dll and /dev/null differ diff --git a/lib/windows/x86_64/COMuFCoder-x86_64.dll b/lib/windows/x86_64/COMuFCoder-x86_64.dll deleted file mode 100644 index 40bf35952ef0b32e12d7ab978476a63a2bdd3af0..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86_64/COMuFCoder-x86_64.dll and /dev/null differ diff --git a/lib/windows/x86_64/COMuFCoder-x86_64.tlb b/lib/windows/x86_64/COMuFCoder-x86_64.tlb deleted file mode 100644 index 5b26410ecfe4591f85f927ec0e7c34b4bc8fe814..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86_64/COMuFCoder-x86_64.tlb and /dev/null differ diff --git a/lib/windows/x86_64/libeay32.dll b/lib/windows/x86_64/libeay32.dll deleted file mode 100644 index 950b5c26731a2dc9fea6e40d6f0e0d920b22e664..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86_64/libeay32.dll and /dev/null differ diff --git a/lib/windows/x86_64/uFCoder-x86_64.def b/lib/windows/x86_64/uFCoder-x86_64.def deleted file mode 100644 index 8a3e190688f69b7e877829675bca3cb151737d8d..0000000000000000000000000000000000000000 --- a/lib/windows/x86_64/uFCoder-x86_64.def +++ /dev/null @@ -1,675 +0,0 @@ -EXPORTS - AES_to_DES_key_type @1 - APDUHexStrTransceive @2 - APDUHexStrTransceiveM @3 - APDUPlainTransceive @4 - APDUPlainTransceiveM @5 - APDUTransceive @6 - APDUTransceiveM @7 - APDU_switch_off_from_ISO7816_interface @8 - APDU_switch_off_from_ISO7816_interfaceM @9 - APDU_switch_to_ISO14443_4_interface @10 - APDU_switch_to_ISO14443_4_interfaceM @11 - APDU_switch_to_ISO7816_interface @12 - APDU_switch_to_ISO7816_interfaceM @13 - AdHocEmulationStart @14 - AdHocEmulationStartM @15 - AdHocEmulationStop @16 - AdHocEmulationStopM @17 - AutoSleepGet @18 - AutoSleepGetM @19 - AutoSleepSet @20 - AutoSleepSetM @21 - BalanceGet @22 - BalanceGetM @23 - BalanceSet @24 - BalanceSetM @25 - BlockInSectorRead @26 - BlockInSectorReadM @27 - BlockInSectorRead_AKM1 @28 - BlockInSectorRead_AKM1M @29 - BlockInSectorRead_AKM2 @30 - BlockInSectorRead_AKM2M @31 - BlockInSectorRead_PK @32 - BlockInSectorRead_PKM @33 - BlockInSectorWrite @34 - BlockInSectorWriteM @35 - BlockInSectorWrite_AKM1 @36 - BlockInSectorWrite_AKM1M @37 - BlockInSectorWrite_AKM2 @38 - BlockInSectorWrite_AKM2M @39 - BlockInSectorWrite_PK @40 - BlockInSectorWrite_PKM @41 - BlockRead @42 - BlockReadM @43 - BlockRead_AKM1 @44 - BlockRead_AKM1M @45 - BlockRead_AKM2 @46 - BlockRead_AKM2M @47 - BlockRead_PK @48 - BlockRead_PKM @49 - BlockWrite @50 - BlockWriteM @51 - BlockWrite_AKM1 @52 - BlockWrite_AKM1M @53 - BlockWrite_AKM2 @54 - BlockWrite_AKM2M @55 - BlockWrite_PK @56 - BlockWrite_PKM @57 - BusAdminCardMake @58 - CardEncryption_GetActualCardSN @59 - CardEncryption_GetActualCardSNM @60 - CardEncryption_GetJobSN @61 - CardEncryption_GetJobSNM @62 - CardEncryption_GetNext @63 - CardEncryption_GetNextEncryptedCard @64 - CardEncryption_GetNextEncryptedCardM @65 - CardEncryption_GetNextM @66 - CardEncryption_GetSalterSN @67 - CardEncryption_GetSalterSNM @68 - CardEncryption_Initialize @69 - CardEncryption_InitializeM @70 - ChangeReaderJobId @71 - ChangeReaderJobIdM @72 - ChangeReaderPassword @73 - ChangeReaderPasswordM @74 - CheckBootFirmware @75 - CombinedModeEmulationStart @76 - CombinedModeEmulationStartM @77 - DES_to_AES_key_type @78 - DefaultBaudrateFlashCheck @79 - DeslectCard @80 - DeslectCardM @81 - DisableAntiCollision @82 - DisableAntiCollisionM @83 - EE_Lock @84 - EE_Password_Change @85 - EE_Read @86 - EE_Write @87 - EnableAntiCollision @88 - EnableAntiCollisionM @89 - EnterShareRamCommMode @90 - EnterShareRamCommModeM @91 - EnumCards @92 - EnumCardsM @93 - ExitShareRamCommMode @94 - ExitShareRamCommModeM @95 - FastFlashCheck @96 - GetAdHocEmulationParams @97 - GetAdHocEmulationParamsM @98 - GetAntiCollisionStatus @99 - GetAntiCollisionStatusM @100 - GetAsyncCardIdSendConfig @101 - GetAsyncCardIdSendConfigEx @102 - GetAsyncCardIdSendConfigExM @103 - GetAsyncCardIdSendConfigM @104 - GetBuildNumber @105 - GetBuildNumberM @106 - GetCardId @107 - GetCardIdEx @108 - GetCardIdExM @109 - GetCardIdM @110 - GetCardSize @111 - GetCardSizeM @112 - GetDisplayIntensity @113 - GetDisplayIntensityM @114 - GetDllVersion @115 - GetDllVersionStr @116 - GetDlogicCardType @117 - GetDlogicCardTypeM @118 - GetExternalFieldState @119 - GetExternalFieldStateM @120 - GetLastCardIdEx @121 - GetLastCardIdExM @122 - GetNfcT2TVersion @123 - GetNfcT2TVersionM @124 - GetReaderDescriptioM @125 - GetReaderDescription @126 - GetReaderFirmwareVersion @127 - GetReaderFirmwareVersionM @128 - GetReaderHardwareVersion @129 - GetReaderHardwareVersionM @130 - GetReaderProMode @131 - GetReaderProModeM @132 - GetReaderSerialDescription @133 - GetReaderSerialDescriptionM @134 - GetReaderSerialNumber @135 - GetReaderSerialNumberM @136 - GetReaderTime @137 - GetReaderTimeM @138 - GetReaderType @139 - GetReaderTypeM @140 - GetRfAnalogRegistersISO14443_212 @141 - GetRfAnalogRegistersISO14443_212M @142 - GetRfAnalogRegistersISO14443_424 @143 - GetRfAnalogRegistersISO14443_424M @144 - GetRfAnalogRegistersTypeA @145 - GetRfAnalogRegistersTypeAM @146 - GetRfAnalogRegistersTypeATrans @147 - GetRfAnalogRegistersTypeATransM @148 - GetRfAnalogRegistersTypeB @149 - GetRfAnalogRegistersTypeBM @150 - GetRfAnalogRegistersTypeBTrans @151 - GetRfAnalogRegistersTypeBTransM @152 - GetSpeedParameters @153 - GetSpeedParametersM @154 - GreenLedBlinkingTurnOff @155 - GreenLedBlinkingTurnOffM @156 - GreenLedBlinkingTurnOn @157 - GreenLedBlinkingTurnOnM @158 - IncrementCounter @159 - IncrementCounterM @160 - JCAppDeleteEcKeyPair @161 - JCAppDeleteEcKeyPairM @162 - JCAppDeleteRsaKeyPair @163 - JCAppDeleteRsaKeyPairM @164 - JCAppGenerateKeyPair @165 - JCAppGenerateKeyPairM @166 - JCAppGenerateSignature @167 - JCAppGenerateSignatureM @168 - JCAppGetEcKeySizeBits @169 - JCAppGetEcKeySizeBitsM @170 - JCAppGetEcPublicKey @171 - JCAppGetEcPublicKeyM @172 - JCAppGetErrorDescription @173 - JCAppGetObj @174 - JCAppGetObjId @175 - JCAppGetObjIdM @176 - JCAppGetObjM @177 - JCAppGetObjSubject @178 - JCAppGetObjSubjectM @179 - JCAppGetPinTriesRemaining @180 - JCAppGetPinTriesRemainingM @181 - JCAppGetRsaPublicKey @182 - JCAppGetRsaPublicKeyM @183 - JCAppGetSignature @184 - JCAppInvalidateCert @185 - JCAppInvalidateCertM @186 - JCAppLogin @187 - JCAppLoginM @188 - JCAppPinChange @189 - JCAppPinChangeM @190 - JCAppPinUnblock @191 - JCAppPinUnblockM @192 - JCAppPutObj @193 - JCAppPutObjM @194 - JCAppPutObjSubject @195 - JCAppPutObjSubjectM @196 - JCAppPutPrivateKey @197 - JCAppPutPrivateKeyM @198 - JCAppSelectByAid @199 - JCAppSelectByAidM @200 - JCAppSignatureBegin @201 - JCAppSignatureBeginM @202 - JCAppSignatureEnd @203 - JCAppSignatureEndM @204 - JCAppSignatureUpdate @205 - JCAppSignatureUpdateM @206 - LinRowRead @207 - LinRowReadM @208 - LinRowRead_AKM1 @209 - LinRowRead_AKM1M @210 - LinRowRead_AKM2 @211 - LinRowRead_AKM2M @212 - LinRowRead_PK @213 - LinRowRead_PKM @214 - LinearFormatCard @215 - LinearFormatCardM @216 - LinearFormatCard_AKM1 @217 - LinearFormatCard_AKM1M @218 - LinearFormatCard_AKM2 @219 - LinearFormatCard_AKM2M @220 - LinearFormatCard_PK @221 - LinearFormatCard_PKM @222 - LinearRead @223 - LinearReadM @224 - LinearRead_AKM1 @225 - LinearRead_AKM1M @226 - LinearRead_AKM2 @227 - LinearRead_AKM2M @228 - LinearRead_PK @229 - LinearRead_PKM @230 - LinearWrite @231 - LinearWriteM @232 - LinearWrite_AKM1 @233 - LinearWrite_AKM1M @234 - LinearWrite_AKM2 @235 - LinearWrite_AKM2M @236 - LinearWrite_PK @237 - LinearWrite_PKM @238 - ListCards @239 - ListCardsM @240 - MFP_AesAuthSecurityLevel1 @241 - MFP_AesAuthSecurityLevel1M @242 - MFP_AesAuthSecurityLevel1_PK @243 - MFP_AesAuthSecurityLevel1_PKM @244 - MFP_ChangeConfigurationKey @245 - MFP_ChangeConfigurationKeyM @246 - MFP_ChangeConfigurationKey_PK @247 - MFP_ChangeConfigurationKey_PKM @248 - MFP_ChangeMasterKey @249 - MFP_ChangeMasterKeyM @250 - MFP_ChangeMasterKey_PK @251 - MFP_ChangeMasterKey_PKM @252 - MFP_ChangeSectorKey @253 - MFP_ChangeSectorKeyM @254 - MFP_ChangeSectorKey_PK @255 - MFP_ChangeSectorKey_PKM @256 - MFP_ChangeVcPollingEncKey @257 - MFP_ChangeVcPollingEncKeyM @258 - MFP_ChangeVcPollingEncKey_PK @259 - MFP_ChangeVcPollingEncKey_PKM @260 - MFP_ChangeVcPollingMacKey @261 - MFP_ChangeVcPollingMacKeyM @262 - MFP_ChangeVcPollingMacKey_PK @263 - MFP_ChangeVcPollingMacKey_PKM @264 - MFP_CommitPerso @265 - MFP_CommitPersoM @266 - MFP_FieldConfigurationSet @267 - MFP_FieldConfigurationSetM @268 - MFP_FieldConfigurationSet_PK @269 - MFP_FieldConfigurationSet_PKM @270 - MFP_GetUid @271 - MFP_GetUidM @272 - MFP_GetUid_PK @273 - MFP_GetUid_PKM @274 - MFP_PersonalizationMinimal @275 - MFP_PersonalizationMinimalM @276 - MFP_SwitchToSecurityLevel3 @277 - MFP_SwitchToSecurityLevel3M @278 - MFP_SwitchToSecurityLevel3_PK @279 - MFP_SwitchToSecurityLevel3_PKM @280 - MFP_WritePerso @281 - MFP_WritePersoM @282 - NfcT2TSafeConvertVersion @283 - OriginalityCheck @284 - ReadCounter @285 - ReadCounterM @286 - ReadECCSignature @287 - ReadECCSignatureM @288 - ReadNFCCounter @289 - ReadNFCCounterM @290 - ReadNFCCounterPwdAuth_PK @291 - ReadNFCCounterPwdAuth_PKM @292 - ReadNFCCounterPwdAuth_RK @293 - ReadNFCCounterPwdAuth_RKM @294 - ReadShareRam @295 - ReadShareRamM @296 - ReadUserData @297 - ReadUserDataM @298 - ReaderClose @299 - ReaderCloseM @300 - ReaderEepromRead @301 - ReaderEepromReadM @302 - ReaderEepromWrite @303 - ReaderEepromWriteM @304 - ReaderHwReset @305 - ReaderKeyWrite @306 - ReaderKeyWriteM @307 - ReaderKeysLock @308 - ReaderKeysLockM @309 - ReaderKeysUnlock @310 - ReaderKeysUnlockM @311 - ReaderList_Destroy @312 - ReaderList_GetFTDIDescriptionByIndex @313 - ReaderList_GetFTDISerialByIndex @314 - ReaderList_GetInformation @315 - ReaderList_GetSerialByIndex @316 - ReaderList_GetSerialDescriptionByIndex @317 - ReaderList_GetTypeByIndex @318 - ReaderList_OpenByIndex @319 - ReaderList_OpenBySerial @320 - ReaderList_UpdateAndGetCount @321 - ReaderOpen @322 - ReaderOpenByType @323 - ReaderOpenEx @324 - ReaderOpenM @325 - ReaderReset @326 - ReaderResetM @327 - ReaderSoftRestart @328 - ReaderSoftRestartM @329 - ReaderStillConnected @330 - ReaderStillConnectedM @331 - ReaderUISignal @332 - ReaderUISignalM @333 - SAM_get_key_entry_raw @334 - SAM_get_kuc_entry @335 - SAM_get_version @336 - SAM_get_version_raw @337 - SectorTrailerWrite @338 - SectorTrailerWriteM @339 - SectorTrailerWriteUnsafe @340 - SectorTrailerWriteUnsafeM @341 - SectorTrailerWriteUnsafe_AKM1 @342 - SectorTrailerWriteUnsafe_AKM1M @343 - SectorTrailerWriteUnsafe_AKM2 @344 - SectorTrailerWriteUnsafe_AKM2M @345 - SectorTrailerWriteUnsafe_PK @346 - SectorTrailerWriteUnsafe_PKM @347 - SectorTrailerWrite_AKM1 @348 - SectorTrailerWrite_AKM1M @349 - SectorTrailerWrite_AKM2 @350 - SectorTrailerWrite_AKM2M @351 - SectorTrailerWrite_PK @352 - SectorTrailerWrite_PKM @353 - SelectCard @354 - SelectCardM @355 - SetAdHocEmulationParams @356 - SetAdHocEmulationParamsM @357 - SetAsyncCardIdSendConfig @358 - SetAsyncCardIdSendConfigEx @359 - SetAsyncCardIdSendConfigExM @360 - SetAsyncCardIdSendConfigM @361 - SetDisplayData @362 - SetDisplayDataM @363 - SetDisplayIntensity @364 - SetDisplayIntensityM @365 - SetISO14443_4_Mode @366 - SetISO14443_4_ModeM @367 - SetReaderProMode @368 - SetReaderProModeM @369 - SetReaderSerialDescription @370 - SetReaderSerialDescriptionM @371 - SetReaderTime @372 - SetReaderTimeM @373 - SetRfAnalogRegistersISO14443_212 @374 - SetRfAnalogRegistersISO14443_212Default @375 - SetRfAnalogRegistersISO14443_212DefaultM @376 - SetRfAnalogRegistersISO14443_212M @377 - SetRfAnalogRegistersISO14443_424 @378 - SetRfAnalogRegistersISO14443_424Default @379 - SetRfAnalogRegistersISO14443_424DefaultM @380 - SetRfAnalogRegistersISO14443_424M @381 - SetRfAnalogRegistersTypeA @382 - SetRfAnalogRegistersTypeADefault @383 - SetRfAnalogRegistersTypeADefaultM @384 - SetRfAnalogRegistersTypeAM @385 - SetRfAnalogRegistersTypeATrans @386 - SetRfAnalogRegistersTypeATransM @387 - SetRfAnalogRegistersTypeB @388 - SetRfAnalogRegistersTypeBDefault @389 - SetRfAnalogRegistersTypeBDefaultM @390 - SetRfAnalogRegistersTypeBM @391 - SetRfAnalogRegistersTypeBTrans @392 - SetRfAnalogRegistersTypeBTransM @393 - SetSpeakerFrequency @394 - SetSpeakerFrequencyM @395 - SetSpeedPermanently @396 - SetSpeedPermanentlyM @397 - SubscribeBlock @398 - SubscribeSector @399 - TagEmulationStart @400 - TagEmulationStartM @401 - TagEmulationStop @402 - TagEmulationStopM @403 - UFR_Status2String @404 - ULC_ExternalAuth_PK @405 - ULC_ExternalAuth_PKM @406 - ULC_write_3des_key @407 - ULC_write_3des_keyM @408 - ULC_write_3des_key_factory_key @409 - ULC_write_3des_key_factory_keyM @410 - ULC_write_3des_key_no_auth @411 - ULC_write_3des_key_no_authM @412 - UfrEnterSleepMode @413 - UfrEnterSleepModeM @414 - UfrGetBadSelectCardNrMax @415 - UfrGetBadSelectCardNrMaxM @416 - UfrLeaveSleepMode @417 - UfrLeaveSleepModeM @418 - UfrRedLightControl @419 - UfrRedLightControlM @420 - UfrRgbLightControl @421 - UfrRgbLightControlM @422 - UfrSetBadSelectCardNrMax @423 - UfrSetBadSelectCardNrMaxM @424 - UfrXrcGetIoState @425 - UfrXrcGetIoStateM @426 - UfrXrcLockOn @427 - UfrXrcLockOnM @428 - UfrXrcRelayState @429 - UfrXrcRelayStateM @430 - ValueBlockDecrement @431 - ValueBlockDecrementM @432 - ValueBlockDecrement_AKM1 @433 - ValueBlockDecrement_AKM1M @434 - ValueBlockDecrement_AKM2 @435 - ValueBlockDecrement_AKM2M @436 - ValueBlockDecrement_PK @437 - ValueBlockDecrement_PKM @438 - ValueBlockInSectorDecrement @439 - ValueBlockInSectorDecrementM @440 - ValueBlockInSectorDecrement_AKM1 @441 - ValueBlockInSectorDecrement_AKM1M @442 - ValueBlockInSectorDecrement_AKM2 @443 - ValueBlockInSectorDecrement_AKM2M @444 - ValueBlockInSectorDecrement_PK @445 - ValueBlockInSectorDecrement_PKM @446 - ValueBlockInSectorIncrement @447 - ValueBlockInSectorIncrementM @448 - ValueBlockInSectorIncrement_AKM1 @449 - ValueBlockInSectorIncrement_AKM1M @450 - ValueBlockInSectorIncrement_AKM2 @451 - ValueBlockInSectorIncrement_AKM2M @452 - ValueBlockInSectorIncrement_PK @453 - ValueBlockInSectorIncrement_PKM @454 - ValueBlockInSectorRead @455 - ValueBlockInSectorReadM @456 - ValueBlockInSectorRead_AKM1 @457 - ValueBlockInSectorRead_AKM1M @458 - ValueBlockInSectorRead_AKM2 @459 - ValueBlockInSectorRead_AKM2M @460 - ValueBlockInSectorRead_PK @461 - ValueBlockInSectorRead_PKM @462 - ValueBlockInSectorWrite @463 - ValueBlockInSectorWriteM @464 - ValueBlockInSectorWrite_AKM1 @465 - ValueBlockInSectorWrite_AKM1M @466 - ValueBlockInSectorWrite_AKM2 @467 - ValueBlockInSectorWrite_AKM2M @468 - ValueBlockInSectorWrite_PK @469 - ValueBlockInSectorWrite_PKM @470 - ValueBlockIncrement @471 - ValueBlockIncrementM @472 - ValueBlockIncrement_AKM1 @473 - ValueBlockIncrement_AKM1M @474 - ValueBlockIncrement_AKM2 @475 - ValueBlockIncrement_AKM2M @476 - ValueBlockIncrement_PK @477 - ValueBlockIncrement_PKM @478 - ValueBlockRead @479 - ValueBlockReadM @480 - ValueBlockRead_AKM1 @481 - ValueBlockRead_AKM1M @482 - ValueBlockRead_AKM2 @483 - ValueBlockRead_AKM2M @484 - ValueBlockRead_PK @485 - ValueBlockRead_PKM @486 - ValueBlockWrite @487 - ValueBlockWriteM @488 - ValueBlockWrite_AKM1 @489 - ValueBlockWrite_AKM1M @490 - ValueBlockWrite_AKM2 @491 - ValueBlockWrite_AKM2M @492 - ValueBlockWrite_PK @493 - ValueBlockWrite_PKM @494 - WriteEmulationNdef @495 - WriteEmulationNdefM @496 - WriteEmulationNdefWithAAR @497 - WriteShareRam @498 - WriteShareRamM @499 - WriteUserData @500 - WriteUserDataM @501 - ais_erase_right_record @502 - ais_erase_right_recordM @503 - ais_get_card_daily_duration @504 - ais_get_card_daily_durationM @505 - ais_get_card_number @506 - ais_get_card_numberM @507 - ais_get_card_total_duration @508 - ais_get_card_total_durationM @509 - ais_get_card_type @510 - ais_get_card_typeM @511 - ais_get_credit_and_period_validity @512 - ais_get_credit_and_period_validityM @513 - ais_get_right_record @514 - ais_get_right_recordM @515 - ais_get_right_record_type_max_daily_counter @516 - ais_get_right_record_type_max_daily_counterM @517 - ais_get_right_type_record @518 - ais_get_right_type_recordM @519 - ais_get_validate_record @520 - ais_get_validate_recordM @521 - ais_set_card_daily_duration @522 - ais_set_card_daily_durationM @523 - ais_set_card_total_duration @524 - ais_set_card_total_durationM @525 - ais_set_card_type @526 - ais_set_card_typeM @527 - ais_set_credit_and_period_validity @528 - ais_set_credit_and_period_validityM @529 - ais_set_right_record @530 - ais_set_right_recordM @531 - ais_set_right_record_type_max_daily_counter @532 - ais_set_right_record_type_max_daily_counterM @533 - ais_set_right_type_record @534 - ais_set_right_type_recordM @535 - ais_set_validate_record @536 - ais_set_validate_recordM @537 - card_halt_enable @538 - card_halt_enableM @539 - card_transceive @540 - card_transceiveM @541 - card_transceive_mode_start @542 - card_transceive_mode_startM @543 - card_transceive_mode_stop @544 - card_transceive_mode_stopM @545 - close_ISO7816_interface_APDU_ISO14443_4 @546 - close_ISO7816_interface_APDU_ISO14443_4M @547 - close_ISO7816_interface_no_APDU @548 - close_ISO7816_interface_no_APDUM @549 - erase_all_ndef_records @550 - erase_all_ndef_recordsM @551 - erase_last_ndef_record @552 - erase_last_ndef_recordM @553 - get_ndef_record_count @554 - get_ndef_record_countM @555 - i_block_trans_rcv_chain @556 - i_block_trans_rcv_chainM @557 - ndef_card_initialization @558 - ndef_card_initializationM @559 - open_ISO7816_interface @560 - open_ISO7816_interfaceM @561 - r_block_transceive @562 - r_block_transceiveM @563 - read_ndef_record @564 - read_ndef_recordM @565 - s_block_deselect @566 - s_block_deselectM @567 - test_desfire_ver @568 - test_i_block @569 - uFR_APDU_Start @570 - uFR_APDU_StartM @571 - uFR_APDU_Stop @572 - uFR_APDU_StopM @573 - uFR_APDU_Transceive @574 - uFR_APDU_TransceiveM @575 - uFR_DESFIRE_Start @576 - uFR_DESFIRE_StartM @577 - uFR_DESFIRE_Stop @578 - uFR_DESFIRE_StopM @579 - uFR_i_block_transceive @580 - uFR_i_block_transceiveM @581 - uFR_int_DesfireChangeAesKey @582 - uFR_int_DesfireChangeAesKeyM @583 - uFR_int_DesfireChangeAesKey_A @584 - uFR_int_DesfireChangeAesKey_PK @585 - uFR_int_DesfireChangeAesKey_PK_M @586 - uFR_int_DesfireChangeKeySettings @587 - uFR_int_DesfireChangeKeySettingsM @588 - uFR_int_DesfireChangeKeySettings_PK @589 - uFR_int_DesfireChangeKeySettings_PK_M @590 - uFR_int_DesfireCreateAesApplication @591 - uFR_int_DesfireCreateAesApplicationM @592 - uFR_int_DesfireCreateAesApplication_PK @593 - uFR_int_DesfireCreateAesApplication_PK_M @594 - uFR_int_DesfireCreateAesApplication_no_auth @595 - uFR_int_DesfireCreateAesApplication_no_auth_M @596 - uFR_int_DesfireCreateStdDataFile @597 - uFR_int_DesfireCreateStdDataFileM @598 - uFR_int_DesfireCreateStdDataFile_PK @599 - uFR_int_DesfireCreateStdDataFile_PK_M @600 - uFR_int_DesfireCreateStdDataFile_no_auth @601 - uFR_int_DesfireCreateStdDataFile_no_auth_M @602 - uFR_int_DesfireCreateValueFile @603 - uFR_int_DesfireCreateValueFileM @604 - uFR_int_DesfireCreateValueFile_PK @605 - uFR_int_DesfireCreateValueFile_PK_M @606 - uFR_int_DesfireCreateValueFile_no_auth @607 - uFR_int_DesfireCreateValueFile_no_auth_M @608 - uFR_int_DesfireDecreaseValueFile @609 - uFR_int_DesfireDecreaseValueFileM @610 - uFR_int_DesfireDecreaseValueFile_PK @611 - uFR_int_DesfireDecreaseValueFile_PK_M @612 - uFR_int_DesfireDecreaseValueFile_no_auth @613 - uFR_int_DesfireDecreaseValueFile_no_auth_M @614 - uFR_int_DesfireDeleteApplication @615 - uFR_int_DesfireDeleteApplicationM @616 - uFR_int_DesfireDeleteApplication_PK @617 - uFR_int_DesfireDeleteApplication_PK_M @618 - uFR_int_DesfireDeleteFile @619 - uFR_int_DesfireDeleteFileM @620 - uFR_int_DesfireDeleteFile_PK @621 - uFR_int_DesfireDeleteFile_PK_M @622 - uFR_int_DesfireDeleteFile_no_auth @623 - uFR_int_DesfireDeleteFile_no_auth_M @624 - uFR_int_DesfireFormatCard @625 - uFR_int_DesfireFormatCardM @626 - uFR_int_DesfireFormatCard_PK @627 - uFR_int_DesfireFormatCard_PK_M @628 - uFR_int_DesfireFreeMem @629 - uFR_int_DesfireFreeMemM @630 - uFR_int_DesfireGetKeySettings @631 - uFR_int_DesfireGetKeySettingsM @632 - uFR_int_DesfireGetKeySettings_PK @633 - uFR_int_DesfireGetKeySettings_PK_M @634 - uFR_int_DesfireIncreaseValueFile @635 - uFR_int_DesfireIncreaseValueFileM @636 - uFR_int_DesfireIncreaseValueFile_PK @637 - uFR_int_DesfireIncreaseValueFile_PK_M @638 - uFR_int_DesfireIncreaseValueFile_no_auth @639 - uFR_int_DesfireIncreaseValueFile_no_auth_M @640 - uFR_int_DesfireReaStddDataFileM @641 - uFR_int_DesfireReadStdDataFile @642 - uFR_int_DesfireReadStdDataFile_PK @643 - uFR_int_DesfireReadStdDataFile_PK_M @644 - uFR_int_DesfireReadStdDataFile_no_auth @645 - uFR_int_DesfireReadStdDataFile_no_auth_M @646 - uFR_int_DesfireReadValueFile @647 - uFR_int_DesfireReadValueFileM @648 - uFR_int_DesfireReadValueFile_PK @649 - uFR_int_DesfireReadValueFile_PK_M @650 - uFR_int_DesfireReadValueFile_no_auth @651 - uFR_int_DesfireReadValueFile_no_auth_M @652 - uFR_int_DesfireSetConfiguration @653 - uFR_int_DesfireSetConfigurationM @654 - uFR_int_DesfireSetConfiguration_PK @655 - uFR_int_DesfireSetConfiguration_PK_M @656 - uFR_int_DesfireWriteAesKey @657 - uFR_int_DesfireWriteAesKeyM @658 - uFR_int_DesfireWriteStdDataFile @659 - uFR_int_DesfireWriteStdDataFileM @660 - uFR_int_DesfireWriteStdDataFile_PK @661 - uFR_int_DesfireWriteStdDataFile_PK_M @662 - uFR_int_DesfireWriteStdDataFile_no_auth @663 - uFR_int_DesfireWriteStdDataFile_no_auth_M @664 - uFR_int_GetDesfireUid @665 - uFR_int_GetDesfireUidM @666 - uFR_int_GetDesfireUid_PK @667 - uFR_int_GetDesfireUid_PK_M @668 - uart_transceive @669 - uart_transceiveM @670 - write_ndef_record @671 - write_ndef_recordM @672 - write_ndef_record_mirroring @673 - write_ndef_record_mirroringM @674 diff --git a/lib/windows/x86_64/uFCoder-x86_64.dll b/lib/windows/x86_64/uFCoder-x86_64.dll deleted file mode 100644 index ab056c22e61d630011b4db0c1afc0968cd203152..0000000000000000000000000000000000000000 Binary files a/lib/windows/x86_64/uFCoder-x86_64.dll and /dev/null differ