|
|
|
|
@@ -33,7 +33,7 @@ MfDesfireError mf_desfire_process_status_code(uint8_t status_code) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MfDesfireError mf_desfire_send_chunks(
|
|
|
|
|
MfDesfireError mf_desfire_poller_send_chunks(
|
|
|
|
|
MfDesfirePoller* instance,
|
|
|
|
|
const BitBuffer* tx_buffer,
|
|
|
|
|
BitBuffer* rx_buffer) {
|
|
|
|
|
@@ -103,7 +103,8 @@ MfDesfireError mf_desfire_poller_read_version(MfDesfirePoller* instance, MfDesfi
|
|
|
|
|
MfDesfireError error;
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
@@ -125,7 +126,8 @@ MfDesfireError
|
|
|
|
|
MfDesfireError error;
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
@@ -147,7 +149,8 @@ MfDesfireError
|
|
|
|
|
MfDesfireError error;
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
@@ -171,7 +174,7 @@ MfDesfireError mf_desfire_poller_read_key_version(
|
|
|
|
|
bit_buffer_set_byte(instance->input_buffer, 1, key_num);
|
|
|
|
|
|
|
|
|
|
MfDesfireError error =
|
|
|
|
|
mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
mf_desfire_poller_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
if(error == MfDesfireErrorNone) {
|
|
|
|
|
if(!mf_desfire_key_version_parse(data, instance->result_buffer)) {
|
|
|
|
|
error = MfDesfireErrorProtocol;
|
|
|
|
|
@@ -211,7 +214,8 @@ MfDesfireError
|
|
|
|
|
MfDesfireError error;
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
@@ -244,7 +248,7 @@ MfDesfireError mf_desfire_poller_select_application(
|
|
|
|
|
instance->input_buffer, (const uint8_t*)id, sizeof(MfDesfireApplicationId));
|
|
|
|
|
|
|
|
|
|
MfDesfireError error =
|
|
|
|
|
mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
mf_desfire_poller_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
return error;
|
|
|
|
|
}
|
|
|
|
|
@@ -259,7 +263,8 @@ MfDesfireError mf_desfire_poller_read_file_ids(MfDesfirePoller* instance, Simple
|
|
|
|
|
MfDesfireError error;
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
@@ -294,7 +299,8 @@ MfDesfireError mf_desfire_poller_read_file_settings(
|
|
|
|
|
MfDesfireError error;
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
@@ -359,7 +365,7 @@ MfDesfireError mf_desfire_poller_create_application(
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MfDesfireError error =
|
|
|
|
|
mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
mf_desfire_poller_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
return error;
|
|
|
|
|
}
|
|
|
|
|
@@ -389,7 +395,8 @@ static MfDesfireError mf_desfire_poller_read_file(
|
|
|
|
|
bit_buffer_append_bytes(instance->input_buffer, (const uint8_t*)¤t_offset, 3);
|
|
|
|
|
bit_buffer_append_bytes(instance->input_buffer, (const uint8_t*)&bytes_to_read, 3);
|
|
|
|
|
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
size_t bytes_received = bit_buffer_get_size_bytes(instance->result_buffer);
|
|
|
|
|
@@ -435,7 +442,8 @@ MfDesfireError mf_desfire_poller_read_file_value(
|
|
|
|
|
MfDesfireError error;
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
error = mf_desfire_send_chunks(instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
error = mf_desfire_poller_send_chunks(
|
|
|
|
|
instance, instance->input_buffer, instance->result_buffer);
|
|
|
|
|
|
|
|
|
|
if(error != MfDesfireErrorNone) break;
|
|
|
|
|
|
|
|
|
|
|