now secure channel enabled
This commit is contained in:
34
src/pcsc.hxx
34
src/pcsc.hxx
@@ -10,6 +10,25 @@
|
||||
#ifndef PCSC_HXX
|
||||
#define PCSC_HXX
|
||||
|
||||
#ifndef PCSC_LOG
|
||||
//! Declare PCSC_LOG before #include in your code, if you want logging.
|
||||
/*! PCSC_LOG passes its argument to a stream, so your definition must
|
||||
behave so that the argument can be streamed.
|
||||
|
||||
Example, use std::log:
|
||||
@code
|
||||
#define PCSC_LOG(x) std::clog<<x<<" ("<<__PRETTY_FUNCTION__<<')'<<std::endl
|
||||
#include <pcsc.hxx>
|
||||
@endcode
|
||||
|
||||
Example, use qDebug():
|
||||
@code
|
||||
#define PCSC_LOG(x) qDebug()<<x
|
||||
#include <pcsc.hxx>
|
||||
@endcode */
|
||||
#define PCSC_LOG(x) // if unset, do nothing
|
||||
#endif
|
||||
|
||||
#include <cryptaux.hxx>
|
||||
|
||||
#include <string>
|
||||
@@ -220,6 +239,19 @@ namespace pcsc {
|
||||
assert(claInsP1P2.size()==4);
|
||||
return transmit(claInsP1P2, lc, le);
|
||||
}
|
||||
|
||||
//! Transmit data to reader.
|
||||
/*! @note Take care: Stings may contain embedded @c 0. */
|
||||
std::string transmit(char cla, char ins, char p1, char p2,
|
||||
unsigned char le) {
|
||||
std::string claInsP1P2;
|
||||
claInsP1P2.push_back(cla);
|
||||
claInsP1P2.push_back(ins);
|
||||
claInsP1P2.push_back(p1);
|
||||
claInsP1P2.push_back(p2);
|
||||
assert(claInsP1P2.size()==4);
|
||||
return transmit(claInsP1P2, std::string(), le);
|
||||
}
|
||||
|
||||
//! Transmit data to reader.
|
||||
/*! @note Take care: Stings may contain embedded @c 0. */
|
||||
@@ -262,10 +294,12 @@ namespace pcsc {
|
||||
SCARD_IO_REQUEST rPci;
|
||||
rPci.dwProtocol = pci()->dwProtocol;
|
||||
rPci.cbPciLength = sizeof(rPci);
|
||||
PCSC_LOG("SCardTransmit: "<<crypto::hex(in));
|
||||
check(SCardTransmit(_id, &rPci,
|
||||
(unsigned char*)in.c_str(), in.size(),
|
||||
0, buff, &len),
|
||||
"smartcard transmit message "+crypto::hex(in));
|
||||
PCSC_LOG(" -> "<<crypto::hex(std::string((char*)buff, len)));
|
||||
return std::string((char*)buff, len);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user