 |
MIKAI
Library to modify content of a Mykey
|
Go to the documentation of this file.
35 uint32_t
generic[112];
59 if (uidBytes[7] != 0xD0 || uidBytes[6] != 0x02) {
64 target->
uid = (uint64_t) uidBytes[7] << 56U | (uint64_t) uidBytes[6] << 48U | (uint64_t) uidBytes[5] << 40U |
65 (uint64_t) uidBytes[4] << 32U | (uint64_t) uidBytes[3] << 24U | (uint64_t) uidBytes[2] << 16U |
66 (uint64_t) uidBytes[1] << 8U | (uint64_t) uidBytes[0];
89 target->
eeprom[i] = readBlock[0] << 24 | readBlock[1] << 16 | readBlock[2] << 8 | readBlock[3];
102 static MikaiError srixWriteGroup(
Srix *target, uint32_t *groupPointer, uint8_t groupSize) {
103 for (uint64_t i = 0; i < groupSize; i++) {
105 const uint8_t writeBlock[] = {
106 groupPointer[i] >> 24,
107 groupPointer[i] >> 16,
108 groupPointer[i] >> 8,
113 groupPointer + i - target->
eeprom);
124 Srix *created = malloc(
sizeof(
Srix));
160 error = readBlocks(target);
174 for (uint8_t i = 16; i < 128; i++) {
193 target->
eeprom[blockNum] = block;
209 error = srixWriteGroup(target, target->
otp,
sizeof(target->
otp) /
sizeof(uint32_t));
215 error = srixWriteGroup(target, target->
lockable,
sizeof(target->
lockable) /
sizeof(uint32_t));
221 error = srixWriteGroup(target, target->
generic,
sizeof(target->
generic) /
sizeof(uint32_t));
Struct that represents the modified blocks in a SRIX tag.
size_t NfcGetReadersCount(Srix target[static 1])
MikaiError NfcInitReader(NfcReader reader[static 1], int selection)
void SrixModifyBlock(Srix target[static 1], const uint32_t block, const uint8_t blockNum)
NfcReader * NfcReaderNew()
Allocate a nfc reader and set its default values.
MikaiError SrixNfcInit(Srix target[static 1], int reader)
void srixFlagAdd(SrixFlag flag[static 1], uint8_t block)
void SrixDelete(Srix target[static 1])
void NfcCloseReader(NfcReader reader[static 1])
Srix * SrixNew()
Create a new Srix and set its default values.
MikaiError NfcReadBlock(NfcReader reader[static 1], SrixBlock block[static 1], const uint8_t blockNum)
uint32_t eeprom[SRIX4K_BLOCKS]
Error structure that contains a description message.
#define MIKAI_IS_ERROR(isError)
Struct that represents a NFC Reader.
void SrixMemoryInit(Srix target[static 1], uint32_t eeprom[const static SRIX4K_BLOCKS], uint64_t uid)
size_t NfcUpdateReaders(NfcReader reader[static 1])
MikaiError NfcWriteBlock(NfcReader reader[static 1], SrixBlock block[static 1], const uint8_t blockNum)
uint32_t * SrixGetBlock(Srix target[static 1], uint8_t blockNum)
char * NfcGetReaderDescription(NfcReader reader[static 1], int selection)
bool srixFlagGet(SrixFlag flag[static 1], uint8_t block)
#define SRIX_BLOCK_LENGTH
#define MIKAI_ERROR(type, errorMessage)
uint64_t SrixGetUid(Srix target[static 1])
MikaiError SrixWriteBlocks(Srix target[static 1])
char * NfcGetDescription(Srix *target, int reader)
Function that return specified nfc reader description (connection string).
MikaiError NfcGetUid(NfcReader reader[static 1], uint8_t uid[const static SRIX_UID_LENGTH])