The API changed heavily. New functions arrived, old functions
disappeared and many structures became opaque.
This version of the patch implements pkcs11 signing as follows:
- openssl < 1.0.0: rsa & dsa without engine
- openssl 1.0.x: rsa, dsa & ec with engine
- openssl >= 1.1.0: rsa, dsa & ec without engine
In the operation, we therefore also gain implementation of dsa signing for openssl < 1.0.0 (ec disabled because EC_KEY_METHOD was not yet invented!).
I've given up trying to use a PKEY_ENGINE with openssl 1.1: seems not possible anymore.
I've succeeded compiling the patched xca with openssl 0.9.8n, 1.0.2j and 1.1.0e.
I've successfully tested pkcs11 signing using softhsm with openssl 1.0.2j and 1.1.0e.
The patch also removes gcc7 new warnings.
Even on W32 platform the fileseparator in paths sometimes is "/".
Solution: Always convert all \ to / and only recognize / as separator
also fixes 22e3975e7e better
Since OpenSC is not part of XCA anymore, set the default
PKCS#11 lib on windows to C:\WINDOWS\system32\opensc-pkcs11.dll
Also disable Token menu after closing a database.
change storage type of passwords from char[] to QByteArray
Create PwDialog class and drop passWrite and passRead
Create Passwd class derived from QBytearray
move PKCS12 password input to PwDialog
- Only once set notBefore to "now" when creating Cert-renewal
or NewCert dialog.
- Apply-time button now always uses the current value from notBefore
and adds the time-span without resetting notBefore
- Checking "midnight" now immediately modifies the dates.
Unchecking "midnight" now recovers the old value
- The seconds are always set to 00, since they can't be set via
the DateTime dialog anyway
- CRL generation now too allows to use midnight and time ranges
and uses GENERALIZED time if the date is out of range for UTCTIME
(same logic as for certificates)
- replace occurances of "Smart Card" by "Token"
- Support for creating keys on a token
- Store existing keys on a token
- delete keys and certs from a token
- update docs
Synopsis: When using special chars in the DN entries
they sometimes got corrupted.
- the toUtf8() method returned a temporary QByteArray
and the pointer to its memory became invalid befor using it.
- also checked other invalid uses of temporary QByteArray objects