- Nov 13, 2018
-
-
developer3 authored
Look at ReaderOpenEx() description
-
- Nov 08, 2018
-
-
developer4 authored
Added functions for PIN and PUK codes manipulation in a JCApp cards: UFR_STATUS JCAppLogin(uint8_t SO, uint8_t *pin, uint8_t pinSize); UFR_STATUS JCAppGetPinTriesRemaining(dl_sec_code_t secureCodeType, uint16_t *triesRemaining); UFR_STATUS JCAppPinChange(dl_sec_code_t secureCodeType, uint8_t *newPin, uint8_t newPinSize); UFR_STATUS JCAppPinUnblock(uint8_t SO, uint8_t *puk, uint8_t pukSize); Added functions for asymmetric cryptography key pairs generation and manipulation in a JCApp cards: UFR_STATUS JCAppGenerateKeyPair(uint8_t key_type, uint8_t key_index, uint8_t key_designator, uint16_t key_bit_len, const uint8_t *params, uint16_t params_size); UFR_STATUS JCAppGetRsaPublicKey(uint8_t key_index, uint8_t *modulus, uint16_t *modulus_size, uint8_t *exponent, uint16_t *exponent_size); UFR_STATUS JCAppGetEcPublicKey(uint8_t key_index, uint8_t *keyW, uint16_t *kexWSize, uint8_t *field, uint16_t *field_size, uint8_t *ab , uint16_t *ab_size, uint8_t *g, uint16_t *g_size, uint8_t *r, uint16_t *r_size, uint16_t *k, uint16_t *key_size_bits, uint16_t *key_designator); Added multi reader support functions: UFR_STATUS JCAppLoginM(UFR_HANDLE hndUFR, uint8_t SO, uint8_t *pin, uint8_t pinSize); UFR_STATUS JCAppGetPinTriesRemainingM(UFR_HANDLE hndUFR, dl_sec_code_t secureCodeType, uint16_t *triesRemaining); UFR_STATUS JCAppPinChangeM(UFR_HANDLE hndUFR, dl_sec_code_t secureCodeType, uint8_t *newPin, uint8_t newPinSize); UFR_STATUS JCAppPinUnblockM(UFR_HANDLE hndUFR, uint8_t SO, uint8_t *puk, uint8_t pukSize); UFR_STATUS JCAppGenerateKeyPairM(UFR_HANDLE hndUFR, uint8_t key_type, uint8_t key_index, uint8_t key_designator, uint16_t key_bit_len, const uint8_t *params, uint16_t params_size); UFR_STATUS JCAppGetRsaPublicKeyM(UFR_HANDLE hndUFR, uint8_t key_index, uint8_t *modulus, uint16_t *modulus_size, uint8_t *exponent, uint16_t *exponent_size); UFR_STATUS JCAppGetEcPublicKeyM(UFR_HANDLE hndUFR, uint8_t key_index, uint8_t *keyW, uint16_t *kexWSize, uint8_t *field, uint16_t *field_size, uint8_t *ab , uint16_t *ab_size, uint8_t *g, uint16_t *g_size, uint8_t *r, uint16_t *r_size, uint16_t *k, uint16_t *key_size_bits, uint16_t *key_designator); Added helper library function to get APDU error description: c_string JCAppGetErrorDescription(UFR_STATUS apdu_error_status);
-
- Nov 05, 2018
-
-
developer3 authored
-
- Sep 20, 2018
-
-
developer4 authored
1.Implemented "keep-alive" mechanism in to the "APDU transceive" algorithm.
-
- Sep 03, 2018
-
-
developer2 authored
new functions for uFR PLUS devices only //MIFARE PLUS UFR_STATUS DL_API MFP_WritePerso(uint16_t address, uint8_t *data); UFR_STATUS DL_API MFP_CommitPerso(void); UFR_STATUS DL_API MFP_PersonalizationMinimal(uint8_t *card_master_key, uint8_t *card_config_key, uint8_t *level_2_switch_key, uint8_t *level_3_switch_key, uint8_t *level_1_auth_key, uint8_t *select_vc_key, uint8_t *prox_chk_key, uint8_t *vc_poll_enc_key, uint8_t *vc_poll_mac_key); UFR_STATUS DL_API MFP_SwitchToSecurityLevel3(uint8_t key_index); UFR_STATUS DL_API MFP_SwitchToSecurityLevel3_PK(uint8_t *aes_key); UFR_STATUS DL_API MFP_AesAuthSecurityLevel1(uint8_t key_index); UFR_STATUS DL_API MFP_AesAuthSecurityLevel1_PK(uint8_t *aes_key); UFR_STATUS DL_API MFP_ChangeMasterKey(uint8_t key_index, uint8_t *new_key); UFR_STATUS DL_API MFP_ChangeMasterKey_PK(uint8_t *old_key, uint8_t *new_key); UFR_STATUS DL_API MFP_ChangeConfigurationKey(uint8_t key_index, uint8_t *new_key); UFR_STATUS DL_API MFP_ChangeConfigurationKey_PK(uint8_t *old_key, 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(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, uint8_t *new_key); UFR_STATUS DL_API MFP_ChangeSectorKey_PK(uint8_t sector_nr, uint8_t auth_mode, uint8_t *old_key, 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, uint8_t *uid, uint8_t *uid_len); UFR_STATUS DL_API MFP_GetUid_PK(uint8_t *vc_poll_enc_key, uint8_t *vc_poll_mac_key, uint8_t *uid, uint8_t *uid_len); UFR_STATUS DL_API MFP_ChangeVcPollingEncKey(uint8_t configuration_key_index, uint8_t *new_key); UFR_STATUS DL_API MFP_ChangeVcPollingEncKey_PK(uint8_t *configuration_key, uint8_t *new_key); UFR_STATUS DL_API MFP_ChangeVcPollingMacKey(uint8_t configuration_key_index, uint8_t *new_key); UFR_STATUS DL_API MFP_ChangeVcPollingMacKey_PK(uint8_t *configuration_key, uint8_t *new_key); //ULTRALIGHT C UFR_STATUS DL_API ULC_ExternalAuth_PK(uint8_t *key); UFR_STATUS DL_API ULC_write_3des_key_no_auth(uint8_t *new_3des_key); UFR_STATUS DL_API ULC_write_3des_key_factory_key(uint8_t *new_3des_key); UFR_STATUS DL_API ULC_write_3des_key(uint8_t *new_3des_key, uint8_t *old_3des_key); Functions for ISO7816 protokol support (SAM option only) 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);
-
- Aug 15, 2018
-
-
developer3 authored
Use for QR card type and group
-
developer3 authored
Revert "4.3.11: Add QR code types in CardEncryption_GetNext() [FWv3.9.60]" This reverts commit 7e3049dbd706dbcd5c8f9db9f0d09a2d9b7f0152.
-
developer3 authored
This reverts commit 2cc9ff057dd984b98630895220aa57df67a02093.
-
- Aug 09, 2018
-
-
developer3 authored
-
- Aug 07, 2018
-
-
developer3 authored
Wrapper library for x86 Readme
-
- Jun 20, 2018
-
-
developer3 authored
Minor BUGFIX
-
developer3 authored
-
- Jun 08, 2018
-
-
developer3 authored
-
- Apr 13, 2018
-
-
developer2 authored
new functions added 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 uart_transceive(uint8_t *send_data, uint8_t send_len, uint8_t *rcv_data, uint32_t bytes_to_receive, uint32_t *rcv_len);
-
- Mar 06, 2018
-
-
developer4 authored
enabled off-card hash algorithm (when sig_cipher == SIG_CIPHER_RSA && sig_digest == ALG_NULL && sig_padding == PAD_PKCS1)
-
- Feb 26, 2018
-
-
developer4 authored
Finished and tested functions for qualified and CA certificates manipulation: UFR_STATUS JCAppPutObj(uint8_t obj_type, uint8_t obj_index, uint8_t *obj, int16_t obj_size, uint8_t *id, uint8_t id_size); UFR_STATUS JCAppPutObjSubject(uint8_t obj_type, uint8_t obj_index, uint8_t *subject, uint8_t size); UFR_STATUS JCAppInvalidateCert(uint8_t obj_type, uint8_t obj_index); UFR_STATUS JCAppGetObjId(uint8_t obj_type, uint8_t obj_index, uint8_t *id, uint16_t *id_size); // when id == NULL returns size UFR_STATUS JCAppGetObjSubject(uint8_t obj_type, uint8_t obj_index, uint8_t *subject, uint16_t *size); // when subject == NULL returns size UFR_STATUS JCAppGetObj(uint8_t obj_type, uint8_t obj_index, uint8_t *obj, int16_t size); // when obj == NULL returns size and multi reader support functions: UFR_STATUS JCAppPutObjM(UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, uint8_t *obj, int16_t obj_size, uint8_t *id, uint8_t id_size); UFR_STATUS JCAppPutObjSubjectM(UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, uint8_t *subject, uint8_t size); UFR_STATUS JCAppInvalidateCertM(UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index); UFR_STATUS JCAppGetObjIdHnd(UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, uint8_t *id, uint16_t *id_size); // when id == NULL returns size UFR_STATUS JCAppGetObjSubjectM(UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, uint8_t *subject, uint16_t *size); // when subject == NULL returns size UFR_STATUS JCAppGetObjM(UFR_HANDLE hndUFR, uint8_t obj_type, uint8_t obj_index, uint8_t *obj, int16_t size); // when obj == NULL returns size
-
- Feb 13, 2018
-
-
developer2 authored
-
- Jan 10, 2018
-
-
developer2 authored
-
- Dec 20, 2017
-
-
developer2 authored
-
- Dec 06, 2017
-
-
developer3 authored
-
- Nov 30, 2017
-
-
developer2 authored
-
- Nov 06, 2017
-
-
developer2 authored
Functions added UFR_STATUS DL_API open_ISO7816_interface(uint8_t *atr_data, uint8_t *atr_len); UFR_STATUS DL_API close_ISO7816_interface(void); UFR_STATUS DL_API GreenLedBlinkingTurnOn(void); UFR_STATUS DL_API GreenLedBlinkingTurnOff(void);
-
- Nov 01, 2017
-
-
developer3 authored
Task-Url: https://git.d-logic.net/hw-ufr/lib-src/issues/28
-
- Oct 05, 2017
-
-
developer4 authored
Added DL Java Card support. Digital signing mechanisms using RSA and ECDSA included. New functions: JCAppSelectByAid() JCAppPutPrivateKey() JCAppGenerateSignature() JCAppSignatureBegin() JCAppSignatureUpdate() JCAppSignatureEnd()
-
- Aug 15, 2017
-
-
developer4 authored
BugFix in function APDUTransceiveHnd(): -In some situations there was an error calculating Le byte.
-
- Aug 14, 2017
-
-
developer4 authored
The following functions have been improved (extended buffer support): UFR_STATUS DL_API APDUHexStrTransceive(const char *c_apdu, char **r_apdu); UFR_STATUS DL_API APDUPlainTransceive(const uint8_t *c_apdu, uint32_t c_apdu_len, uint8_t *r_apdu, uint32_t *r_apdu_len); UFR_STATUS DL_API APDUTransceive(uint8_t cls, uint8_t ins, uint8_t p1, uint8_t p2, const uint8_t *data_out, uint32_t Nc, uint8_t *data_in, uint32_t *Ne, uint8_t send_le, uint8_t *apdu_status); UFR_STATUS DL_API APDUHexStrTransceiveM(UFR_HANDLE hndUFR, const char *c_apdu, char **r_apdu); UFR_STATUS DL_API APDUPlainTransceiveM(UFR_HANDLE hndUFR, const uint8_t *c_apdu, uint32_t c_apdu_len, uint8_t *r_apdu, uint32_t *r_apdu_len); UFR_STATUS DL_API APDUTransceiveM(UFR_HANDLE hndUFR, uint8_t cls, uint8_t ins, uint8_t p0, uint8_t p1, const uint8_t *data_out, uint32_t Nc, uint8_t *data_in, uint32_t *Ne, uint8_t send_le, uint8_t *apdu_status); Improvement is valid from the firmware version 3.9.44
-
- Jul 31, 2017
-
-
developer2 authored
-
- Jul 18, 2017
-
-
developer1 authored
-
developer1 authored
-
- Jun 28, 2017
-
-
developer4 authored
Finished implementation of the "APDU Transceive" in the firmware (using APDU_TRANSCEIVE command).
-
- May 29, 2017
-
-
developer4 authored
Finished NFC T4T support for NDEF messages using APDU support through "ISO14443-4 half-duplex block transmission protocol (i_block, r_block and s_block)". All functions in library that support NDEF messages now working with NFC T4T cards.
-
- Apr 28, 2017
-
-
developer4 authored
Added functions: UFR_STATUS GetAdHocEmulationParams(uint8_t *ThresholdMinLevel, uint8_t *ThresholdCollLevel, uint8_t *RFLevelAmp, uint8_t *RxGain, uint8_t *RFLevel); UFR_STATUS SetAdHocEmulationParams(uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel); UFR_STATUS GetAdHocEmulationParamsM(UFR_HANDLE hndUFR, uint8_t *ThresholdMinLevel, uint8_t *ThresholdCollLevel, uint8_t *RFLevelAmp, uint8_t *RxGain, uint8_t *RFLevel); UFR_STATUS SetAdHocEmulationParamsM(UFR_HANDLE hndUFR, uint8_t ThresholdMinLevel, uint8_t ThresholdCollLevel, uint8_t RFLevelAmp, uint8_t RxGain, uint8_t RFLevel); Dependency for these functions: uFR firmware - min. version 3.9.35
-
- Apr 24, 2017
-
-
developer4 authored
Added functions: UFR_STATUS AdHocEmulationStart(void); UFR_STATUS AdHocEmulationStop(void); UFR_STATUS GetExternalFieldState(uint8_t *is_field_present); UFR_STATUS AdHocEmulationStartM(UFR_HANDLE hndUFR); UFR_STATUS AdHocEmulationStopM(UFR_HANDLE hndUFR); UFR_STATUS GetExternalFieldStateM(UFR_HANDLE hndUFR, uint8_t *is_field_present);
-
- Apr 05, 2017
-
-
developer3 authored
-
- Apr 03, 2017
-
-
developer3 authored
choosing mode depends of communication speed in ReaderOpen()
-
- Mar 23, 2017
-
-
developer4 authored
-
- Mar 20, 2017
-
-
developer3 authored
-
- Mar 09, 2017
-
-
developer4 authored
BugFix in SelectCardHnd(), in anticoll.c
-
- Mar 07, 2017
-
-
developer2 authored
-
- Mar 04, 2017
-
-
developer4 authored
-