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

An Yubikey data transport class. More...

#include <yubikeydatatransport.hpp>

Inheritance diagram for logicalaccess::YubikeyDataTransport:
logicalaccess::LibUSBDataTransport logicalaccess::DataTransport logicalaccess::XmlSerializable

Public Member Functions

 YubikeyDataTransport ()
 Constructor.
 
virtual ~YubikeyDataTransport ()
 Destructor.
 
void send (const std::vector< unsigned char > &data) override
 Send the data using rpleth protocol computation.
 
std::vector< unsigned char > receive (long int timeout=5000) override
 Receive data from reader.
 
std::vector< unsigned char > receive (size_t readlen, long int timeout)
 
void yk_force_key_update ()
 
std::vector< unsigned char > yk_wait_for_key_status (uint8_t slot, unsigned int flags, unsigned int max_time_ms, bool logic_and, unsigned char mask)
 
uint16_t yk_crc16 (const std::vector< unsigned char > &data) const
 
uint16_t yk_endian_swap_16 (uint16_t x) const
 
- Public Member Functions inherited from logicalaccess::LibUSBDataTransport
 LibUSBDataTransport ()
 Constructor.
 
virtual ~LibUSBDataTransport ()
 Destructor.
 
std::string getTransportType () const override
 Get the transport type of this instance.
 
std::string getDefaultXmlNodeName () const override
 Get the default Xml Node name for this object.
 
void serialize (boost::property_tree::ptree &parentNode) override
 Serialize object to Xml Node.
 
void unSerialize (boost::property_tree::ptree &node) override
 UnSerialize object from a Xml Node.
 
bool connect () override
 Connect to the transport layer.
 
void disconnect () override
 Disconnect from the transport layer.
 
bool isConnected () override
 
std::shared_ptr< LibUSBReaderUnitgetLibUSBReaderUnit () const
 Get the LibUSB reader unit.
 
std::string getName () const override
 Get the data transport endpoint name.
 
virtual void send (const std::vector< unsigned char > &data) override
 Send the data using rpleth protocol computation.
 
virtual std::vector< unsigned char > receive (long int timeout=5000) override
 Receive data from reader.
 
std::vector< unsigned char > sendCommand (const std::vector< unsigned char > &command, long int timeout=2000) override
 Send a command to the reader.
 
void usb_write (const std::vector< unsigned char > &data, int report_type, int report_number)
 
std::vector< unsigned char > usb_read (int report_type, int report_number, int readlen, int timeout=1000)
 
void CheckLibUSBError (int errorFlag)
 
- Public Member Functions inherited from logicalaccess::DataTransport
virtual ~DataTransport ()=default
 
virtual std::shared_ptr< ReaderUnitgetReaderUnit () const
 Get the reader unit.
 
virtual void setReaderUnit (std::weak_ptr< ReaderUnit > unit)
 Set the reader unit.
 
virtual std::string getTransportType () const =0
 Get the transport type of this instance.
 
virtual bool connect ()=0
 Connect to the transport layer.
 
virtual void disconnect ()=0
 Disconnect from the transport layer.
 
virtual bool isConnected ()=0
 
virtual std::string getName () const =0
 Get the data transport endpoint name.
 
virtual ByteVector sendCommand (const ByteVector &command, long int timeout=-1)
 Send a command to the reader.
 
virtual ByteVector getLastCommand ()
 Get the last command.
 
virtual ByteVector getLastResult ()
 Get the last command result.
 
- Public Member Functions inherited from logicalaccess::XmlSerializable
virtual ~XmlSerializable ()=default
 
virtual std::string serialize ()
 Serialize object to Xml Node string.
 
virtual std::string serializeWithHeaders ()
 Serialize object to Xml Node string, with xml headers.
 
virtual void serialize (boost::property_tree::ptree &parentNode)=0
 Serialize object to Xml Node.
 
virtual void serializeToFile (const std::string &filename)
 Serialize object to a Xml file.
 
virtual void unSerialize (boost::property_tree::ptree &node)=0
 UnSerialize object from a Xml Node.
 
virtual void unSerialize (const std::string &xmlstring, const std::string &rootNode)
 UnSerialize object from a Xml Node string.
 
virtual void unSerialize (std::istream &is, const std::string &rootNode)
 UnSerialize object from a Xml node.
 
virtual void unSerialize (boost::property_tree::ptree &node, const std::string &rootNode)
 UnSerialize object from a Xml node.
 
virtual void unSerializeFromFile (const std::string &filename)
 UnSerialize object from a Xml file.
 
virtual std::string getDefaultXmlNodeName () const =0
 Get the default Xml Node name for this object.
 

Additional Inherited Members

- Static Public Member Functions inherited from logicalaccess::XmlSerializable
static std::string removeXmlDeclaration (const std::string &xmlstring)
 Remove Xml declaration from a xml string.
 
static ByteVector formatHexString (std::string hexstr)
 Format hex string to hex string with space.
 
- Protected Member Functions inherited from logicalaccess::DataTransport
virtual void send (const ByteVector &data)=0
 
virtual ByteVector receive (long int timeout)=0
 
- Static Protected Member Functions inherited from logicalaccess::XmlSerializable
static unsigned long long atoull (const std::string &str)
 
- Protected Attributes inherited from logicalaccess::LibUSBDataTransport
bool d_isConnected
 
- Protected Attributes inherited from logicalaccess::DataTransport
std::weak_ptr< ReaderUnitd_ReaderUnit
 The reader unit.
 
ByteVector d_lastResult
 The last result.
 
ByteVector d_lastCommand
 The last command.
 

Detailed Description

An Yubikey data transport class.

Constructor & Destructor Documentation

◆ YubikeyDataTransport()

logicalaccess::YubikeyDataTransport::YubikeyDataTransport ( )

Constructor.

◆ ~YubikeyDataTransport()

logicalaccess::YubikeyDataTransport::~YubikeyDataTransport ( )
virtual

Destructor.

Member Function Documentation

◆ receive() [1/2]

std::vector< unsigned char > logicalaccess::YubikeyDataTransport::receive ( long int  timeout = 5000)
overridevirtual

Receive data from reader.

Parameters
timeoutThe time to wait data.
Returns
The data from reader.

Reimplemented from logicalaccess::LibUSBDataTransport.

◆ receive() [2/2]

std::vector< unsigned char > logicalaccess::YubikeyDataTransport::receive ( size_t  readlen,
long int  timeout 
)

◆ send()

void logicalaccess::YubikeyDataTransport::send ( const std::vector< unsigned char > &  data)
overridevirtual

Send the data using rpleth protocol computation.

Parameters
dataThe data to send.

Reimplemented from logicalaccess::LibUSBDataTransport.

◆ yk_crc16()

uint16_t logicalaccess::YubikeyDataTransport::yk_crc16 ( const std::vector< unsigned char > &  data) const

◆ yk_endian_swap_16()

uint16_t logicalaccess::YubikeyDataTransport::yk_endian_swap_16 ( uint16_t  x) const

◆ yk_force_key_update()

void logicalaccess::YubikeyDataTransport::yk_force_key_update ( )

◆ yk_wait_for_key_status()

std::vector< unsigned char > logicalaccess::YubikeyDataTransport::yk_wait_for_key_status ( uint8_t  slot,
unsigned int  flags,
unsigned int  max_time_ms,
bool  logic_and,
unsigned char  mask 
)

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