LibLogicalAccess  2.5.0
An Open Source RFID Library
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
logicalaccess::SAMAV2ISO7816Commands Class Reference

The DESFire base commands class. More...

#include <samav2iso7816commands.hpp>

Inheritance diagram for logicalaccess::SAMAV2ISO7816Commands:
logicalaccess::SAMISO7816Commands< KeyEntryAV2Information, SETAV2 > logicalaccess::SAMAV2Commands< KeyEntryAV2Information, SETAV2 > logicalaccess::SAMCommands< T, S > logicalaccess::ICommands logicalaccess::Commands logicalaccess::ICommands

Public Member Functions

 SAMAV2ISO7816Commands ()
 Constructor.
 
 SAMAV2ISO7816Commands (std::string)
 
virtual ~SAMAV2ISO7816Commands ()
 Destructor.
 
void authenticateHost (std::shared_ptr< DESFireKey > key, unsigned char keyno) override
 
std::shared_ptr< SAMKeyEntry< KeyEntryAV2Information, SETAV2 > > getKeyEntry (unsigned char keyno) override
 
std::shared_ptr< SAMKucEntrygetKUCEntry (unsigned char kucno) override
 
void changeKUCEntry (unsigned char kucno, std::shared_ptr< SAMKucEntry > kucentry, std::shared_ptr< DESFireKey > key) override
 
void changeKeyEntry (unsigned char keyno, std::shared_ptr< SAMKeyEntry< KeyEntryAV2Information, SETAV2 > > keyentry, std::shared_ptr< DESFireKey > key) override
 
ByteVector transmit (ByteVector cmd, bool first=true, bool last=true) override
 
ByteVector dumpSecretKey (unsigned char keyno, unsigned char keyversion, ByteVector divInpu) override
 
void activateOfflineKey (unsigned char keyno, unsigned char keyversion, ByteVector divInpu) override
 
ByteVector decipherOfflineData (ByteVector data) override
 
ByteVector encipherOfflineData (ByteVector data) override
 
virtual ByteVector cmacOffline (const ByteVector &data)
 
std::shared_ptr< ChipgetChip () const override
 Get the chip.
 
std::shared_ptr< ReaderCardAdaptergetReaderCardAdapter () const override
 Get the reader/card adapter.
 
- Public Member Functions inherited from logicalaccess::SAMISO7816Commands< KeyEntryAV2Information, SETAV2 >
 SAMISO7816Commands ()
 Constructor.
 
 SAMISO7816Commands (std::string ct)
 
virtual ~SAMISO7816Commands ()
 Destructor.
 
std::shared_ptr< ISO7816ReaderCardAdaptergetISO7816ReaderCardAdapter ()
 
ByteVector transmit (ByteVector cmd, bool=true, bool=true) override
 
SAMVersion getVersion () override
 
ByteVector decipherData (ByteVector data, bool islastdata) override
 
ByteVector encipherData (ByteVector data, bool islastdata) override
 
void disableKeyEntry (unsigned char keyno) override
 
ByteVector dumpSessionKey () override
 
void loadInitVector (ByteVector iv) override
 
std::string getSAMTypeFromSAM () override
 
virtual std::shared_ptr< SAMDESfireCryptogetCrypto ()
 
virtual void setCrypto (std::shared_ptr< SAMDESfireCrypto > t)
 
void lockUnlock (std::shared_ptr< DESFireKey > masterKey, SAMLockUnlock state, unsigned char keyno, unsigned char unlockkeyno, unsigned char unlockkeyversion) override
 
void selectApplication (ByteVector aid) override
 
ByteVector changeKeyPICC (const ChangeKeyInfo &info, const ChangeKeyDiversification &diversifycation) override
 
- Public Member Functions inherited from logicalaccess::SAMCommands< T, S >
 SAMCommands ()
 
 SAMCommands (std::string ct)
 
virtual SAMVersion getVersion ()=0
 
virtual std::shared_ptr< SAMKeyEntry< T, S > > getKeyEntry (unsigned char keyno)=0
 
virtual std::shared_ptr< SAMKucEntrygetKUCEntry (unsigned char keyno)=0
 
virtual void changeKeyEntry (unsigned char keyno, std::shared_ptr< SAMKeyEntry< T, S > > keyentry, std::shared_ptr< DESFireKey > key)=0
 
virtual void changeKUCEntry (unsigned char keyno, std::shared_ptr< SAMKucEntry > keyentry, std::shared_ptr< DESFireKey > key)=0
 
