Add mfSectorTrailerOfSector

This commit is contained in:
Philippe Teuwen 2022-02-17 01:14:21 +01:00
parent 6d5bb3eace
commit 05e7eda871
2 changed files with 15 additions and 4 deletions

View file

@ -489,17 +489,27 @@ int MFPGetVersion(bool activateField, bool leaveSignalON, uint8_t *dataout, int
// Mifare Memory Structure: up to 32 Sectors with 4 blocks each (1k and 2k cards), // Mifare Memory Structure: up to 32 Sectors with 4 blocks each (1k and 2k cards),
// plus evtl. 8 sectors with 16 blocks each (4k cards) // plus evtl. 8 sectors with 16 blocks each (4k cards)
uint8_t mfNumBlocksPerSector(uint8_t sectorNo) { uint8_t mfNumBlocksPerSector(uint8_t sectorNo) {
if (sectorNo < 32) if (sectorNo < 32) {
return 4; return 4;
else } else {
return 16; return 16;
}
} }
uint8_t mfFirstBlockOfSector(uint8_t sectorNo) { uint8_t mfFirstBlockOfSector(uint8_t sectorNo) {
if (sectorNo < 32) if (sectorNo < 32) {
return sectorNo * 4; return sectorNo * 4;
else } else {
return 32 * 4 + (sectorNo - 32) * 16; return 32 * 4 + (sectorNo - 32) * 16;
}
}
uint8_t mfSectorTrailerOfSector(uint8_t sectorNo) {
if (sectorNo < 32) {
return (sectorNo * 4) | 0x03;
} else {
return (32 * 4 + (sectorNo - 32) * 16) | 0x0f;
}
} }
// assumes blockno is 0-255.. // assumes blockno is 0-255..

View file

@ -75,6 +75,7 @@ const char *mfGetAccessConditionsDesc(uint8_t blockn, const uint8_t *data);
uint8_t mfNumBlocksPerSector(uint8_t sectorNo); uint8_t mfNumBlocksPerSector(uint8_t sectorNo);
uint8_t mfFirstBlockOfSector(uint8_t sectorNo); uint8_t mfFirstBlockOfSector(uint8_t sectorNo);
uint8_t mfSectorTrailerOfSector(uint8_t sectorNo);
uint8_t mfSectorTrailer(uint8_t blockNo); uint8_t mfSectorTrailer(uint8_t blockNo);
bool mfIsSectorTrailer(uint8_t blockNo); bool mfIsSectorTrailer(uint8_t blockNo);
uint8_t mfSectorNum(uint8_t blockNo); uint8_t mfSectorNum(uint8_t blockNo);