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::SAMISO7816Commands< T, S > Class Template Reference

The SAMISO7816 commands class. More...

#include <samiso7816commands.hpp>

Inheritance diagram for logicalaccess::SAMISO7816Commands< T, S >:
logicalaccess::SAMCommands< T, S > logicalaccess::Commands logicalaccess::ICommands

Public Member Functions

 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.
 

Protected Member Functions

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 truncateMacBuffer (ByteVector &data)
 

Protected Attributes

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

template<typename T, typename S>
class logicalaccess::SAMISO7816Commands< T, S >

The SAMISO7816 commands class.

Constructor & Destructor Documentation

◆ SAMISO7816Commands() [1/2]

template<typename T , typename S >
logicalaccess::SAMISO7816Commands< T, S >::SAMISO7816Commands ( )
inline

Constructor.

◆ SAMISO7816Commands() [2/2]

template<typename T , typename S >
logicalaccess::SAMISO7816Commands< T, S >::SAMISO7816Commands ( std::string  ct)
inlineexplicit

◆ ~SAMISO7816Commands()

template<typename T , typename S >
virtual logicalaccess::SAMISO7816Commands< T, S >::~SAMISO7816Commands ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ changeKeyPICC()

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::changeKeyPICC ( const ChangeKeyInfo info,
const ChangeKeyDiversification diversifycation 
)
inlineoverridevirtual

◆ decipherData()

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::decipherData ( ByteVector  data,
bool  islastdata 
)
inlineoverridevirtual

◆ disableKeyEntry()

template<typename T , typename S >
void logicalaccess::SAMISO7816Commands< T, S >::disableKeyEntry ( unsigned char  keyno)
inlineoverridevirtual

◆ dumpSessionKey()

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::dumpSessionKey ( )
inlineoverridevirtual

◆ encipherData()

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::encipherData ( ByteVector  data,
bool  islastdata 
)
inlineoverridevirtual

◆ generateAuthEncKey()

template<typename T , typename S >
void logicalaccess::SAMISO7816Commands< T, S >::generateAuthEncKey ( ByteVector  keycipher,
ByteVector  rnd1,
ByteVector  rnd2 
)
inlineprotected

◆ getCrypto()

template<typename T , typename S >
virtual std::shared_ptr< SAMDESfireCrypto > logicalaccess::SAMISO7816Commands< T, S >::getCrypto ( )
inlinevirtual

◆ getISO7816ReaderCardAdapter()

template<typename T , typename S >
std::shared_ptr< ISO7816ReaderCardAdapter > logicalaccess::SAMISO7816Commands< T, S >::getISO7816ReaderCardAdapter ( )
inline

◆ getSAMTypeFromSAM()

template<typename T , typename S >
std::string logicalaccess::SAMISO7816Commands< T, S >::getSAMTypeFromSAM ( )
inlineoverridevirtual

◆ getVersion()

template<typename T , typename S >
SAMVersion logicalaccess::SAMISO7816Commands< T, S >::getVersion ( )
inlineoverridevirtual

◆ loadInitVector()

template<typename T , typename S >
void logicalaccess::SAMISO7816Commands< T, S >::loadInitVector ( ByteVector  iv)
inlineoverridevirtual

◆ lockUnlock()

template<typename T , typename S >
void logicalaccess::SAMISO7816Commands< T, S >::lockUnlock ( std::shared_ptr< DESFireKey masterKey,
SAMLockUnlock  state,
unsigned char  keyno,
unsigned char  unlockkeyno,
unsigned char  unlockkeyversion 
)
inlineoverridevirtual

◆ selectApplication()

template<typename T , typename S >
void logicalaccess::SAMISO7816Commands< T, S >::selectApplication ( ByteVector  aid)
inlineoverridevirtual

◆ setCrypto()

template<typename T , typename S >
virtual void logicalaccess::SAMISO7816Commands< T, S >::setCrypto ( std::shared_ptr< SAMDESfireCrypto t)
inlinevirtual

◆ transmit()

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::transmit ( ByteVector  cmd,
bool  = true,
bool  = true 
)
inlineoverridevirtual

◆ truncateMacBuffer()

template<typename T , typename S >
static void logicalaccess::SAMISO7816Commands< T, S >::truncateMacBuffer ( ByteVector data)
inlinestaticprotected

Member Data Documentation

◆ d_authKey

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::d_authKey
protected

◆ d_cla

template<typename T , typename S >
unsigned char logicalaccess::SAMISO7816Commands< T, S >::d_cla
protected

◆ d_crypto

template<typename T , typename S >
std::shared_ptr<SAMDESfireCrypto> logicalaccess::SAMISO7816Commands< T, S >::d_crypto
protected

◆ d_LastSessionIV

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::d_LastSessionIV
protected

◆ d_sessionKey

template<typename T , typename S >
ByteVector logicalaccess::SAMISO7816Commands< T, S >::d_sessionKey
protected

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