LibLogicalAccess
2.5.0
An Open Source RFID Library
|
#include <mifareplus_omnikeyxx21_sl1.hpp>
Classes | |
class | GenericSessionGuard |
Public Member Functions | |
bool | AESAuthenticate (std::shared_ptr< AES128Key > ptr, uint16_t keyslot) override |
![]() | |
MifarePlusSL1Policy () | |
void | fixup () |
bool | AESAuthenticateSL1 (std::shared_ptr< AES128Key > key) override |
void | authenticate (unsigned char blockno, unsigned char keyno, MifareKeyType keytype) override |
Authenticate a block, given a key number. | |
ByteVector | readBinary (unsigned char blockno, size_t len) override |
Read bytes from the card. | |
void | updateBinary (unsigned char blockno, const ByteVector &buf) override |
Write bytes to the card. | |
bool | loadKey (unsigned char keyno, MifareKeyType keytype, std::shared_ptr< MifareKey > key, bool vol) override |
Load a key to the reader. | |
void | loadKey (std::shared_ptr< Location > location, MifareKeyType keytype, std::shared_ptr< MifareKey > key) override |
Load a key on a given location. | |
void | authenticate (unsigned char blockno, std::shared_ptr< KeyStorage > key_storage, MifareKeyType keytype) override |
Authenticate a block, given a key number. | |
void | increment (uint8_t blockno, uint32_t value) override |
void | decrement (uint8_t blockno, uint32_t value) override |
![]() | |
MifarePlusSL1Commands () | |
MifarePlusSL1Commands (std::string ct) | |
virtual bool | AESAuthenticate (std::shared_ptr< AES128Key > key, uint16_t keyslot) |
virtual bool | AESAuthenticateSL1 (std::shared_ptr< AES128Key > key) |
virtual bool | switchLevel2 (std::shared_ptr< AES128Key > key) |
virtual bool | switchLevel3 (std::shared_ptr< AES128Key > key) |
ByteVector | readBinary (unsigned char blockno, size_t len) override |
Read bytes from the card. | |
void | updateBinary (unsigned char blockno, const ByteVector &buf) override |
Write bytes to the card. | |
bool | loadKey (unsigned char keyno, MifareKeyType keytype, std::shared_ptr< MifareKey > key, bool vol) override |
Load a key to the reader. | |
void | loadKey (std::shared_ptr< Location > location, MifareKeyType keytype, std::shared_ptr< MifareKey > key) override |
Load a key on a given location. | |
void | authenticate (unsigned char blockno, unsigned char keyno, MifareKeyType keytype) override |
Authenticate a block, given a key number. | |
void | authenticate (unsigned char blockno, std::shared_ptr< KeyStorage > key_storage, MifareKeyType keytype) override |
Authenticate a block, given a key number. | |
void | increment (uint8_t blockno, uint32_t value) override |
void | decrement (uint8_t blockno, uint32_t value) override |
![]() | |
MifareCommands () | |
MifareCommands (std::string ct) | |
virtual ByteVector | readSector (int sector, int start_block, std::shared_ptr< MifareKey > keyA, std::shared_ptr< MifareKey > keyB, const MifareAccessInfo::SectorAccessBits &sab, bool readtrailer=false) final |
virtual void | writeSector (int sector, int start_block, const ByteVector &buf, std::shared_ptr< MifareKey > keyA, std::shared_ptr< MifareKey > keyB, const MifareAccessInfo::SectorAccessBits &sab, unsigned char userbyte=0x00, MifareAccessInfo::SectorAccessBits *newsab=nullptr, std::shared_ptr< MifareKey > newkeyA=std::shared_ptr< MifareKey >(), std::shared_ptr< MifareKey > newkeyB=std::shared_ptr< MifareKey >()) final |
virtual ByteVector | readSectors (int start_sector, int stop_sector, int start_block, std::shared_ptr< MifareKey > keyA, std::shared_ptr< MifareKey > keyB, const MifareAccessInfo::SectorAccessBits &sab) final |
virtual void | writeSectors (int start_sector, int stop_sector, int start_block, const ByteVector &buf, std::shared_ptr< MifareKey > keyA, std::shared_ptr< MifareKey > keyB, const MifareAccessInfo::SectorAccessBits &sab, unsigned char userbyte=0x00, MifareAccessInfo::SectorAccessBits *newsab=nullptr, std::shared_ptr< MifareKey > newkeyA=std::shared_ptr< MifareKey >(), std::shared_ptr< MifareKey > newkeyB=std::shared_ptr< MifareKey >()) final |
unsigned int | getSectorFromMAD (long aid, std::shared_ptr< MifareKey > madKeyA) |
Get the sector referenced by the AID from the MAD. | |
void | setSectorToMAD (long aid, unsigned int sector, std::shared_ptr< MifareKey > madKeyA, std::shared_ptr< MifareKey > madKeyB) |
Set the sector referenced by the AID to the MAD. | |
void | authenticate (std::shared_ptr< Location > location, std::shared_ptr< AccessInfo > ai, bool write=false) |
Authenticate on a given location. | |
void | changeKeys (MifareKeyType keytype, std::shared_ptr< MifareKey > key, std::shared_ptr< MifareKey > newkeyA, std::shared_ptr< MifareKey > newkeyB, unsigned int sector, MifareAccessInfo::SectorAccessBits *newsab, unsigned char userbyte=0x00) |
void | changeKeys (std::shared_ptr< MifareKey > newkeyA, std::shared_ptr< MifareKey > newkeyB, unsigned int sector, MifareAccessInfo::SectorAccessBits *newsab, unsigned char userbyte=0x00) |
void | authenticate (MifareKeyType keyType, std::shared_ptr< MifareKey > key, int sector, int block, bool write) |
Authenticate for a targeted block. | |
virtual ByteVector | readBinary (unsigned char blockno, size_t len)=0 |
Read bytes from the card. | |
virtual void | updateBinary (unsigned char blockno, const ByteVector &buf)=0 |
Write bytes to the card. | |
virtual bool | loadKey (unsigned char keyno, MifareKeyType keytype, std::shared_ptr< MifareKey > key, bool vol=false)=0 |
Load a key to the reader. | |
virtual void | loadKey (std::shared_ptr< Location > location, MifareKeyType keytype, std::shared_ptr< MifareKey > key)=0 |
Load a key on a given location. | |
virtual void | authenticate (unsigned char blockno, unsigned char keyno, MifareKeyType keytype)=0 |
Authenticate a block, given a key number. | |
virtual void | authenticate (unsigned char blockno, std::shared_ptr< KeyStorage > key_storage, MifareKeyType keytype)=0 |
Authenticate a block, given a key number. | |
virtual void | increment (uint8_t blockno, uint32_t value)=0 |
virtual void | decrement (uint8_t blockno, uint32_t value)=0 |
bool | writeValueBlock (uint8_t blockno, int32_t value, uint8_t backup_blockno) |
bool | readValueBlock (uint8_t blockno, int32_t &value, uint8_t &backup_block) |
![]() | |
Commands ()=delete | |
Constructor. | |
virtual | ~Commands () |
std::shared_ptr< Chip > | getChip () const override |
Get the chip. | |
virtual void | setChip (std::shared_ptr< Chip > chip) |
Set the chip. | |
std::shared_ptr< ReaderCardAdapter > | getReaderCardAdapter () const override |
Get the reader/card adapter. | |
virtual void | setReaderCardAdapter (std::shared_ptr< ReaderCardAdapter > adapter) |
Set the reader/card adapter. | |
virtual const std::string & | getCmdType () const |
Get the cmd name. | |
virtual void | setCmdType (const std::string &command_type) |
Set the cmd name. | |
![]() | |
virtual | ~ICommands ()=default |
virtual std::shared_ptr< Chip > | getChip () const =0 |
Get the chip. | |
virtual std::shared_ptr< ReaderCardAdapter > | getReaderCardAdapter () const =0 |
Get the reader/card adapter. | |
Additional Inherited Members | |
![]() | |
static unsigned char | calculateMADCrc (const unsigned char *madbuf, size_t madbuflen) |
Calculate the MAD crc. | |
static unsigned int | findReferencedSector (long aid, unsigned char *madbuf, size_t madbuflen) |
Find the referenced sector in the MAD. | |
static MifareKeyType | getKeyType (const MifareAccessInfo::SectorAccessBits &sab, int sector, int block, bool write) |
static unsigned char | getNbBlocks (int sector) |
Get number of data blocks for a sector. | |
static unsigned char | getSectorStartBlock (int sector) |
Get the sector start block. | |
![]() | |
MifareSL1Impl | sl1_impl_ |
MifareClassicImpl | classic_impl |
![]() | |
std::shared_ptr< MifareChip > | getMifareChip () const |
![]() | |
Commands (std::string commandtype) | |
Constructor. | |
![]() | |
std::shared_ptr< ReaderCardAdapter > | d_readerCardAdapter |
The reader/card adapter. | |
std::weak_ptr< Chip > | d_chip |
The chip. | |
std::string | d_commandtype |
The command type. | |
|
overridevirtual |
The implementation for XX21 needs to use the GENERIC SESSION provided by HID in order to send the AES Authenticate to the card.
This doesn't work under Linux, presumably because the driver doesn't support it.
Reimplemented from logicalaccess::MifarePlusSL1Commands.