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

OSDP Secure Channel class. More...

#include <osdpsecurechannel.hpp>

Public Member Functions

 OSDPSecureChannel (ByteVector uid, ByteVector PDChallenge, ByteVector PDCryptogram, ByteVector CPChallenge)
 
 OSDPSecureChannel ()
 
 ~OSDPSecureChannel ()
 
void deriveKey (std::shared_ptr< AES128Key > scbkkey, std::shared_ptr< AES128Key > scbkdkey)
 
void computeAuthenticationData ()
 
void verifyMAC (ByteVector data)
 
ByteVector computeMAC (ByteVector data, openssl::AESInitializationVector iv) const
 
ByteVector computePacketMAC (ByteVector data)
 
ByteVector encryptData (ByteVector data, ByteVector iv) const
 
ByteVector decryptData (ByteVector data, ByteVector iv) const
 
ByteVectorgetUID ()
 
ByteVectorgetPDChallenge ()
 
ByteVectorgetPDCryptogram ()
 
ByteVectorgetCPChallenge ()
 
ByteVectorgetCPCryptogram ()
 
ByteVectorgetSMAC1 ()
 
void setSMAC1 (ByteVector smac1)
 
ByteVectorgetSMAC2 ()
 
void setSMAC2 (ByteVector smac2)
 
ByteVectorgetSENC ()
 
void setSENC (ByteVector senc)
 
ByteVectorgetRMAC ()
 
void setRMAC (ByteVector rmac)
 
ByteVectorgetCMAC ()
 
void setCMAC (ByteVector cmac)
 

Public Attributes

bool isSCBK_D
 

Private Attributes

ByteVector m_uid
 
ByteVector m_PDChallenge
 
ByteVector m_PDCryptogram
 
ByteVector m_CPChallenge
 
ByteVector m_CPCryptogram
 
ByteVector m_smac1
 
ByteVector m_smac2
 
ByteVector m_senc
 
ByteVector m_rmac
 
ByteVector m_cmac
 

Detailed Description

OSDP Secure Channel class.

Constructor & Destructor Documentation

◆ OSDPSecureChannel() [1/2]

logicalaccess::OSDPSecureChannel::OSDPSecureChannel ( ByteVector  uid,
ByteVector  PDChallenge,
ByteVector  PDCryptogram,
ByteVector  CPChallenge 
)
inline

◆ OSDPSecureChannel() [2/2]

logicalaccess::OSDPSecureChannel::OSDPSecureChannel ( )
inline

◆ ~OSDPSecureChannel()

logicalaccess::OSDPSecureChannel::~OSDPSecureChannel ( )
inline

Member Function Documentation

◆ computeAuthenticationData()

void logicalaccess::OSDPSecureChannel::computeAuthenticationData ( )

◆ computeMAC()

ByteVector logicalaccess::OSDPSecureChannel::computeMAC ( ByteVector  data,
openssl::AESInitializationVector  iv 
) const

◆ computePacketMAC()

ByteVector logicalaccess::OSDPSecureChannel::computePacketMAC ( ByteVector  data)

◆ decryptData()

ByteVector logicalaccess::OSDPSecureChannel::decryptData ( ByteVector  data,
ByteVector  iv 
) const

◆ deriveKey()

void logicalaccess::OSDPSecureChannel::deriveKey ( std::shared_ptr< AES128Key scbkkey,
std::shared_ptr< AES128Key scbkdkey 
)

◆ encryptData()

ByteVector logicalaccess::OSDPSecureChannel::encryptData ( ByteVector  data,
ByteVector  iv 
) const

◆ getCMAC()

ByteVector & logicalaccess::OSDPSecureChannel::getCMAC ( )
inline

◆ getCPChallenge()

ByteVector & logicalaccess::OSDPSecureChannel::getCPChallenge ( )
inline

◆ getCPCryptogram()

ByteVector & logicalaccess::OSDPSecureChannel::getCPCryptogram ( )
inline

◆ getPDChallenge()

ByteVector & logicalaccess::OSDPSecureChannel::getPDChallenge ( )
inline

◆ getPDCryptogram()

ByteVector & logicalaccess::OSDPSecureChannel::getPDCryptogram ( )
inline

◆ getRMAC()

ByteVector & logicalaccess::OSDPSecureChannel::getRMAC ( )
inline

◆ getSENC()

ByteVector & logicalaccess::OSDPSecureChannel::getSENC ( )
inline

◆ getSMAC1()

ByteVector & logicalaccess::OSDPSecureChannel::getSMAC1 ( )
inline

◆ getSMAC2()

ByteVector & logicalaccess::OSDPSecureChannel::getSMAC2 ( )
inline

◆ getUID()

ByteVector & logicalaccess::OSDPSecureChannel::getUID ( )
inline

◆ setCMAC()

void logicalaccess::OSDPSecureChannel::setCMAC ( ByteVector  cmac)
inline

◆ setRMAC()

void logicalaccess::OSDPSecureChannel::setRMAC ( ByteVector  rmac)
inline

◆ setSENC()

void logicalaccess::OSDPSecureChannel::setSENC ( ByteVector  senc)
inline

◆ setSMAC1()

void logicalaccess::OSDPSecureChannel::setSMAC1 ( ByteVector  smac1)
inline

◆ setSMAC2()

void logicalaccess::OSDPSecureChannel::setSMAC2 ( ByteVector  smac2)
inline

◆ verifyMAC()

void logicalaccess::OSDPSecureChannel::verifyMAC ( ByteVector  data)

Member Data Documentation

◆ isSCBK_D

bool logicalaccess::OSDPSecureChannel::isSCBK_D

◆ m_cmac

ByteVector logicalaccess::OSDPSecureChannel::m_cmac
private

◆ m_CPChallenge

ByteVector logicalaccess::OSDPSecureChannel::m_CPChallenge
private

◆ m_CPCryptogram

ByteVector logicalaccess::OSDPSecureChannel::m_CPCryptogram
private

◆ m_PDChallenge

ByteVector logicalaccess::OSDPSecureChannel::m_PDChallenge
private

◆ m_PDCryptogram

ByteVector logicalaccess::OSDPSecureChannel::m_PDCryptogram
private

◆ m_rmac

ByteVector logicalaccess::OSDPSecureChannel::m_rmac
private

◆ m_senc

ByteVector logicalaccess::OSDPSecureChannel::m_senc
private

◆ m_smac1

ByteVector logicalaccess::OSDPSecureChannel::m_smac1
private

◆ m_smac2

ByteVector logicalaccess::OSDPSecureChannel::m_smac2
private

◆ m_uid

ByteVector logicalaccess::OSDPSecureChannel::m_uid
private

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