MscTokenConnection.h [plain text]
#ifndef _MSCTOKENCONNECTION_H_
#define _MSCTOKENCONNECTION_H_
#include <PCSC/musclecard.h>
#include <security_utilities/utilities.h>
#include <map>
#include <set>
#include "MscWrappers.h"
class MscTokenConnection : public Security::PodWrapper<MscTokenConnection, MSCTokenConnection>
{
public:
MscTokenConnection() { memset(this, 0, sizeof(*this)); }
MscTokenConnection(const MSCTokenInfo &rTokenInfo);
MscTokenConnection(const MSCTokenConnection &rTokenConnection);
MscTokenConnection &operator = (const MSCTokenConnection &rTokenInfo);
MSCULong32 context() const { return hContext; } const MSCTokenInfo& tinfo() const { return tokenInfo; } const MSCTokenInfo& info() const { return mLocalTokenInfo; }
const MSCUChar8 *mac() const { return pMac; } MSCULong32 macsize() const { return macSize; }
void connect(const char *applicationName=NULL,MSCULong32 sharingMode=MSC_SHARE_SHARED);
void release(MSCULong32 endAction=SCARD_LEAVE_CARD);
void beginTransaction();
void endTransaction(MSCULong32 endAction=SCARD_LEAVE_CARD);
void logoutAll();
void verifyPIN(MSCUChar8 pinNum,std::string pin);
unsigned int listPins();
void selectAID(std::string aid);
void selectAID(const char *aidValue, MSCULong32 aidSize);
void writeFramework(const MSCInitTokenParams& initParams);
void getKeyAttributes(MSCUChar8 keyNumber,MSCKeyInfo& keyInfo);
void getObjectAttributes(std::string objectID,MSCObjectInfo& objectInfo);
void getStatus(MSCStatusInfo& statusInfo);
bool tokenWasReset();
bool clearReset();
bool moved();
bool changed();
bool known();
MSCULong32 getCapabilities(MSCULong32 Tag);
void extendedFeature(MSCULong32 extFeature,MSCPUChar8 outData,MSCULong32 outLength,
MSCPUChar8 inData, MSCPULong32 inLength);
void generateKeys(MSCUChar8 prvKeyNum,MSCUChar8 pubKeyNum, MSCGenKeyParams& params);
void getChallenge(const char *seed,size_t seedSize,const char *randomData,size_t randomDataSize);
protected:
MSCTokenInfo mLocalTokenInfo;
};
#if 0
typedef struct
{
MSCLong32 hContext;
MSCLong32 hCard;
LPSCARD_IO_REQUEST ioType;
MSCPVoid32 tokenLibHandle;
CFDyLibPointers libPointers;
MSCTokenInfo tokenInfo;
MSCUChar8 loggedIDs;
MSCULong32 shareMode;
LPRWEventCallback rwCallback;
}
MSCTokenConnection, *MSCLPTokenConnection;
#endif
#endif