Rename MifareSectorNumber to MifareClassicSectorNumber.
This commit is contained in:
parent
8afbf4fe69
commit
163df002f2
7 changed files with 40 additions and 40 deletions
|
@ -41,7 +41,7 @@ MifareClassicKey default_keys[] = {
|
||||||
};
|
};
|
||||||
int format_mifare_classic_1k (MifareTag tag);
|
int format_mifare_classic_1k (MifareTag tag);
|
||||||
int format_mifare_classic_4k (MifareTag tag);
|
int format_mifare_classic_4k (MifareTag tag);
|
||||||
int try_format_sector (MifareTag tag, MifareSectorNumber sector);
|
int try_format_sector (MifareTag tag, MifareClassicSectorNumber sector);
|
||||||
|
|
||||||
static int at_block = 0;
|
static int at_block = 0;
|
||||||
static int mod_block = 10;
|
static int mod_block = 10;
|
||||||
|
@ -84,7 +84,7 @@ format_mifare_classic_4k (MifareTag tag)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
try_format_sector (MifareTag tag, MifareSectorNumber sector)
|
try_format_sector (MifareTag tag, MifareClassicSectorNumber sector)
|
||||||
{
|
{
|
||||||
display_progress ();
|
display_progress ();
|
||||||
for (size_t i = 0; i < (sizeof (default_keys) / sizeof (MifareClassicKey)); i++) {
|
for (size_t i = 0; i < (sizeof (default_keys) / sizeof (MifareClassicKey)); i++) {
|
||||||
|
|
|
@ -98,7 +98,7 @@ search_sector_key (MifareTag tag, MifareClassicBlockNumber block, MifareClassicK
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
fix_mad_trailer_block (MifareTag tag, MifareSectorNumber sector, MifareClassicKey key, MifareClassicKeyType key_type)
|
fix_mad_trailer_block (MifareTag tag, MifareClassicSectorNumber sector, MifareClassicKey key, MifareClassicKeyType key_type)
|
||||||
{
|
{
|
||||||
MifareClassicBlock block;
|
MifareClassicBlock block;
|
||||||
mifare_classic_trailer_block (&block, mad_key_a, 0x0, 0x1, 0x1, 0x6, 0x00, default_keyb);
|
mifare_classic_trailer_block (&block, mad_key_a, 0x0, 0x1, 0x1, 0x6, 0x00, default_keyb);
|
||||||
|
|
|
@ -66,7 +66,7 @@ int mifare_ultralight_write (MifareTag tag, const MifareUltralightPageNumber p
|
||||||
|
|
||||||
typedef unsigned char MifareClassicBlock[16];
|
typedef unsigned char MifareClassicBlock[16];
|
||||||
|
|
||||||
typedef uint8_t MifareSectorNumber;
|
typedef uint8_t MifareClassicSectorNumber;
|
||||||
typedef unsigned char MifareClassicBlockNumber;
|
typedef unsigned char MifareClassicBlockNumber;
|
||||||
|
|
||||||
typedef enum { MFC_KEY_A, MFC_KEY_B } MifareClassicKeyType;
|
typedef enum { MFC_KEY_A, MFC_KEY_B } MifareClassicKeyType;
|
||||||
|
@ -89,14 +89,14 @@ int mifare_classic_transfer (MifareTag tag, const MifareClassicBlockNumber blo
|
||||||
int mifare_classic_get_trailer_block_permission (MifareTag tag, const MifareClassicBlockNumber block, const uint16_t permission, const MifareClassicKeyType key_type);
|
int mifare_classic_get_trailer_block_permission (MifareTag tag, const MifareClassicBlockNumber block, const uint16_t permission, const MifareClassicKeyType key_type);
|
||||||
int mifare_classic_get_data_block_permission (MifareTag tag, const MifareClassicBlockNumber block, const unsigned char permission, const MifareClassicKeyType key_type);
|
int mifare_classic_get_data_block_permission (MifareTag tag, const MifareClassicBlockNumber block, const unsigned char permission, const MifareClassicKeyType key_type);
|
||||||
|
|
||||||
int mifare_classic_format_sector (MifareTag tag, const MifareSectorNumber sector);
|
int mifare_classic_format_sector (MifareTag tag, const MifareClassicSectorNumber sector);
|
||||||
|
|
||||||
void mifare_classic_trailer_block (MifareClassicBlock *block, const MifareClassicKey key_a, uint8_t ab_0, uint8_t ab_1, uint8_t ab_2, uint8_t ab_tb, const uint8_t gpb, const MifareClassicKey key_b);
|
void mifare_classic_trailer_block (MifareClassicBlock *block, const MifareClassicKey key_a, uint8_t ab_0, uint8_t ab_1, uint8_t ab_2, uint8_t ab_tb, const uint8_t gpb, const MifareClassicKey key_b);
|
||||||
|
|
||||||
MifareSectorNumber mifare_classic_block_sector (MifareClassicBlockNumber block);
|
MifareClassicSectorNumber mifare_classic_block_sector (MifareClassicBlockNumber block);
|
||||||
MifareClassicBlockNumber mifare_classic_sector_first_block (MifareSectorNumber sector);
|
MifareClassicBlockNumber mifare_classic_sector_first_block (MifareClassicSectorNumber sector);
|
||||||
size_t mifare_classic_sector_block_count (MifareSectorNumber sector);
|
size_t mifare_classic_sector_block_count (MifareClassicSectorNumber sector);
|
||||||
MifareClassicBlockNumber mifare_classic_sector_last_block (MifareSectorNumber sector);
|
MifareClassicBlockNumber mifare_classic_sector_last_block (MifareClassicSectorNumber sector);
|
||||||
|
|
||||||
#define C_000 0
|
#define C_000 0
|
||||||
#define C_001 1
|
#define C_001 1
|
||||||
|
@ -138,17 +138,17 @@ Mad mad_read (MifareTag tag);
|
||||||
int mad_write (MifareTag tag, Mad mad, MifareClassicKey key_b_sector_00, MifareClassicKey key_b_sector_10);
|
int mad_write (MifareTag tag, Mad mad, MifareClassicKey key_b_sector_00, MifareClassicKey key_b_sector_10);
|
||||||
int mad_get_version (Mad mad);
|
int mad_get_version (Mad mad);
|
||||||
void mad_set_version (Mad mad, uint8_t version);
|
void mad_set_version (Mad mad, uint8_t version);
|
||||||
MifareSectorNumber mad_get_card_publisher_sector (Mad mad);
|
MifareClassicSectorNumber mad_get_card_publisher_sector (Mad mad);
|
||||||
int mad_set_card_publisher_sector (Mad mad, MifareSectorNumber cps);
|
int mad_set_card_publisher_sector (Mad mad, MifareClassicSectorNumber cps);
|
||||||
int mad_get_aid (Mad mad, MifareSectorNumber sector, MadAid *aid);
|
int mad_get_aid (Mad mad, MifareClassicSectorNumber sector, MadAid *aid);
|
||||||
int mad_set_aid (Mad mad, MifareSectorNumber sector, MadAid aid);
|
int mad_set_aid (Mad mad, MifareClassicSectorNumber sector, MadAid aid);
|
||||||
bool mad_sector_reserved (MifareSectorNumber sector);
|
bool mad_sector_reserved (MifareClassicSectorNumber sector);
|
||||||
void mad_free (Mad mad);
|
void mad_free (Mad mad);
|
||||||
|
|
||||||
MifareSectorNumber *mifare_application_alloc (Mad mad, MadAid aid, size_t size);
|
MifareClassicSectorNumber *mifare_application_alloc (Mad mad, MadAid aid, size_t size);
|
||||||
void mifare_application_free (Mad mad, MadAid aid);
|
void mifare_application_free (Mad mad, MadAid aid);
|
||||||
|
|
||||||
MifareSectorNumber *mifare_application_find (Mad mad, MadAid aid);
|
MifareClassicSectorNumber *mifare_application_find (Mad mad, MadAid aid);
|
||||||
|
|
||||||
|
|
||||||
uint8_t *tlv_encode (const uint8_t type, const uint8_t *istream, uint16_t isize, size_t *osize);
|
uint8_t *tlv_encode (const uint8_t type, const uint8_t *istream, uint16_t isize, size_t *osize);
|
||||||
|
|
|
@ -337,7 +337,7 @@ mad_set_version (Mad mad, uint8_t version)
|
||||||
/*
|
/*
|
||||||
* Return the MAD card publisher sector.
|
* Return the MAD card publisher sector.
|
||||||
*/
|
*/
|
||||||
MifareSectorNumber
|
MifareClassicSectorNumber
|
||||||
mad_get_card_publisher_sector(Mad mad)
|
mad_get_card_publisher_sector(Mad mad)
|
||||||
{
|
{
|
||||||
return (mad->sector_0x00.info & 0x3f);
|
return (mad->sector_0x00.info & 0x3f);
|
||||||
|
@ -347,7 +347,7 @@ mad_get_card_publisher_sector(Mad mad)
|
||||||
* Set the MAD card publisher sector.
|
* Set the MAD card publisher sector.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
mad_set_card_publisher_sector(Mad mad, MifareSectorNumber cps)
|
mad_set_card_publisher_sector(Mad mad, MifareClassicSectorNumber cps)
|
||||||
{
|
{
|
||||||
if (((mad->version == 2) && (cps > 0x27)) | (mad->version == 1) && (cps > 0x0f)) {
|
if (((mad->version == 2) && (cps > 0x27)) | (mad->version == 1) && (cps > 0x0f)) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
|
@ -362,7 +362,7 @@ mad_set_card_publisher_sector(Mad mad, MifareSectorNumber cps)
|
||||||
* Get the provided sector's application identifier.
|
* Get the provided sector's application identifier.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
mad_get_aid(Mad mad, MifareSectorNumber sector, MadAid *aid)
|
mad_get_aid(Mad mad, MifareClassicSectorNumber sector, MadAid *aid)
|
||||||
{
|
{
|
||||||
if ((sector < 1) || (sector == 0x10) || (sector > 0x27)) {
|
if ((sector < 1) || (sector == 0x10) || (sector > 0x27)) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
|
@ -389,7 +389,7 @@ mad_get_aid(Mad mad, MifareSectorNumber sector, MadAid *aid)
|
||||||
* Set the provided sector's application identifier.
|
* Set the provided sector's application identifier.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
mad_set_aid(Mad mad, MifareSectorNumber sector, MadAid aid)
|
mad_set_aid(Mad mad, MifareClassicSectorNumber sector, MadAid aid)
|
||||||
{
|
{
|
||||||
if ((sector < 1) || (sector == 0x10) || (sector > 0x27)) {
|
if ((sector < 1) || (sector == 0x10) || (sector > 0x27)) {
|
||||||
errno = EINVAL;
|
errno = EINVAL;
|
||||||
|
@ -412,7 +412,7 @@ mad_set_aid(Mad mad, MifareSectorNumber sector, MadAid aid)
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
mad_sector_reserved (MifareSectorNumber sector)
|
mad_sector_reserved (MifareClassicSectorNumber sector)
|
||||||
{
|
{
|
||||||
return ((0x00 == sector) || (0x10 == sector));
|
return ((0x00 == sector) || (0x10 == sector));
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,11 +42,11 @@ count_aids (const Mad mad, const MadAid aid)
|
||||||
{
|
{
|
||||||
size_t result = 0;
|
size_t result = 0;
|
||||||
|
|
||||||
MifareSectorNumber s_max = (mad_get_version (mad) == 1) ? 0x0f : 0x27;
|
MifareClassicSectorNumber s_max = (mad_get_version (mad) == 1) ? 0x0f : 0x27;
|
||||||
|
|
||||||
/* Count application sectors */
|
/* Count application sectors */
|
||||||
MadAid c_aid;
|
MadAid c_aid;
|
||||||
for (MifareSectorNumber s = FIRST_SECTOR; s <= s_max; s++) {
|
for (MifareClassicSectorNumber s = FIRST_SECTOR; s <= s_max; s++) {
|
||||||
mad_get_aid (mad, s, &c_aid);
|
mad_get_aid (mad, s, &c_aid);
|
||||||
if (0 == aidcmp (aid, c_aid)) {
|
if (0 == aidcmp (aid, c_aid)) {
|
||||||
result++;
|
result++;
|
||||||
|
@ -73,19 +73,19 @@ aidcmp (const MadAid left, const MadAid right)
|
||||||
/*
|
/*
|
||||||
* Allocates a new application into a MAD.
|
* Allocates a new application into a MAD.
|
||||||
*/
|
*/
|
||||||
MifareSectorNumber *
|
MifareClassicSectorNumber *
|
||||||
mifare_application_alloc (Mad mad, MadAid aid, size_t size)
|
mifare_application_alloc (Mad mad, MadAid aid, size_t size)
|
||||||
{
|
{
|
||||||
uint8_t sector_map[40];
|
uint8_t sector_map[40];
|
||||||
MifareSectorNumber sector;
|
MifareClassicSectorNumber sector;
|
||||||
MadAid sector_aid;
|
MadAid sector_aid;
|
||||||
MifareSectorNumber *res = NULL;
|
MifareClassicSectorNumber *res = NULL;
|
||||||
ssize_t s = size;
|
ssize_t s = size;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ensure the card does not already have the application registered.
|
* Ensure the card does not already have the application registered.
|
||||||
*/
|
*/
|
||||||
MifareSectorNumber *found;
|
MifareClassicSectorNumber *found;
|
||||||
if ((found = mifare_application_find (mad, aid))) {
|
if ((found = mifare_application_find (mad, aid))) {
|
||||||
free (found);
|
free (found);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -112,7 +112,7 @@ mifare_application_alloc (Mad mad, MadAid aid, size_t size)
|
||||||
}
|
}
|
||||||
|
|
||||||
sector = FIRST_SECTOR;
|
sector = FIRST_SECTOR;
|
||||||
MifareSectorNumber s_max = (mad_get_version (mad) == 1) ? 15 : 31;
|
MifareClassicSectorNumber s_max = (mad_get_version (mad) == 1) ? 15 : 31;
|
||||||
while ((s > 0) && (sector <= s_max)) {
|
while ((s > 0) && (sector <= s_max)) {
|
||||||
if (mad_sector_reserved (sector))
|
if (mad_sector_reserved (sector))
|
||||||
continue;
|
continue;
|
||||||
|
@ -158,8 +158,8 @@ mifare_application_alloc (Mad mad, MadAid aid, size_t size)
|
||||||
void
|
void
|
||||||
mifare_application_free (Mad mad, MadAid aid)
|
mifare_application_free (Mad mad, MadAid aid)
|
||||||
{
|
{
|
||||||
MifareSectorNumber *sectors = mifare_application_find (mad, aid);
|
MifareClassicSectorNumber *sectors = mifare_application_find (mad, aid);
|
||||||
MifareSectorNumber *p = sectors;
|
MifareClassicSectorNumber *p = sectors;
|
||||||
MadAid free_aid = { 0x00, 0x00 };
|
MadAid free_aid = { 0x00, 0x00 };
|
||||||
while (*p) {
|
while (*p) {
|
||||||
mad_set_aid (mad, *p, free_aid);
|
mad_set_aid (mad, *p, free_aid);
|
||||||
|
@ -177,10 +177,10 @@ mifare_application_free (Mad mad, MadAid aid)
|
||||||
/*
|
/*
|
||||||
* Get all sector numbers of an application from the provided MAD.
|
* Get all sector numbers of an application from the provided MAD.
|
||||||
*/
|
*/
|
||||||
MifareSectorNumber *
|
MifareClassicSectorNumber *
|
||||||
mifare_application_find (Mad mad, MadAid aid)
|
mifare_application_find (Mad mad, MadAid aid)
|
||||||
{
|
{
|
||||||
MifareSectorNumber *res = NULL;
|
MifareClassicSectorNumber *res = NULL;
|
||||||
size_t res_count = count_aids (mad, aid);
|
size_t res_count = count_aids (mad, aid);
|
||||||
|
|
||||||
if (res_count)
|
if (res_count)
|
||||||
|
|
|
@ -632,7 +632,7 @@ mifare_classic_get_data_block_permission (MifareTag tag, const MifareClassicBloc
|
||||||
* Reset a MIFARE target sector to factory default.
|
* Reset a MIFARE target sector to factory default.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
mifare_classic_format_sector (MifareTag tag, const MifareSectorNumber sector)
|
mifare_classic_format_sector (MifareTag tag, const MifareClassicSectorNumber sector)
|
||||||
{
|
{
|
||||||
MifareClassicBlockNumber first_sector_block = mifare_classic_sector_first_block (sector);
|
MifareClassicBlockNumber first_sector_block = mifare_classic_sector_first_block (sector);
|
||||||
MifareClassicBlockNumber last_sector_block = mifare_classic_sector_last_block (sector);
|
MifareClassicBlockNumber last_sector_block = mifare_classic_sector_last_block (sector);
|
||||||
|
@ -679,10 +679,10 @@ mifare_classic_format_sector (MifareTag tag, const MifareSectorNumber sector)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
MifareSectorNumber
|
MifareClassicSectorNumber
|
||||||
mifare_classic_block_sector (MifareClassicBlockNumber block)
|
mifare_classic_block_sector (MifareClassicBlockNumber block)
|
||||||
{
|
{
|
||||||
MifareSectorNumber res;
|
MifareClassicSectorNumber res;
|
||||||
|
|
||||||
if (block < 32 * 4)
|
if (block < 32 * 4)
|
||||||
res = block / 4;
|
res = block / 4;
|
||||||
|
@ -696,7 +696,7 @@ mifare_classic_block_sector (MifareClassicBlockNumber block)
|
||||||
* Get the sector's first block number
|
* Get the sector's first block number
|
||||||
*/
|
*/
|
||||||
MifareClassicBlockNumber
|
MifareClassicBlockNumber
|
||||||
mifare_classic_sector_first_block (MifareSectorNumber sector)
|
mifare_classic_sector_first_block (MifareClassicSectorNumber sector)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
if (sector < 32) {
|
if (sector < 32) {
|
||||||
|
@ -709,7 +709,7 @@ mifare_classic_sector_first_block (MifareSectorNumber sector)
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
mifare_classic_sector_block_count (MifareSectorNumber sector)
|
mifare_classic_sector_block_count (MifareClassicSectorNumber sector)
|
||||||
{
|
{
|
||||||
return (sector < 32) ? 4 : 16 ;
|
return (sector < 32) ? 4 : 16 ;
|
||||||
}
|
}
|
||||||
|
@ -718,7 +718,7 @@ mifare_classic_sector_block_count (MifareSectorNumber sector)
|
||||||
* Get the sector's last block number (aka trailer block)
|
* Get the sector's last block number (aka trailer block)
|
||||||
*/
|
*/
|
||||||
MifareClassicBlockNumber
|
MifareClassicBlockNumber
|
||||||
mifare_classic_sector_last_block (MifareSectorNumber sector)
|
mifare_classic_sector_last_block (MifareClassicSectorNumber sector)
|
||||||
{
|
{
|
||||||
return mifare_classic_sector_first_block (sector) +
|
return mifare_classic_sector_first_block (sector) +
|
||||||
mifare_classic_sector_block_count (sector) - 1;
|
mifare_classic_sector_block_count (sector) - 1;
|
||||||
|
|
|
@ -29,10 +29,10 @@ test_mifare_application (void)
|
||||||
Mad mad = mad_new (2);
|
Mad mad = mad_new (2);
|
||||||
cut_assert_not_null (mad, cut_message ("mad_new() failed"));
|
cut_assert_not_null (mad, cut_message ("mad_new() failed"));
|
||||||
|
|
||||||
MifareSectorNumber *s_alloc = mifare_application_alloc (mad, aid, 3*3*16);
|
MifareClassicSectorNumber *s_alloc = mifare_application_alloc (mad, aid, 3*3*16);
|
||||||
cut_assert_not_null (s_alloc, cut_message ("mifare_application_alloc() failed"));
|
cut_assert_not_null (s_alloc, cut_message ("mifare_application_alloc() failed"));
|
||||||
|
|
||||||
MifareSectorNumber *s_found = mifare_application_find (mad, aid);
|
MifareClassicSectorNumber *s_found = mifare_application_find (mad, aid);
|
||||||
cut_assert_not_null (s_found, cut_message ("mifare_application_alloc() failed"));
|
cut_assert_not_null (s_found, cut_message ("mifare_application_alloc() failed"));
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue