Picopass write (#1658)

* [picopass] Prevent false success with non-standard key
* UI for writing
* worker function for write
* Update write command value
* Show card read failure message

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Eric Betts
2022-08-30 06:59:34 -07:00
committed by GitHub
parent e4c6158d65
commit 8e9043003f
11 changed files with 286 additions and 44 deletions

View File

@@ -26,7 +26,7 @@ enum {
RFAL_PICOPASS_CMD_READCHECK = 0x88,
RFAL_PICOPASS_CMD_CHECK = 0x05,
RFAL_PICOPASS_CMD_READ = 0x0C,
RFAL_PICOPASS_CMD_WRITE = 0x0C,
RFAL_PICOPASS_CMD_WRITE = 0x87,
};
typedef struct {

View File

@@ -2,6 +2,8 @@
#include "rfal_picopass.h"
#include "utils.h"
#define TAG "RFAL_PICOPASS"
typedef struct {
uint8_t CMD;
uint8_t CSN[RFAL_PICOPASS_UID_LEN];
@@ -169,18 +171,14 @@ ReturnCode rfalPicoPassPollerWriteBlock(uint8_t blockNum, uint8_t data[8], uint8
uint16_t recvLen = 0;
uint32_t flags = RFAL_PICOPASS_TXRX_FLAGS;
uint32_t fwt = rfalConvMsTo1fc(20);
rfalPicoPassReadBlockRes readRes;
rfalPicoPassReadBlockRes block;
ret = rfalTransceiveBlockingTxRx(
txBuf,
sizeof(txBuf),
(uint8_t*)&readRes,
sizeof(rfalPicoPassReadBlockRes),
&recvLen,
flags,
fwt);
txBuf, sizeof(txBuf), (uint8_t*)&block, sizeof(block), &recvLen, flags, fwt);
// TODO: compare response
if(ret == ERR_NONE) {
// TODO: compare response
}
return ret;
}