#define MEM_CHUNK 1000000\r
#define NESTED_SECTOR_RETRY 10\r
\r
+// mfCSetBlock work flags\r
+#define CSETBLOCK_UID 0x01\r
+#define CSETBLOCK_WUPC 0x02\r
+#define CSETBLOCK_HALT 0x04\r
+#define CSETBLOCK_INIT_FIELD 0x08\r
+#define CSETBLOCK_RESET_FIELD 0x10\r
+#define CSETBLOCK_SINGLE_OPER 0x1F\r
+\r
typedef struct fnVector { uint8_t blockNo, keyType; uint32_t uid, nt, ks1; } fnVector;\r
\r
typedef struct {\r
int mfCheckKeys (uint8_t blockNo, uint8_t keyType, uint8_t keycnt, uint8_t * keyBlock, uint64_t * key);\r
int mfEmlGetMem(uint8_t *data, int blockNum, int blocksCount);\r
int mfEmlSetMem(uint8_t *data, int blockNum, int blocksCount);\r
-\r
+int mfCSetUID(uint8_t *uid, uint8_t *oldUID, int wantWipe);\r
+int mfCSetBlock(uint8_t blockNo, uint8_t *data, uint8_t *uid, int wantWipe, uint8_t params);\r
+int mfCGetBlock(uint8_t blockNo, uint8_t *data, uint8_t params);\r