mirror of
https://github.com/bettse/seader.git
synced 2026-05-31 04:34:29 +00:00
capture SIO
This commit is contained in:
+14
-22
@@ -454,12 +454,17 @@ static uint16_t seader_worker_picopass_calculate_ccitt(
|
||||
return crc;
|
||||
}
|
||||
|
||||
/*
|
||||
void seader_capture_sio(
|
||||
uint8_t* buffer,
|
||||
size_t len,
|
||||
uint8_t* rxBuffer,
|
||||
SeaderCredential* credential) {
|
||||
uint8_t read4Block6[] = {0x06, 0x06, 0x45, 0x56};
|
||||
uint8_t read4Block9[] = {0x06, 0x09, 0xB2, 0xAE};
|
||||
uint8_t read4Block10[] = {0x06, 0x0A, 0x29, 0x9C};
|
||||
uint8_t read4Block13[] = {0x06, 0x0D, 0x96, 0xE8};
|
||||
uint8_t updateBlock2[] = {0x87, 0x02}; // TODO
|
||||
|
||||
void seader_capture_sio(BitBuffer* tx_buffer, BitBuffer* rx_buffer, SeaderCredential* credential) {
|
||||
const uint8_t* buffer = bit_buffer_get_data(tx_buffer);
|
||||
size_t len = bit_buffer_get_size_bytes(tx_buffer);
|
||||
const uint8_t* rxBuffer = bit_buffer_get_data(rx_buffer);
|
||||
|
||||
if(memcmp(buffer, read4Block6, len) == 0 && rxBuffer[0] == 0x30) {
|
||||
memcpy(credential->sio, rxBuffer, 32);
|
||||
} else if(memcmp(buffer, read4Block10, len) == 0 && rxBuffer[0] == 0x30) {
|
||||
@@ -470,13 +475,6 @@ void seader_capture_sio(
|
||||
memcpy(credential->sio + 32, rxBuffer + 8, 24);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
uint8_t read4Block6[] = {0x06, 0x06, 0x45, 0x56};
|
||||
uint8_t read4Block9[] = {0x06, 0x09, 0xB2, 0xAE};
|
||||
uint8_t read4Block10[] = {0x06, 0x0A, 0x29, 0x9C};
|
||||
uint8_t read4Block13[] = {0x06, 0x0D, 0x96, 0xE8};
|
||||
uint8_t updateBlock2[] = {0x87, 0x02}; // TODO
|
||||
|
||||
PicopassError seader_worker_fake_epurse_update(BitBuffer* tx_buffer, BitBuffer* rx_buffer) {
|
||||
const uint8_t* buffer = bit_buffer_get_data(tx_buffer);
|
||||
@@ -513,8 +511,7 @@ void seader_iso15693_transmit(Seader* seader, uint8_t* buffer, size_t len) {
|
||||
PicopassError error = PicopassErrorNone;
|
||||
|
||||
do {
|
||||
bit_buffer_append_bytes(
|
||||
tx_buffer, buffer, len); // TODO: could this be a `bit_buffer_copy_bytes` ?
|
||||
bit_buffer_append_bytes(tx_buffer, buffer, len);
|
||||
|
||||
if(memcmp(buffer, updateBlock2, sizeof(updateBlock2)) == 0) {
|
||||
error = seader_worker_fake_epurse_update(tx_buffer, rx_buffer);
|
||||
@@ -531,7 +528,7 @@ void seader_iso15693_transmit(Seader* seader, uint8_t* buffer, size_t len) {
|
||||
break;
|
||||
}
|
||||
|
||||
// seader_capture_sio(buffer, len, rxBuffer, credential);
|
||||
seader_capture_sio(tx_buffer, rx_buffer, seader->credential);
|
||||
seader_send_nfc_rx(
|
||||
seader_uart,
|
||||
(uint8_t*)bit_buffer_get_data(rx_buffer),
|
||||
@@ -564,9 +561,7 @@ void seader_iso14443a_transmit(
|
||||
BitBuffer* rx_buffer = bit_buffer_alloc(SEADER_POLLER_MAX_BUFFER_SIZE);
|
||||
|
||||
do {
|
||||
// bit_buffer_reset(tx_buffer);
|
||||
bit_buffer_append_bytes(
|
||||
tx_buffer, buffer, len); // TODO: could this be a `bit_buffer_copy_bytes` ?
|
||||
bit_buffer_append_bytes(tx_buffer, buffer, len);
|
||||
|
||||
Iso14443_4aError error = iso14443_4a_poller_send_block(
|
||||
(Iso14443_4aPoller*)iso14443_4a_poller, tx_buffer, rx_buffer);
|
||||
@@ -576,9 +571,6 @@ void seader_iso14443a_transmit(
|
||||
break;
|
||||
}
|
||||
|
||||
FURI_LOG_I(TAG, "NFC incoming %d bytes", bit_buffer_get_size_bytes(rx_buffer));
|
||||
// iso14443_4a_copy(instance->data->iso14443_4a_data, iso14443_4a_poller_get_data(instance->iso14443_4a_poller));
|
||||
|
||||
seader_send_nfc_rx(
|
||||
seader_uart,
|
||||
(uint8_t*)bit_buffer_get_data(rx_buffer),
|
||||
|
||||
Reference in New Issue
Block a user