uFCoder 2.62
|
Functions specific to Mifare Plus cards. More...
Functions | |
UFR_STATUS DL_API | MFP_AesAuthSecurityLevel1 (uint8_t key_index) |
Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication. | |
UFR_STATUS DL_API | MFP_AesAuthSecurityLevel1_PK (IN uint8_t *aes_key) |
Provided Key mode (PK) Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication. | |
UFR_STATUS DL_API | MFP_ChangeConfigurationKey (uint8_t key_index, IN uint8_t *new_key) |
Security level 3 command. The function is used to change the AES card configuration key value. | |
UFR_STATUS DL_API | MFP_ChangeConfigurationKey_PK (IN uint8_t *old_key, IN uint8_t *new_key) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES card configuration key value. | |
UFR_STATUS DL_API | MFP_ChangeConfigurationKeySamKey (uint8_t key_index, uint8_t new_key_index) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES card configuration key value. | |
UFR_STATUS DL_API | MFP_ChangeMasterKey (uint8_t key_index, IN uint8_t *new_key) |
Security level 3 command. The function is used to change the AES card master key value. | |
UFR_STATUS DL_API | MFP_ChangeMasterKey_PK (IN uint8_t *old_key, IN uint8_t *new_key) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES card master key value. | |
UFR_STATUS DL_API | MFP_ChangeMasterKeySamKey (uint8_t key_index, uint8_t new_key_index) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES card master key value. | |
UFR_STATUS DL_API | MFP_ChangeSectorKey (uint8_t sector_nr, uint8_t auth_mode, uint8_t key_index, IN uint8_t *new_key) |
Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once. | |
UFR_STATUS DL_API | MFP_ChangeSectorKey_PK (uint8_t sector_nr, uint8_t auth_mode, IN uint8_t *old_key, IN uint8_t *new_key) |
Provided Key mode (PK) Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once. | |
UFR_STATUS DL_API | MFP_ChangeSectorKeySamKey (uint8_t sector_nr, uint8_t auth_mode, uint8_t key_index, uint8_t new_key_index) |
*only uFR CS with SAM support Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once. | |
UFR_STATUS DL_API | MFP_ChangeVcPollingEncKey (uint8_t configuration_key_index, IN uint8_t *new_key) |
Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required. | |
UFR_STATUS DL_API | MFP_ChangeVcPollingEncKey_PK (IN uint8_t *configuration_key, IN uint8_t *new_key) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required. | |
UFR_STATUS DL_API | MFP_ChangeVcPollingEncKeySamKey (uint8_t configuration_key_index, uint8_t new_key_index) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required. | |
UFR_STATUS DL_API | MFP_ChangeVcPollingMacKey (uint8_t configuration_key_index, IN uint8_t *new_key) |
Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required. | |
UFR_STATUS DL_API | MFP_ChangeVcPollingMacKey_PK (IN uint8_t *configuration_key, IN uint8_t *new_key) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required. | |
UFR_STATUS DL_API | MFP_ChangeVcPollingMacKeySamKey (uint8_t configuration_key_index, uint8_t new_key_index) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required. | |
UFR_STATUS DL_API | MFP_CommitPerso (void) |
Security level 0 command. Function is used to finalize the personalization and switch up to security level 1. | |
UFR_STATUS DL_API | MFP_FieldConfigurationSet (uint8_t configuration_key_index, uint8_t rid_use, uint8_t prox_check_use) |
Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required. | |
UFR_STATUS DL_API | MFP_FieldConfigurationSet_PK (IN uint8_t *configuration_key, uint8_t rid_use, uint8_t prox_check_use) |
Provided Key mode (PK) Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required. | |
UFR_STATUS DL_API | MFP_FieldConfigurationSetSamKey (uint8_t configuration_key_index, uint8_t rid_use, uint8_t prox_check_use) |
*only uFR CS with SAM support Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required. | |
UFR_STATUS DL_API | MFP_GetUid (uint8_t key_index_vc_poll_enc_key, uint8_t key_index_vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len) |
Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory. | |
UFR_STATUS DL_API | MFP_GetUid_PK (IN uint8_t *vc_poll_enc_key, IN uint8_t *vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len) |
Provided Key mode (PK) Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory. | |
UFR_STATUS DL_API | MFP_GetUidSamKey (uint8_t key_index_vc_poll_enc_key, uint8_t key_index_vc_poll_mac_key, OUT uint8_t *uid, VAR uint8_t *uid_len) |
*only uFR CS with SAM support Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory. | |
UFR_STATUS DL_API | MFP_PersonalizationMinimal (IN uint8_t *card_master_key, IN uint8_t *card_config_key, IN uint8_t *level_2_switch_key, IN uint8_t *level_3_switch_key, IN uint8_t *level_1_auth_key, IN uint8_t *select_vc_key, IN uint8_t *prox_chk_key, IN uint8_t *vc_poll_enc_key, IN uint8_t *vc_poll_mac_key) |
Security level 0 command. Function is used for card personalization. The minimum number of AES keys is entered into the card. There are card master key, card configuration key, key for switch to security level 2, key for switch to security level 3, security level 1 authentication key, virtual card select key, proximity check key, VC polling ENC and VC poling MAC key. Keys can not be changed at security level 1. Other keys that are not personalized will have value 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF) | |
UFR_STATUS DL_API | MFP_SwitchToSecurityLevel3 (uint8_t key_index) |
Security level 1 or 2 command. Function is used to switch to security level 3. | |
UFR_STATUS DL_API | MFP_SwitchToSecurityLevel3_PK (IN uint8_t *aes_key) |
Provided Key mode (PK) Security level 1 or 2 command. Function is used to switch to security level 3. | |
UFR_STATUS DL_API | MFP_WritePerso (uint16_t address, IN uint8_t *data) |
Security level 0 command. Function is used to change the data and AES keys from the initial delivery configuration to a customer specific value. | |
UFR_STATUS DL_API | ULC_ExternalAuth_PK (IN uint8_t *key) |
Provided Key mode (PK) The 3DES authentication is executed using the transceive mode of reader. Pointer to array which contains 2K 3DES key (16 bytes ) is parameter of this functions. Function don’t use the key which stored into reader. DES algorithm for authentication executes in host device, not in reader. After authentication, the reader leaves the transceive mode, but stay in mode where the HALT command doesn’t sending to the card. In this mode user can use functions for block and linear reading or writing. Reader stay into this mode, until the error during reading data from card, or writing data into card occurs, or until the user calls function card_halt_enable(). | |
Functions specific to Mifare Plus cards.
UFR_STATUS DL_API MFP_AesAuthSecurityLevel1 | ( | uint8_t | key_index | ) |
Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication.
key_index | ordinary number of AES key stored into reader (0 - 15) |
UFR_STATUS DL_API MFP_AesAuthSecurityLevel1_PK | ( | IN uint8_t * | aes_key | ) |
Provided Key mode (PK) Security level 1 command. Security level 1 offers the same functionality as a MIFARE Classic card. Function is used to optional AES authentication.
aes_key | pointer to 16 byte array containing the AES key |
UFR_STATUS DL_API MFP_ChangeConfigurationKey | ( | uint8_t | key_index, |
IN uint8_t * | new_key ) |
Security level 3 command. The function is used to change the AES card configuration key value.
key_index | ordinary number of current configuration key stored into reader (0 - 15) or in SAM (1 - 127) |
new_key | pointer to 16 byte array containing the new configuration key |
UFR_STATUS DL_API MFP_ChangeConfigurationKey_PK | ( | IN uint8_t * | old_key, |
IN uint8_t * | new_key ) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES card configuration key value.
old_key | pointer to 16 byte array containing the current configuration key |
new_key | pointer to 16 byte array containing the new configuration key |
UFR_STATUS DL_API MFP_ChangeConfigurationKeySamKey | ( | uint8_t | key_index, |
uint8_t | new_key_index ) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES card configuration key value.
key_index | ordinary number of current configuration key stored into reader (0 - 15) or in SAM (1 - 127) |
new_key_index | key index from which the new configuration key will be set (0 - 15) or in SAM (1 - 127) |
UFR_STATUS DL_API MFP_ChangeMasterKey | ( | uint8_t | key_index, |
IN uint8_t * | new_key ) |
Security level 3 command. The function is used to change the AES card master key value.
key_index | ordinary number of current master key stored into reader (0 - 15) or in SAM (1 - 127) |
new_key | pointer to 16 byte array containing the new master key |
UFR_STATUS DL_API MFP_ChangeMasterKey_PK | ( | IN uint8_t * | old_key, |
IN uint8_t * | new_key ) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES card master key value.
old_key | pointer to 16 byte array containing the current master key *new key pointer to 16 byte array containing the new master key |
new_key | pointer to 16 byte array containing the new master key |
UFR_STATUS DL_API MFP_ChangeMasterKeySamKey | ( | uint8_t | key_index, |
uint8_t | new_key_index ) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES card master key value.
key_index | ordinary number of current master key stored into reader (0 - 15) or in SAM (1 - 127) |
new_key_index | key index from which the new master key will be set (0 - 15) or in SAM (1 - 127) |
UFR_STATUS DL_API MFP_ChangeSectorKey | ( | uint8_t | sector_nr, |
uint8_t | auth_mode, | ||
uint8_t | key_index, | ||
IN uint8_t * | new_key ) |
Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
sector_nr | ordinary number of sector (0 - 31) for 2K card, or (0 - 39) for 4K card. |
auth_mode | MIFARE_AUTHENT1A for Key A or MIFARE_AUTHENT1B for Key B auth_mode_pk MIFARE_PLUS_AES_AUTHENT1A for Key A or MIFARE_PLUS_AES_AUTHENT1B for Key B |
key_index | ordinary number of current sector key stored into reader (0 - 15) |
new_key | pointer to 16 byte array containing the new sector key (A or B) |
UFR_STATUS DL_API MFP_ChangeSectorKey_PK | ( | uint8_t | sector_nr, |
uint8_t | auth_mode, | ||
IN uint8_t * | old_key, | ||
IN uint8_t * | new_key ) |
Provided Key mode (PK) Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
sector_nr | ordinary number of sector (0 - 31) for 2K card, or (0 - 39) for 4K card. |
auth_mode | MIFARE_AUTHENT1A for Key A or MIFARE_AUTHENT1B for Kye B auth_mode_pk MIFARE_PLUS_AES_AUTHENT1A for Key A or MIFARE_PLUS_AES_AUTHENT1B for Key B |
old_key | pointer to 16 byte array containing the current sector key (A or B) |
new_key | pointer to 16 byte array containing the new sector key (A or B) |
UFR_STATUS DL_API MFP_ChangeSectorKeySamKey | ( | uint8_t | sector_nr, |
uint8_t | auth_mode, | ||
uint8_t | key_index, | ||
uint8_t | new_key_index ) |
*only uFR CS with SAM support Security level 3 command. In order to access the block in sector data, AES authentication is needed. Each sector has two AES keys that can be used for authentication (Key A and Key B). Default value if key is not personalized is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF). For linear read part of card, enter the same value of sector keys for all sectors which will be read at once.
sector_nr | ordinary number of sector (0 - 31) for 2K card, or (0 - 39) for 4K card. |
auth_mode | MIFARE_AUTHENT1A for Key A or MIFARE_AUTHENT1B for Kye B auth_mode_pk MIFARE_PLUS_AES_AUTHENT1A for Key A or MIFARE_PLUS_AES_AUTHENT1B for Key B |
key_index | ordinary number of current sector key stored into reader (0 - 15) |
new_key_index | pointer to 16 byte array containing the new sector key (A or B) |
UFR_STATUS DL_API MFP_ChangeVcPollingEncKey | ( | uint8_t | configuration_key_index, |
IN uint8_t * | new_key ) |
Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
configuration_key_index | ordinary number of card configuration key stored into reader (0 - 15) |
new_key | pointer to 16 byte array containing new VC Polling ENC key |
UFR_STATUS DL_API MFP_ChangeVcPollingEncKey_PK | ( | IN uint8_t * | configuration_key, |
IN uint8_t * | new_key ) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
configuration_key | pointer to 16 byte array containing card configuration key |
new_key | pointer to 16 byte array containing new VC Polling ENC key |
UFR_STATUS DL_API MFP_ChangeVcPollingEncKeySamKey | ( | uint8_t | configuration_key_index, |
uint8_t | new_key_index ) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling ENC key value. Authentication with AES card configuration key is required.
configuration_key_index | ordinary number of card configuration key stored into reader (0 - 15) |
new_key_index | pointer to 16 byte array containing new VC Polling ENC key |
UFR_STATUS DL_API MFP_ChangeVcPollingMacKey | ( | uint8_t | configuration_key_index, |
IN uint8_t * | new_key ) |
Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
configuration_key_index | pointer to 16 byte array containing card configuration key |
new_key | pointer to 16 byte array containing new VC Polling MAC key |
UFR_STATUS DL_API MFP_ChangeVcPollingMacKey_PK | ( | IN uint8_t * | configuration_key, |
IN uint8_t * | new_key ) |
Provided Key mode (PK) Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
configuration_key | pointer to 16 byte array containing card configuration key |
new_key | pointer to 16 byte array containing new VC Polling MAC key |
UFR_STATUS DL_API MFP_ChangeVcPollingMacKeySamKey | ( | uint8_t | configuration_key_index, |
uint8_t | new_key_index ) |
*only uFR CS with SAM support Security level 3 command. The function is used to change the AES VC polling MAC key value. Authentication with AES card configuration key is required.
configuration_key_index | pointer to 16 byte array containing card configuration key |
new_key_index | pointer to 16 byte array containing new VC Polling MAC key |
UFR_STATUS DL_API MFP_CommitPerso | ( | void | ) |
Security level 0 command. Function is used to finalize the personalization and switch up to security level 1.
UFR_STATUS DL_API MFP_FieldConfigurationSet | ( | uint8_t | configuration_key_index, |
uint8_t | rid_use, | ||
uint8_t | prox_check_use ) |
Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
configuration_key_index | ordinary number of configuration key stored into reader (0 - 15) *configuration_key pointer to 16 byte array containing the configuration key |
rid_use | 1 - Randnom ID enabled, 0 - Random ID disabled |
prox_check_use | 1- Proximity check is mandatory, 0 - Proximity check is not mandatory |
UFR_STATUS DL_API MFP_FieldConfigurationSet_PK | ( | IN uint8_t * | configuration_key, |
uint8_t | rid_use, | ||
uint8_t | prox_check_use ) |
Provided Key mode (PK) Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
configuration_key | pointer to 16 byte array containing the configuration key |
rid_use | 1 - Randnom ID enabled, 0 - Random ID disabled |
prox_check_use | 1- Proximity check is mandatory, 0 - Proximity check is not mandatory |
UFR_STATUS DL_API MFP_FieldConfigurationSetSamKey | ( | uint8_t | configuration_key_index, |
uint8_t | rid_use, | ||
uint8_t | prox_check_use ) |
*only uFR CS with SAM support Security level 3 command. Function is used for definition of using Random ID and Proximity check options. Authentication with AES card configuration key required.
configuration_key_index | ordinary number of configuration key stored into reader (0 - 15) |
rid_use | 1 - Randnom ID enabled, 0 - Random ID disabled |
prox_check_use | 1- Proximity check is mandatory, 0 - Proximity check is not mandatory |
UFR_STATUS DL_API MFP_GetUid | ( | uint8_t | key_index_vc_poll_enc_key, |
uint8_t | key_index_vc_poll_mac_key, | ||
OUT uint8_t * | uid, | ||
VAR uint8_t * | uid_len ) |
Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
key_index_vc_poll_enc_key | ordinary number of VC polling ENC key stored into reader (0 - 15) |
key_index_vc_poll_mac_key | ordinary number of VC polling MAC key stored into reader (0 - 15) |
uid | pointer to byte array containing the card UID |
uid_len | pointer to UID length variable |
UFR_STATUS DL_API MFP_GetUid_PK | ( | IN uint8_t * | vc_poll_enc_key, |
IN uint8_t * | vc_poll_mac_key, | ||
OUT uint8_t * | uid, | ||
VAR uint8_t * | uid_len ) |
Provided Key mode (PK) Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
vc_poll_enc_key | pointer to 16 byte array containing VC polling ENC key |
vc_poll_mac_key | pointer to 16 byte array containing VC polling MAC key |
uid | pointer to byte array containing the card UID |
uid_len | pointer to UID length variable |
UFR_STATUS DL_API MFP_GetUidSamKey | ( | uint8_t | key_index_vc_poll_enc_key, |
uint8_t | key_index_vc_poll_mac_key, | ||
OUT uint8_t * | uid, | ||
VAR uint8_t * | uid_len ) |
*only uFR CS with SAM support Security level 3 command. Function is used to read UID if Random ID is enabled. Authentication with AES VC Polling ENC Key and VC Polling MAC Key is mandatory.
key_index_vc_poll_enc_key | ordinary number of VC polling ENC key stored into reader (0 - 15) |
key_index_vc_poll_mac_key | ordinary number of VC polling MAC key stored into reader (0 - 15) |
uid | pointer to byte array containing the card UID |
uid_len | pointer to UID length variable |
UFR_STATUS DL_API MFP_PersonalizationMinimal | ( | IN uint8_t * | card_master_key, |
IN uint8_t * | card_config_key, | ||
IN uint8_t * | level_2_switch_key, | ||
IN uint8_t * | level_3_switch_key, | ||
IN uint8_t * | level_1_auth_key, | ||
IN uint8_t * | select_vc_key, | ||
IN uint8_t * | prox_chk_key, | ||
IN uint8_t * | vc_poll_enc_key, | ||
IN uint8_t * | vc_poll_mac_key ) |
Security level 0 command. Function is used for card personalization. The minimum number of AES keys is entered into the card. There are card master key, card configuration key, key for switch to security level 2, key for switch to security level 3, security level 1 authentication key, virtual card select key, proximity check key, VC polling ENC and VC poling MAC key. Keys can not be changed at security level 1. Other keys that are not personalized will have value 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (16 x 0xFF)
card_master_key | card_master_key |
card_config_key | card_config_key |
level_2_switch_key | level_2_switch_key |
level_3_switch_key | level_3_switch_key |
level_1_auth_key | level_1_auth_key |
select_vc_key | select_vc_key |
prox_chk_key | prox_chk_key |
vc_poll_enc_key | vc_poll_enc_key |
vc_poll_mac_key | vc_poll_mac_key |
UFR_STATUS DL_API MFP_SwitchToSecurityLevel3 | ( | uint8_t | key_index | ) |
Security level 1 or 2 command. Function is used to switch to security level 3.
key_index | ordinary number of AES key stored into reader (0 - 15) |
UFR_STATUS DL_API MFP_SwitchToSecurityLevel3_PK | ( | IN uint8_t * | aes_key | ) |
Provided Key mode (PK) Security level 1 or 2 command. Function is used to switch to security level 3.
aes_key | pointer to 16 byte array containing the AES key |
UFR_STATUS DL_API MFP_WritePerso | ( | uint16_t | address, |
IN uint8_t * | data ) |
Security level 0 command. Function is used to change the data and AES keys from the initial delivery configuration to a customer specific value.
address | Number of block or key |
data | Value of data or AES key |
UFR_STATUS DL_API ULC_ExternalAuth_PK | ( | IN uint8_t * | key | ) |
Provided Key mode (PK) The 3DES authentication is executed using the transceive mode of reader. Pointer to array which contains 2K 3DES key (16 bytes ) is parameter of this functions. Function don’t use the key which stored into reader. DES algorithm for authentication executes in host device, not in reader. After authentication, the reader leaves the transceive mode, but stay in mode where the HALT command doesn’t sending to the card. In this mode user can use functions for block and linear reading or writing. Reader stay into this mode, until the error during reading data from card, or writing data into card occurs, or until the user calls function card_halt_enable().
key | pointer to data array of 16 bytes which contains 2K 3DES key |