mirror of
https://github.com/chris2511/xca.git
synced 2026-09-12 19:51:05 +05:00
Refuse signing with ECC token as long as it does not work
This commit is contained in:
parent
baa45e7f62
commit
ea832c6654
@ -40,12 +40,16 @@ pkcs11_lib::pkcs11_lib(QString f)
|
||||
goto how_bad;
|
||||
|
||||
rv = p11->C_Initialize(NULL);
|
||||
ign_openssl_error();
|
||||
if (rv != CKR_OK && rv != CKR_CRYPTOKI_ALREADY_INITIALIZED)
|
||||
pk11error("C_Initialize", rv);
|
||||
|
||||
ign_openssl_error();
|
||||
return;
|
||||
|
||||
how_bad:
|
||||
if (dl_handle)
|
||||
lt_dlclose(dl_handle);
|
||||
lt_dlexit();
|
||||
throw errorEx(QObject::tr("Failed to open PKCS11 library: %1").
|
||||
arg(file));
|
||||
|
||||
@ -83,7 +83,7 @@ QString pki_key::length()
|
||||
return QString("%1 bit").arg(EVP_PKEY_bits(key));
|
||||
}
|
||||
|
||||
QString pki_key::getTypeString()
|
||||
QString pki_key::getTypeString() const
|
||||
{
|
||||
QString type;
|
||||
switch (EVP_PKEY_type(key->type)) {
|
||||
|
||||
@ -51,7 +51,7 @@ class pki_key: public pki_base
|
||||
return NULL;
|
||||
}
|
||||
virtual bool isToken();
|
||||
virtual QString getTypeString(void);
|
||||
virtual QString getTypeString(void) const;
|
||||
virtual QString getIntNameWithType(void);
|
||||
virtual QList<int> possibleHashNids()
|
||||
{
|
||||
|
||||
@ -585,7 +585,7 @@ bool pki_scard::isPubKey() const
|
||||
return false;
|
||||
}
|
||||
|
||||
QString pki_scard::getTypeString(void)
|
||||
QString pki_scard::getTypeString(void) const
|
||||
{
|
||||
return tr("Token %1").arg(pki_key::getTypeString());
|
||||
}
|
||||
@ -613,9 +613,10 @@ EVP_PKEY *pki_scard::decryptKey() const
|
||||
}
|
||||
EVP_PKEY *pkey = p11->getPrivateKey(key, priv_objects[0]);
|
||||
|
||||
if (!pkey)
|
||||
if (!pkey) {
|
||||
delete p11;
|
||||
|
||||
throw errorEx(tr("Failed to initialize the key on the token"));
|
||||
}
|
||||
pki_openssl_error();
|
||||
return pkey;
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ class pki_scard: public pki_key
|
||||
void fromData(const unsigned char *p, db_header_t *head);
|
||||
QByteArray toData();
|
||||
bool isPubKey() const;
|
||||
QString getTypeString(void);
|
||||
QString getTypeString(void) const;
|
||||
QString getManufacturer() const
|
||||
{
|
||||
return card_manufacturer;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user