virtual void authenticateHost (std::shared_ptr< DESFireKey > key, unsigned char keyno)=0
 
virtual std::string getSAMTypeFromSAM ()=0
 
virtual void disableKeyEntry (unsigned char keyno)=0
 
virtual void selectApplication (ByteVector aid)=0
 
virtual ByteVector dumpSessionKey ()=0
 
virtual void loadInitVector (ByteVector iv)=0
 
virtual ByteVector decipherData (ByteVector data, bool islastdata)=0
 
virtual ByteVector encipherData (ByteVector data, bool islastdata)=0
 
virtual ByteVector changeKeyPICC (const ChangeKeyInfo &info, const ChangeKeyDiversification &diversifycation)=0
 
virtual void lockUnlock (std::shared_ptr< DESFireKey > masterKey, SAMLockUnlock state, unsigned char keyno, unsigned char unlockkeyno, unsigned char unlockkeyversion)=0
 
virtual ByteVector transmit (ByteVector cmd, bool first=true, bool last=true)=0
 
- Public Member Functions inherited from logicalaccess::Commands
 Commands ()=delete
 Constructor.
 
virtual ~Commands ()
 
std::shared_ptr< ChipgetChip () const override
 Get the chip.
 
virtual void setChip (std::shared_ptr< Chip > chip)
 Set the chip.
 
std::shared_ptr< ReaderCardAdaptergetReaderCardAdapter () 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.
 
- Public Member Functions inherited from logicalaccess::ICommands
virtual ~ICommands ()=default
 
virtual std::shared_ptr< ChipgetChip () const =0
 Get the chip.
 
virtual std::shared_ptr< ReaderCardAdaptergetReaderCardAdapter () const =0
 Get the reader/card adapter.
 
virtual ByteVector dumpSecretKey (unsigned char keyno, unsigned char keyversion, ByteVector divInpu)=0
 
virtual void activateOfflineKey (unsigned char keyno, unsigned char keyversion, ByteVector divInpu)=0
 
virtual ByteVector decipherOfflineData (ByteVector data)=0
 
virtual ByteVector encipherOfflineData (ByteVector data)=0
 

Protected Member Functions

void generateSessionKey (ByteVector rnd1, ByteVector rnd2)
 
ByteVector createfullProtectionCmd (ByteVector cmd)
 
ByteVector verifyAndDecryptResponse (ByteVector response)
 
ByteVector generateEncIV (bool encrypt) const
 
- Protected Member Functions inherited from logicalaccess::SAMISO7816Commands< KeyEntryAV2Information, SETAV2 >
void generateAuthEncKey (ByteVector keycipher, ByteVector rnd1, ByteVector rnd2)
 
- Protected Member Functions inherited from logicalaccess::Commands
 Commands (std::string commandtype)
 Constructor.
 

Static Protected Member Functions

static void getLcLe (ByteVector cmd, bool &lc, unsigned char &lcvalue, bool &le)
 
- Static Protected Member Functions inherited from logicalaccess::SAMISO7816Commands< KeyEntryAV2Information, SETAV2 >
static void truncateMacBuffer (ByteVector &data)
 

Protected Attributes

ByteVector d_macSessionKey
 
ByteVector d_lastMacIV
 
unsigned int d_cmdCtr
 
- Protected Attributes inherited from logicalaccess::SAMISO7816Commands< KeyEntryAV2Information, SETAV2 >
std::shared_ptr< SAMDESfireCryptod_crypto
 
unsigned char d_cla
 
ByteVector d_authKey
 
ByteVector d_sessionKey
 
ByteVector d_LastSessionIV
 
- Protected Attributes inherited from logicalaccess::Commands
std::shared_ptr< ReaderCardAdapterd_readerCardAdapter
 The reader/card adapter.
 
std::weak_ptr< Chipd_chip
 The chip.
 
std::string d_commandtype
 The command type.
 

Detailed Description

The DESFire base commands class.

Constructor & Destructor Documentation

◆ SAMAV2ISO7816Commands() [1/2]

logicalaccess::SAMAV2ISO7816Commands::SAMAV2ISO7816Commands ( )

Constructor.

◆ SAMAV2ISO7816Commands() [2/2]

logicalaccess::SAMAV2ISO7816Commands::SAMAV2ISO7816Commands ( std::string  ct)
explicit

◆ ~SAMAV2ISO7816Commands()

