much more debug, back to initial handling; refs #169

This commit is contained in:
Marc Wäckerlin
2013-04-18 14:19:15 +00:00
parent 86bdcc8c75
commit 25d01618f6
7 changed files with 62 additions and 48 deletions

View File

@@ -118,40 +118,24 @@ class CryptokiEngine: public QObject, public openssl::Engine {
return "CryptokiEngine_NAME";
}
virtual std::string rsaSign(const std::string& in, unsigned int type) {
virtual std::string rsaSign(const std::string& in, unsigned int type) try {
TRC; LOG<<"log; type="<<type<<"; size="<<in.size();
LOG<<crypto::readable(in).c_str();
std::string data;
switch( type ) {
case NID_sha1:
data += QString(QByteArray::fromHex("3021300906052b0e03021a05000414")).toStdString();
break;
case NID_sha224:
data += QString(QByteArray::fromHex("302d300d06096086480165030402040500041c")).toStdString();
break;
case NID_sha256:
data += QString(QByteArray::fromHex("3031300d060960864801650304020105000420")).toStdString();
break;
case NID_sha384:
data += QString(QByteArray::fromHex("3041300d060960864801650304020205000430")).toStdString();
break;
case NID_sha512:
data += QString(QByteArray::fromHex("3051300d060960864801650304020305000440")).toStdString();
break;
default: break;
}
// see ticket #169
// if (type != NID_md5_sha1) throw std::runtime_error("wrong sign type");
// if (in.size() != 36) throw std::runtime_error("wrong msg size to sign");
if (type != NID_md5_sha1) throw std::runtime_error("wrong sign type");
if (in.size() != 36) throw std::runtime_error("wrong msg size to sign");
LOG<<"ready to sign";
try {
return _privateKey->sign(data+in, CKM_RSA_PKCS);
return _privateKey->sign(in, CKM_RSA_PKCS);
} catch (const std::exception& x) {
LOG<<"signature failed";
LOG<<"signature failed, reason: "<<x.what();
certRequired(); // get new certificate
return _privateKey->sign(data+in, CKM_RSA_PKCS); // try again
return _privateKey->sign(in, CKM_RSA_PKCS); // try again
}
} catch (const std::exception& x) {
TRC; LOG<<"rsaSign failed, reason: "<<x.what();
throw;
}
private: