Picopass load/info/delete (#1562)

* increase stack size
* rfalPicoPassPollerWriteBlock
* UI for loading picopass
* Move picopass parsing and add delete, delete success

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Eric Betts
2022-08-23 06:19:17 -07:00
committed by GitHub
parent ddd5d5a535
commit f92127c0a7
16 changed files with 559 additions and 93 deletions
+21
View File
@@ -7,6 +7,10 @@
#include <rfal_picopass.h>
#include <mbedtls/des.h>
#include <loclass/optimized_ikeys.h>
#include <loclass/optimized_cipher.h>
#define PICOPASS_DEV_NAME_MAX_LEN 22
#define PICOPASS_READER_DATA_MAX_SIZE 64
#define PICOPASS_BLOCK_LEN 8
@@ -20,6 +24,8 @@
#define PICOPASS_APP_EXTENSION ".picopass"
#define PICOPASS_APP_SHADOW_EXTENSION ".pas"
typedef void (*PicopassLoadingCallback)(void* context, bool state);
typedef enum {
PicopassDeviceEncryptionUnknown = 0,
PicopassDeviceEncryptionNone = 0x14,
@@ -67,6 +73,9 @@ typedef struct {
char dev_name[PICOPASS_DEV_NAME_MAX_LEN + 1];
string_t load_path;
PicopassDeviceSaveFormat format;
PicopassLoadingCallback loading_cb;
void* loading_cb_ctx;
} PicopassDevice;
PicopassDevice* picopass_device_alloc();
@@ -77,6 +86,18 @@ void picopass_device_set_name(PicopassDevice* dev, const char* name);
bool picopass_device_save(PicopassDevice* dev, const char* dev_name);
bool picopass_file_select(PicopassDevice* dev);
void picopass_device_data_clear(PicopassDeviceData* dev_data);
void picopass_device_clear(PicopassDevice* dev);
bool picopass_device_delete(PicopassDevice* dev, bool use_load_path);
void picopass_device_set_loading_callback(
PicopassDevice* dev,
PicopassLoadingCallback callback,
void* context);
ReturnCode picopass_device_parse_credential(PicopassBlock* AA1, PicopassPacs* pacs);
ReturnCode picopass_device_parse_wiegand(uint8_t* data, PicopassWiegandRecord* record);