bool Login(const std::string& pin) {
if (pin.empty()) return false; // no empty pin.
- Lock l(d_slot->m());
if (d_slot->Login(pin) == true) {
LoadAttributes();
}
bool LoggedIn() {
if (d_loaded == false && d_slot->LoggedIn() == true) {
- Lock l(d_slot->m());
LoadAttributes();
}
return d_slot->LoggedIn();
}
void LoadAttributes() {
+ Lock l(d_slot->m());
std::vector<P11KitAttribute> attr;
std::vector<CK_OBJECT_HANDLE> key;
attr.push_back(P11KitAttribute(CKA_CLASS, (unsigned long)CKO_PRIVATE_KEY));
}
int GenerateKeyPair(CK_MECHANISM_PTR mechanism, std::vector<P11KitAttribute>& pubAttributes, std::vector<P11KitAttribute>& privAttributes, CK_OBJECT_HANDLE_PTR pubKey, CK_OBJECT_HANDLE_PTR privKey) {
+ {
Lock l(d_slot->m());
size_t k;
logError("C_GenerateKeyPair");
delete [] pubAttr;
delete [] privAttr;
+ }
if (d_err == 0) LoadAttributes();