Print digest of public keys in the key details in different formats:
Print SHA256 SSH digest as used to by SSH users:
ssh-keygen -l -f ~/.ssh/id_rsa.pub
Print SHA1 X509 key digest as shown in the
Subject key identifier of a certificate
Print SHA256 digest as in:
openssl pkey -pubout -outform DER < key.pem | sha256sum
as requested by this issue.
Refactored digesting functionality by a generic Digest()
function working with QByteArrays.
The function formatHash() now also expects a QByteArray input.
A "hostId" determines the current host and is appended to
the "workingdir", "pkcs11path" and "mw_geometry" settings
in the database. This allows opening the database
on different hosts without wrong workingdir or not
loadable PKCS#11 libraries
On Windows XCA goes in portable mode if no XCA registry entry is found.
On Mac and Unix it checks the XCA_PORTABLE environment to be non-empty.
In portable mode:
- The current working directory is not written to the database
- The configured language and history of opened databases is
forgotten after a restart of XCA
- No registry entry is required nor written.
- No unexpected files are written to disk, except exported items.
- Portable mode is displayed in the "About" dialog
If setup.exe or "make install" are not used,
- XCA is not assigned as app for any file types
Add settings class to access the settings table in the database
Cache values and improve database writes.
Options dialog simplified
Replace getSetting / storeSetting
Unpack option flags to rows in the settings
Depending on the OpenSSL version some OIDs are known, some are not.
When reading "oids.txt" file and adding the new OID definitions:
- Silently skip definitions that are 100% identical to the OpenSSL values.
- Give a hint to change identifiers that are used for a different OID
- Give a hint about definitions that differ to remove them from the file.
Also accept them as Alias when reading dn.txt and eku.txt
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
This patchset adds:
- configure.mac now looks for qmake, backs up xcode project, uses xca.pro to generate a new one, generates a different local.h
- mac-package.sh generates a standalone .app bundle for distribution using deployqt from trolltech labs, packages up manual, COPYRIGHT, etc into a .dmg
- mac packaging niceties in the qmake project
- mac icon file
- usability fixes for OS X:
- look for user configured oids and such in ~/Library/Preferences/xca if it exists
- look for original ones in app bundle/Contents/Resources (it tried to do this before...)
- more robust code for getting bundle location (less likely to be broken by Apple in OS revisions)
- start browsing for files in ~/Documents
- fix wildcards on mac so files without extensions will be opened
- fix save behavior for .xdb files so that it's hard to get one that doesn't end in .xdb, as this causes difficulty w/Qt
Notes:
- one of the compilation fixes was in the new revocation data function that replaced the old macros... I didn't have time to verify that my fix doesn't break when used with 0.9.8.
- QStringToAsn1() is clearly incorrect but I haven't yet determined what callers expect, so I just called it out in a comment and did not yet fix it
- I added some code that I haven't tested on Windows because I thought it might be a nice function to have there too. I have not added anything to call that function, however, since I don't currently have a machine I can test on :). The code is clearly marked in comments.
- remove extension and attribute tab in details dialog if
no extensions or attributes available
- documentation updated
X509 request attributes (like challange password) can be set and viewed.