7#ifndef LOGICALACCESS_YUBIKEYDATATRANSPORT_HPP
8#define LOGICALACCESS_YUBIKEYDATATRANSPORT_HPP
16#define RESP_TIMEOUT_WAIT_MASK 0x1f
17#define RESP_TIMEOUT_WAIT_FLAG 0x20
18#define RESP_PENDING_FLAG 0x40
19#define SLOT_WRITE_FLAG 0x80
20#define DUMMY_REPORT_WRITE 0x8f
21#define YK_FLAG_MAYBLOCK 0x01 << 16
22#define YK_CRC_OK_RESIDUAL 0xf0b8
23#define SLOT_DATA_SIZE 64
24#define WAIT_FOR_WRITE_FLAG 1150
31 unsigned char filler[3];
54 void send(
const std::vector<unsigned char> &data)
override;
61 std::vector<unsigned char> receive(
long int timeout = 5000)
override;
63 std::vector<unsigned char> receive(
size_t readlen,
long int timeout);
65 void yk_force_key_update();
67 std::vector<unsigned char> yk_wait_for_key_status(uint8_t slot,
unsigned int flags,
68 unsigned int max_time_ms,
69 bool logic_and,
unsigned char mask);
71 uint16_t yk_crc16(
const std::vector<unsigned char>& data)
const;
73 uint16_t yk_endian_swap_16(uint16_t x)
const;
An LibUSB data transport class.
Definition: libusbdatatransport.hpp:25
An Yubikey data transport class.
Definition: yubikeydatatransport.hpp:38
LibUSB transport for reader/card commands.
Definition: yubikeydatatransport.hpp:27
unsigned char slot
Definition: yubikeydatatransport.hpp:29
unsigned short crc
Definition: yubikeydatatransport.hpp:30
#define SLOT_DATA_SIZE
Definition: yubikeydatatransport.hpp:23