added -lcrypto to examples; refs #10
This commit is contained in:
@@ -25,7 +25,7 @@ LDFLAGS += -lpcsclite
|
||||
endif
|
||||
endif
|
||||
if !MINGW32
|
||||
LDFLAGS += -ldl -lpthread -lssl
|
||||
LDFLAGS += -ldl -lpthread -lssl -lcrypto
|
||||
endif
|
||||
|
||||
pcsc_demo_SOURCES = pcsc-demo.cxx
|
||||
|
@@ -1,7 +1,8 @@
|
||||
touch iostream && \
|
||||
./bootstrap.sh && \
|
||||
LDFLAGS="-L/usr/lib32 -L/usr/local/lib32 -m32" \
|
||||
CXXFLAGS="-m32" \
|
||||
CPPFLAGS="-DCRYPTOKI_LOG\(X\)='std::clog<<X<<"'"@"'"<<__PRETTY_FUNCTION__<<std::endl'" \
|
||||
CPPFLAGS="-include iostream -DCRYPTOKI_LOG\(X\)='std::clog<<"'"CRYPTOKI_"'"<<X<<"'"_@_"'"<<__PRETTY_FUNCTION__<<std::endl' -DPCSC_LOG\(X\)='std::clog<<"'"PCSC_"'"<<X<<"'"_@_"'"<<__PRETTY_FUNCTION__<<std::endl' -DOPENSSL_LOG\(X\)='std::clog<<"'"OPENSSL_"'"<<X<<"'"_@_"'"<<__PRETTY_FUNCTION__<<std::endl'" \
|
||||
./configure \
|
||||
--libdir=/usr/local/lib32 \
|
||||
--build=x86_64 \
|
||||
@@ -18,6 +19,9 @@ LDFLAGS="-L/opt/local/i586-mingw32msvc/lib" \
|
||||
make && \
|
||||
sudo make install && \
|
||||
make clean && \
|
||||
CPPFLAGS="-include iostream -DCRYPTOKI_LOG\(X\)='std::clog<<"'"CRYPTOKI_"'"<<X<<"'"_@_"'"<<__PRETTY_FUNCTION__<<std::endl' -DPCSC_LOG\(X\)='std::clog<<"'"PCSC_"'"<<X<<"'"_@_"'"<<__PRETTY_FUNCTION__<<std::endl' -DOPENSSL_LOG\(X\)='std::clog<<"'"OPENSSL_"'"<<X<<"'"_@_"'"<<__PRETTY_FUNCTION__<<std::endl'" \
|
||||
./configure && \
|
||||
make check && \
|
||||
sudo make install
|
||||
sudo make install && \
|
||||
rm iostream
|
||||
|
||||
|
@@ -203,16 +203,22 @@ namespace cryptoki {
|
||||
CRYPTOKI_LOG("log");
|
||||
SlotList res;
|
||||
CK_ULONG count(0);
|
||||
std::cout<<"CALL: C_GetSlotList"<<std::endl;
|
||||
//! calls @c C_GetSlotList
|
||||
check(_fn->C_GetSlotList(tokenPresent?TRUE:FALSE, 0, &count),
|
||||
CRYPTOKI_FN_LOG("C_GetSlotList"));
|
||||
std::cout<<"C_GetSlotList returns "<<count<<" slots"<<std::endl;
|
||||
if (!count || !*this) return res;
|
||||
CK_SLOT_ID* slots = 0;
|
||||
try {
|
||||
do {
|
||||
delete[] slots;
|
||||
slots = new CK_SLOT_ID[count];
|
||||
std::cout<<"CALL: C_GetSlotList to get IDs"<<std::endl;
|
||||
_res = _fn->C_GetSlotList(tokenPresent?TRUE:FALSE, slots, &count);
|
||||
std::cout<<"C_GetSlotList returns "<<count<<" slots"<<std::endl;
|
||||
if (_res==CKR_BUFFER_TOO_SMALL)
|
||||
std::cout<<"Buffer too small - repeat"<<std::endl;
|
||||
} while (_res==CKR_BUFFER_TOO_SMALL);
|
||||
check(_res, CRYPTOKI_FN_LOG("C_GetSlotList"));
|
||||
if (!*this) return res;
|
||||
@@ -294,7 +300,6 @@ namespace cryptoki {
|
||||
attrs.push_back(Attribute(CKA_ISSUER, cert.issuerDER()));
|
||||
attrs.push_back(Attribute(CKA_SERIAL_NUMBER, cert.serial()));
|
||||
attrs.push_back(Attribute(CKA_VALUE, cert.valueDER()));
|
||||
CRYPTOKI_LOG("create: serial = "<<crypto::hex(cert.serial()));
|
||||
return create(attrs);
|
||||
}
|
||||
|
||||
@@ -340,6 +345,19 @@ namespace cryptoki {
|
||||
return create(attrs);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
Object Session::create(const std::string& application,
|
||||
const std::string& label,
|
||||
const std::string& data) {
|
||||
AttributeList attrs;
|
||||
attrs.push_back(Attribute(CKA_CLASS).from<CK_OBJECT_CLASS>(CKO_DATA));
|
||||
attrs.push_back(Attribute(CKA_TOKEN).from<CK_BBOOL>(TRUE));
|
||||
attrs.push_back(Attribute(CKA_APPLICATION, application));
|
||||
attrs.push_back(Attribute(CKA_LABEL, label));
|
||||
attrs.push_back(Attribute(CKA_VALUE, data));
|
||||
return create(attrs);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
Object Session::create(const AttributeList& attrs) {
|
||||
CRYPTOKI_LOG("log");
|
||||
|
@@ -976,6 +976,9 @@ namespace cryptoki {
|
||||
//! Create a new PrivateKey Object.
|
||||
Object create(const std::string& label, const openssl::PrivateKey& key,
|
||||
const openssl::X509& cert);
|
||||
//!
|
||||
Object create(const std::string& application, const std::string& label,
|
||||
const std::string& data);
|
||||
|
||||
//@}
|
||||
|
||||
|
@@ -239,7 +239,7 @@ namespace pcsc {
|
||||
Status status() {
|
||||
DWORD dummy(0);
|
||||
DWORD s;
|
||||
DWORD len(MAX_ATR_SIZE);
|
||||
DWORD len(10*(MAX_ATR_SIZE+33)); // 33 is default on Linux
|
||||
unsigned char a[len];
|
||||
check(SCardStatus(_id, 0, &dummy, &s, &_protocol, a, &len),
|
||||
"query smartcard status");
|
||||
|
Reference in New Issue
Block a user