Yubikey defines and enforces 4 (NEO) or 24 (YubiKey YK4, YubiKey YK5)
slots with special, fixed names.
Add a dropdown box if "fixed_ids" are present and let the user select
the slot during key generation.
When XCA started in 2002, there were no C++ initializers.
Drop explicit initializers from the constructors.
- Fix indentations of section declarators.
- Replace NULL by nullptr when feasible.
- Sort private section: properties first, then methods.
Change pkcs11List from QListWidget to QListView
The pkcs11_lib_list holds the data of the loaded libraries.
For the model a QList "model_data" is used to
hold indexes into QList dirs to allow duplicates,
moves and removes.
On windows it now displays the paths with \ separators.
New classes:
- database_model: Manage the database tables (keys, req, cert, crl, templ)
extracted from widgets/MW_database.cpp
- arguments: parse commandline, dynamically create help text
With this commit PKCS#11 libraries may be reordered
and enabled or disabled.
The slot selection dialog iterates over all enabled and successfully
loaded libraries in the configured order and collects the slots
of each of them.
In the options dialog the library info is shown in the tool-tip
On startup use "/dev/random" and "/dev/hwrng"
as additional entropy for the OpenSSL random pool.
Collect mouse position and key press time entropy
for seeding the openssl random pool before generating keys.
When using Smartcards, use the Smartcard RNG
as additional entropy source.
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.
the sole use of the engine was signing.
But on the other hand it had to be compiled for all platforms
and it prevented the use of multiple PKCS#11 libs.
- use token.label to identify the slot
- show min and max PIN lengths when changing USER and SO PIN
- sanitize token strings like label
- pad token strings correctly with ' ' 0x20
- reenable "Init Security token"
- add tokenInfo.model to the card information, revamp tokenInfo
- add driverInfo()
- use token_info.label (card_label) as token descriptor for reading passwords
- use only CKA_LABEL as internal name
- 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
- if PublicKey or Cert CKA_LABEL fails, try CKA_SUBJECT
- don't use CKA_VALUE attribute on PUBLIC_KEY,
because not everyone supports it.
While being at it, add code for DSA and EC Cards.
- load PKCS#11 engine only after database open.
- avoid reloading the DLL on windows, because it is not supported.
Windows users need to restart XCA after changing the PKCS#11 path
- fix getSlotList() and return a QList<unsigned long>
- fixes to not crash if Smart card support is missing
- select correct list of hash algos by
reading PKCS11 mechanisms per slot and save them among with
the card in the db
- remove debugging code
- allow to configure the path to the PKCS#11 library
- copy pkcs11 header-file into XCA lib
- add support to store a certificate on the card
(did not work with my TCOS card, but in theory....)
- init PIN via PUK
- be more robust regarding card changes
- improve PIN handling