7#ifndef LOGICALACCESS_SAMCOMMANDS_HPP
8#define LOGICALACCESS_SAMCOMMANDS_HPP
59template <
typename T,
typename S>
72 virtual std::shared_ptr<SAMKeyEntry<T, S>>
getKeyEntry(
unsigned char keyno) = 0;
73 virtual std::shared_ptr<SAMKucEntry>
getKUCEntry(
unsigned char keyno) = 0;
76 std::shared_ptr<DESFireKey> key) = 0;
78 std::shared_ptr<SAMKucEntry> keyentry,
79 std::shared_ptr<DESFireKey> key) = 0;
81 unsigned char keyno) = 0;
92 unsigned char keyno,
unsigned char unlockkeyno,
93 unsigned char unlockkeyversion) = 0;
The base commands class for all card commands.
Definition: commands.hpp:21
Definition: samcommands.hpp:61
virtual void selectApplication(ByteVector aid)=0
virtual ByteVector encipherData(ByteVector data, bool islastdata)=0
virtual void loadInitVector(ByteVector iv)=0
virtual void changeKeyEntry(unsigned char keyno, std::shared_ptr< SAMKeyEntry< T, S > > keyentry, std::shared_ptr< DESFireKey > key)=0
virtual std::string getSAMTypeFromSAM()=0
virtual ByteVector dumpSessionKey()=0
virtual void disableKeyEntry(unsigned char keyno)=0
virtual void changeKUCEntry(unsigned char keyno, std::shared_ptr< SAMKucEntry > keyentry, std::shared_ptr< DESFireKey > key)=0
virtual std::shared_ptr< SAMKeyEntry< T, S > > getKeyEntry(unsigned char keyno)=0
SAMCommands()
Definition: samcommands.hpp:63
SAMCommands(std::string ct)
Definition: samcommands.hpp:67
virtual ByteVector transmit(ByteVector cmd, bool first=true, bool last=true)=0
virtual ByteVector decipherData(ByteVector data, bool islastdata)=0
virtual SAMVersion getVersion()=0
virtual void authenticateHost(std::shared_ptr< DESFireKey > key, unsigned char keyno)=0
virtual std::shared_ptr< SAMKucEntry > getKUCEntry(unsigned char keyno)=0
virtual void lockUnlock(std::shared_ptr< DESFireKey > masterKey, SAMLockUnlock state, unsigned char keyno, unsigned char unlockkeyno, unsigned char unlockkeyversion)=0
virtual ByteVector changeKeyPICC(const ChangeKeyInfo &info, const ChangeKeyDiversification &diversifycation)=0
A SAMKeyEntry class.
Definition: samkeyentry.hpp:90
std::vector< uint8_t > ByteVector
Definition: lla_fwd.hpp:80
struct logicalaccess::s_SAMVersionInformation SAMVersionInformation
struct logicalaccess::s_SAMManufactureInformation SAMManufactureInformation
SAMLockUnlock
Definition: samcommands.hpp:49
@ Unlock
Definition: samcommands.hpp:50
@ LockWithoutSpecifyingKey
Definition: samcommands.hpp:51
@ SwitchAV2Mode
Definition: samcommands.hpp:53
@ LockWithSpecifyingKey
Definition: samcommands.hpp:52
struct logicalaccess::s_SAMVersion SAMVersion
#define CMD_SAM
Definition: samcommands.hpp:17
Definition: samcommands.hpp:42
SAMVersionInformation software
Definition: samcommands.hpp:44
SAMManufactureInformation manufacture
Definition: samcommands.hpp:45
SAMVersionInformation hardware
Definition: samcommands.hpp:43
Definition: sambasickeyentry.hpp:61
Definition: sambasickeyentry.hpp:48