logicalaccess::SAMAV2ISO7816Commands::~SAMAV2ISO7816Commands ( )
virtual

Destructor.

Member Function Documentation

◆ activateOfflineKey()

void logicalaccess::SAMAV2ISO7816Commands::activateOfflineKey ( unsigned char  keyno,
unsigned char  keyversion,
ByteVector  divInpu 
)
overridevirtual

◆ authenticateHost()

void logicalaccess::SAMAV2ISO7816Commands::authenticateHost ( std::shared_ptr< DESFireKey key,
unsigned char  keyno 
)
overridevirtual

◆ changeKeyEntry()

void logicalaccess::SAMAV2ISO7816Commands::changeKeyEntry ( unsigned char  keyno,
std::shared_ptr< SAMKeyEntry< KeyEntryAV2Information, SETAV2 > >  keyentry,
std::shared_ptr< DESFireKey key 
)
override

◆ changeKUCEntry()

void logicalaccess::SAMAV2ISO7816Commands::changeKUCEntry ( unsigned char  kucno,
std::shared_ptr< SAMKucEntry kucentry,
std::shared_ptr< DESFireKey key 
)
overridevirtual

◆ cmacOffline()

ByteVector logicalaccess::SAMAV2ISO7816Commands::cmacOffline ( const ByteVector data)
virtual

◆ createfullProtectionCmd()

ByteVector logicalaccess::SAMAV2ISO7816Commands::createfullProtectionCmd ( ByteVector  cmd)
protected

◆ decipherOfflineData()

ByteVector logicalaccess::SAMAV2ISO7816Commands::decipherOfflineData ( ByteVector  data)
overridevirtual

◆ dumpSecretKey()

ByteVector logicalaccess::SAMAV2ISO7816Commands::dumpSecretKey ( unsigned char  keyno,
unsigned char  keyversion,
ByteVector  divInpu 
)
overridevirtual

◆ encipherOfflineData()

ByteVector logicalaccess::SAMAV2ISO7816Commands::encipherOfflineData ( ByteVector  data)
overridevirtual

◆ generateEncIV()

ByteVector logicalaccess::SAMAV2ISO7816Commands::generateEncIV ( bool  encrypt) const
protected

◆ generateSessionKey()

void logicalaccess::SAMAV2ISO7816Commands::generateSessionKey ( ByteVector  rnd1,
ByteVector  rnd2 
)
protected

◆ getChip()

std::shared_ptr< Chip > logicalaccess::SAMAV2ISO7816Commands::getChip ( ) const
inlineoverridevirtual

Get the chip.

Returns
The chip.

Implements logicalaccess::ICommands.

◆ getKeyEntry()

std::shared_ptr< SAMKeyEntry< KeyEntryAV2Information, SETAV2 > > logicalaccess::SAMAV2ISO7816Commands::getKeyEntry ( unsigned char  keyno)
overridevirtual

◆ getKUCEntry()

std::shared_ptr< SAMKucEntry > logicalaccess::SAMAV2ISO7816Commands::getKUCEntry ( unsigned char  kucno)
overridevirtual

◆ getLcLe()

void logicalaccess::SAMAV2ISO7816Commands::getLcLe ( ByteVector  cmd,
bool &  lc,
unsigned char &  lcvalue,
bool &  le 
)
staticprotected

◆ getReaderCardAdapter()

std::shared_ptr< ReaderCardAdapter > logicalaccess::SAMAV2ISO7816Commands::getReaderCardAdapter ( ) const
inlineoverridevirtual

Get the reader/card adapter.

Returns
The reader/card adapter.

Implements logicalaccess::ICommands.

◆ transmit()

ByteVector logicalaccess::SAMAV2ISO7816Commands::transmit ( ByteVector  cmd,
bool  first = true,
bool  last = true 
)
overridevirtual

◆ verifyAndDecryptResponse()

ByteVector logicalaccess::SAMAV2ISO7816Commands::verifyAndDecryptResponse ( ByteVector  response)
protected

Member Data Documentation

◆ d_cmdCtr

unsigned int logicalaccess::SAMAV2ISO7816Commands::d_cmdCtr
protected

◆ d_lastMacIV

ByteVector logicalaccess::SAMAV2ISO7816Commands::d_lastMacIV
protected

◆ d_macSessionKey

ByteVector logicalaccess::SAMAV2ISO7816Commands::d_macSessionKey
protected

The documentation for this class was generated from the following files: