Commit Graph

1324 Commits

Author SHA1 Message Date
Christian Hohnstädt
6ea01e80f6 Refactor item export: separate GUI and database
Collect all export formats in pki_export.

Each export format has assigned acouple of flags, indicating,
whether they are text, concatenateable, encrypted, usable for
multiple selections or only for a single item.
2021-11-13 14:49:02 +01:00
Christian Hohnstaedt
f2fe9be3f3 Move file loading GUI element out of non-gui container class (db_*)
into GUI View widgets/*TreeView.cpp
2021-10-30 11:51:35 +02:00
Christian Hohnstaedt
6efba2bb3e pkcs7: Fix endless loop when loading PKCS#7 via PEM import 2021-10-30 11:51:35 +02:00
Christian Hohnstädt
be1a44d0a8 Consolidate export types and format in pki_export class
Move the descriptons from the ExportDialog into the
new pki_export class.

Also translate the exportType::etype to F_* flags
2021-10-30 11:51:35 +02:00
Christian Hohnstädt
8271a1a3e8 MacOS: Fix location of translations 2021-10-24 17:57:23 +02:00
Christian Hohnstädt
3e858c877f Merge remote-tracking branch 'github/master' into main 2021-10-24 14:56:38 +02:00
Christian Hohnstädt
13b0992780 Set Key export format separately via context menu
The popping up query dialog during PEM export via Drag&Drop
and Ctrl-C during Key export was pretty annoying.
2021-10-24 14:41:25 +02:00
Christian Hohnstädt
810b5509b1 pem_format(): Move private key cases to pki_evp
Support "exportType::PKCS8_encrypt"
2021-10-02 08:21:52 +02:00
Christian Hohnstaedt
c752508979 Separate XCA Warning in Cmdline and GUI 2021-09-09 21:46:30 +02:00
Christian Hohnstaedt
e9f36fc72b Move storeItems() from db_base to XcaTeeView 2021-09-09 21:30:06 +02:00
Christian Hohnstädt
56c6df6c90 editComment: Move Gui elements to widgets/XcaTreeView
Another step to separate GUI from functionality
2021-06-19 13:18:48 +02:00
Christian Hohnstädt
8c0a5adc3a
Merge pull request #288 from PF4Public/pf/replace
Replace certificate while renewing
2021-06-04 08:50:58 +02:00
pf
8af3cabfa8 Replace certificate while renewing it
This commit also changes the default state of
the "Revoke old certificate" checkbox to unchecked.
The reasoning for this is that by renewing a certificate
its lifetime and subsequently validity are prolonged,
which therefore implies equal trustworthiness
for both new and old certificates, which does not intend
the revocation of the latter.
2021-06-01 20:25:13 +03:00
Christian Hohnstaedt
8cdc15aa39 Move database_schema.cpp from widgets to lib
there are no GUI elements in database_schema.cpp
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
a233ec89f9 QObject: Add Q_OBJECT macro where necessary 2021-06-01 17:48:37 +02:00
Christian Hohnstädt
52bf30e47b Visual Code adaptions 2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
0e5af2e452 Replace check_oom() by Q_CHECK_PTR()
Qt offers the functionality. No need to invent it ourselves.
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
915a920de8 cmake: Split CMakeLists.txt into the different sub directories
mv cmake/sphinx-documentation.cmake -> doc/CMakeLists.txt
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
9180a3ea31 Move font information from db_base to TreeView 2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
cfe788d362 Don't store the current locale ourselves. QLocale() does the job
This also seperates UI from the core.
After calling QLocale::setDefault(), the empty QLocale constructor
returns the current default locale.
This is now used instead of XcaApplication::language()
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
f5f6b57df4 Fix translation handling.
Use "i18n" instead of "translations" as subdirectory.
Expect "i18n" being a directory.
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
e066619a08 Close #283 Nitrokey HSM2 can't create EC keys on 2.4.0
Correctly create NewKey list items for smart-cards mechanisms.
use the PKCS#11 ID t.mech as parameter for CK_MECHANISM_TYPE
instead of t.type, which is an OpenSSL ID.
Both are numeric, so the compiler didnot complain.

For RSA it worked accidentally, because
type:EVP_PKEY_RSA == mech:CKM_RSA_PKCS_KEY_PAIR_GEN == 0

Bug introduced after 2.3.0 with
77519936e0

Set the mechanism of ED25519 to CKM_VENDOR_DEFINED, because ED25519
is not supported by PKCS#11 and 0 means CKM_RSA_PKCS_KEY_PAIR_GEN.
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
00926e3efd Get rid of libltdl. QLibrary provides the same functionality 2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
61fa66b129 Add digest class encapsulating EVP_MD
Enables the separation of the core classes from the hashbox widget
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
4e2a4b7d1a Move default keyjob from NewKey to the keyjob class
another step to separate widgets from the core
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
731d866bcb Drop more unneeded includes 2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
9c49c9949f Consolidate and document used environment variables
Rename XCA_SPECIAL to XCA_ARGUMENTS, which is less generic.

and change %1_OPTIONS to XCA_%1_OPTIONS to prefix all
XCA related environment variables with "XCA_".
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
487f5e2046 Cleanup: Drop many superflous includes and unused loadImg() function 2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
f8915fbc98 PwDialog: Split into cmdline-core and GUI
Another step to split core and GUI components
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
f1c0e96435 Cmdline: no-gui autodetect: also detect --crlgen=xxx as nogui 2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
0c5603ec20 XcaWarning: Split into Core and GUI element
one more step to split core and GUI components
2021-06-01 17:48:37 +02:00
Christian Hohnstädt
68273d0a30 Switch from autotools/qmake to cmake
Why?
 - QT will switch from qmake to cmake sooner or later.
 - autotools are good for unix-ish systems, cmake also for
   macOS and Xcode as well as Windows and VS-code
 - Cross compiling the windows-binaries on linux
   is not very helpful to attract windows-centric
   developers.

Also drop qmake's xca.pro
Generate man-page and sphinx sources of commandline arguments
during build by executing xca (xcadoc.cpp).
Generating Version-patchlevel and git hash is now also
OS independent.
2021-06-01 17:48:37 +02:00
Christian Hohnstädt
1adcceaa66 Drop OpenSSL backward comatibility for NID_tlsfeature
it was not defined for OpenSSL < 1.1.0
which is not supported anymore anyway.
2021-06-01 17:48:37 +02:00
Christian Hohnstädt
d8283d8ab5 Read oids: Avoid out of range access when reading OIDs
..and catch openssl_error()s when reading the OIDs
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
b20ef7f32a Diffie-Hellmann: use XcaProgress dialog 2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
82da759a4e XcaProgress: separate Cmdline progress from GUI progress
The generic XcaProgress object is used, which dynamically
creates a Cmdline progress object.
The Mainwindow replaces it by a GUI object, which integrates
into the status bar.
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
2621d20d22 make dbhistory independent of GUI widget OpenDb
the "lastRemote" database is not GUI specific and
has been moved from "OpenDb" to the non-gui class dbhistory,
which in turn becomes independent of OpenDb
2021-06-01 17:48:37 +02:00
Christian Hohnstaedt
7f431ccbd6 Fix typo introduced with 5f1d3945 to query the database password
Opening a database now again asks for the password
2021-06-01 17:29:30 +02:00
Christian Hohnstaedt
2635b91033 WIP 2021-05-25 21:10:54 +02:00
Christian Hohnstaedt
03769bef56 Add commandline option "select" to 'print', 'pem' or 'text'
can be used to export or display items.
2021-05-24 22:22:51 +02:00
Christian Hohnstaedt
802a8787cf Adaptions to stay OpenSSL 3.0 alpha16 compatible 2021-05-12 08:49:28 +02:00
Christian Hohnstädt
3bce3ae1d6 Fix travis build
Add qttools5-dev-tools qttools5-dev
Fix warnings found by travis
2021-05-12 00:03:52 +02:00
Christian Hohnstädt
00e592d8f3 Sort output of "--issuers" and "--list-items" by primary key
This is also somehow a sort by inserting date.
For more detailled displays a sqlite browser should be used.
2021-05-11 12:07:40 +02:00
Christian Hohnstaedt
ccfad6a1c3 Replace qWarning()s by qDebug() 2021-05-11 12:07:40 +02:00
Christian Hohnstaedt
7e72d8c02c Commandline: Add "--list-items" to print a list of database items 2021-05-11 12:07:40 +02:00
Christian Hohnstaedt
5f1d394530 Close #67: possibility to ignore password prompt from CLI
XCA automatically checks whether the current arguments need
a password
2021-05-11 12:07:40 +02:00
Christian Hohnstädt
8daf06dcac Close #259: Follow the XDG base directory specification
After dropping Qt4 support, the Qt5 QStandardPaths class
can be used to replace my implementation of directory discovery.

QStandardPaths follows the XDG specification.
2021-05-11 12:04:46 +02:00
Christian Hohnstaedt
7d564132ba Move ca-properties dialog to the certificate view
Reduce UI from QDialog to QWidget and display it in the XcaDialog frame.
Also move user interface specific code from the db_x509 class
into the CertTreeView class
2021-05-10 20:41:12 +02:00
Christian Hohnstaedt
523fa64486 asn1ToQString: use OpenSSL's ASN1_STRING_to_UTF8()
instead of my own implementation.

Please don't ask why I didn't look for such a function
before. I don't know.
2021-05-10 20:41:12 +02:00
Christian Hohnstaedt
57802580c8 Drop backward-compatibility for old(<2.0.0) XCA databases 2021-05-10 20:41:12 +02:00
Christian Hohnstädt
1500e636c8 Drop OpenSSL backward compatibility hacks < 1.1.0
OpenSSL < 1.1.1 is out of support anyway
2021-05-09 12:25:32 +02:00
Christian Hohnstädt
d5fa97c3bb Drop support for Qt4
Version 2.4.0 was the last one with Qt4 support
2021-05-09 12:25:32 +02:00
Christian Hohnstaedt
2c38ddbd8d Set default key size to 2048 instead of 0
when changing the key type from EC/ED25519 to RSA/DSA
2021-05-07 22:30:51 +02:00
Christian Hohnstaedt
dea42e8d1f Minor documentation update 2021-05-07 22:08:34 +02:00
Christian Hohnstaedt
c2d88bf460 Database.close() is idempotent. Call it at the end unconditionally 2021-05-07 13:04:32 +02:00
Christian Hohnstaedt
d54819e15b database_model: better handle uncreateable databases
Current implementation did not check whether a non-existing
database-file could be created.

Throw an error message if the database file cannot be created.
Simply by using XFile instead of QFile.
2021-05-07 13:04:22 +02:00
Christian Hohnstädt
703d9c0ba7 sql: better handle SQL errors during insert
Don't pop-up a success message, but delete the item,
if an SQL error occures during insert.
2021-05-05 19:39:28 +02:00
Christian Hohnstaedt
b907103975 Update documentation 2021-04-28 22:27:04 +02:00
Christian Hohnstaedt
5d4b52ac87 Fix opening a database on startup.
Commit e32fce8581
(main.cpp: mainwin must exist for read_cmdline() in GUI mode)
created the Mainwindow before parsing the commandline,
but the MainWindow constructor opened a default database if set.

With this change, the MinWindow constructor does not open a default
database. Now the default database is explicitly opened after parsing
the command line, if no other database is already open.

Rename init_database() to setup_open_database()
It is re-entrant.
2021-04-28 22:26:40 +02:00
Christian Hohnstädt
8c04bc2b27 Rename PACKAGE_VERSION to XCA_VERSION
For an official release XCA_VERSION == PACKAGE_VERSION.
For any additional commit, XCA_VERSION's path-level is increased.

PACKAGE_VERSION cannot be modified after initially set.
Change any occurance of PACKAGE_VERSION by XCA_VERSION
2021-04-26 10:10:23 +02:00
Christian Hohnstädt
48e211b892 Improve error message during commandline import
If the file es not accessible, XCA now reports:
  Error opening file: 'file.pem': No such file or directory
Instead of:
  Failed to import from '../I'
2021-04-25 15:41:02 +02:00
Christian Hohnstädt
7a05d5623d Change versioning schema: drop iteration counter
The patchlevel will be increased by the iteration counter,
which is the number of commits since the most recent annotated tag.

Tagged version 1.2.3 in VERSION will be called "1.2.3"
3 commits later it will be 1.2.6
2021-04-24 23:16:36 +02:00
Christian Hohnstaedt
a81ee33652 pki_key.cpp: The key-type string in the database is only 4 bytes
... but "ED25519" is consists of more than 4 characters.
2021-04-23 15:57:32 +02:00
Christian Hohnstaedt
e32fce8581 main.cpp: mainwin must exist for read_cmdline() in GUI mode
If XCA runs in GUI-mode, the mainwin must be accessible.
2021-04-23 15:57:32 +02:00
Christian Hohnstaedt
87c4729d75 func.h: The mainwin is global
Like the application, the main window is a single instance
which is globally available for simplicity.
in case of non-gui mode, mainwin is NULL.
2021-04-23 15:57:32 +02:00
Christian Hohnstaedt
51f3418c68 db_base.cpp: Improve loading database content
If tan item has unsupported content like key type or algorithm,
it will be skipped with a warning now, but the database loads.
2021-04-23 15:57:32 +02:00
Christian Hohnstädt
ca0fdcd5c9 Bash completion 2021-04-23 15:57:32 +02:00
Christian Hohnstaedt
ff7704ff0b Add context sensitive documentation
All dialogs get the "Qt::WindowModal" modality to
operate the Help window in parallel
while also blocking the dialog parent windows.

The manageRevocations() moved from model to view

The Details dialogs become more self-sufficient.
There is a statc start method that shows the dialog and
updates name and comment after accept().
This allows recursive starts of certificate details and
independence of mainwin.
It is necessary to set the current toplevel widget as parent
for the next dialog to not block the application.
2021-04-23 15:50:13 +02:00
Christian Hohnstaedt
7ace0db0d5 Add ED25519 support for commandline key generation
Enable the key-job class to parse ED25519 key description
without size and EC-Group correctly.
Don't check the size parameter of ED25519 keys.
2021-04-09 17:36:03 +02:00
Christian Hohnstaedt
d53d64d23d Transform XCA documentation from SGML to sphinx
linuxdoc is pretty outdated, while sphinx is really cool:

 - Sphinx is modern with a broad user base
 - The generated documentation is themeable
 - The sphinx-source is much more readable than the
   SGML-tag scattered linuxdoc.
 - The different topics can be splitted into different files
 - It can be converted to qt-context sensitive help
 - It supports syntax highlighting for the SQL database documentation
 - It is supported on MacOSX,because it is python-based.

Drop code2html perl-script, which was used to colorize the SQL schema.
Generate "doc/arguments.rst" with XCA_MAN="rst" ./xca
2021-04-09 17:36:03 +02:00
Christian Hohnstaedt
c05b58c6e6 Fix for building against libreoffice 2021-04-01 20:27:11 +02:00
Christian Hohnstaedt
0bdd964443 Use .priv as SSH private key extension 2021-04-01 17:25:27 +02:00
Christian Hohnstädt
45de747461 Add support for SSH2 ED25519 private key export
Encrypting the SSH2 private keys is not supported, yet.
2021-04-01 12:24:01 +02:00
Christian Hohnstädt
241abffaad Close #258: xca aborts on exit and on access to own templates
Double check the values used to call beginRemove/InsertRows()
2021-04-01 11:02:22 +02:00
Christian Hohnstädt
6d76fe1206 Close #142: Support Ed25519 Export private SSH2 key
Currently "PEM private" will export the key in SSH2
for PEM export into the clipboard
2021-04-01 11:02:22 +02:00
Christian Hohnstaedt
fdb2894e80 Close #142: Support Ed25519 Import private SSH2 key
Support loading OpenSSH ED25519 private key

Improve private key verification in general.
ED25519 does not support EVP_PKEY_sign(), so use
EVP_DigestSign(), which in turn only works since OpenSSL 1.1.1
resulting in a backward compatibility quirk in openssl_compat.
2021-04-01 11:02:22 +02:00
Christian Hohnstaedt
9cd58ff262 Close #142: Support Ed25519 Import public key
Import ED25519 key from SSH2 public key format
2021-04-01 11:02:22 +02:00
Christian Hohnstaedt
86cfff35d0 Close #142: Support Ed25519 Public export an Details
- Export SSH2 Public key
- Detect whether ED25519 key is private key
- Support ED25519 in the KeyDetails dialog
   o Display public key
   o Curve name
   o Fingerprints
   o Availability of private key
2021-04-01 11:02:22 +02:00
Christian Hohnstaedt
dbb3c48ef3 Close #142: Support Ed25519 Keygen
Support generating ED25519 keys
2021-04-01 11:02:22 +02:00
Christian Hohnstädt
1a0ef9c9ee Extend OpenSSL 1.0.2 compatibility layer
Add EVP_MD_CTX_new/free() and EVP_CIPHER_CTX_new/free()
as backward compatibility layer
2021-04-01 11:02:22 +02:00
Christian Hohnstaedt
46cbba45a3 pki_evp: Fix indentation 2021-04-01 11:02:22 +02:00
Christian Hohnstädt
496fb5e0bc Close #251: AuthorityKeyIdentifier: use issuer:always
When analysing and translating the AuthorityKeyIdentifier
extension to OpenSSL syntax, take an existing DirName
as "issuer:always", because openssle otherwise ignores it,
when the keyid succeeds.
2021-02-08 17:07:06 +01:00
Christian Hohnstädt
c90302ddd8 Close #230: Change PKCS12 export extension from .p12 to .pfx
[Change Request] Consider changing PKCS12 export
extension from .p12 to .pfx by default,
as p12 is a legacy Netscape holdover,
and PFX is the 'standard' per RFC now.
2021-02-06 22:52:54 +01:00
Christian Hohnstaedt
66cff37ad9 Close #208: XCA hung when importing EC keys. For example prime256v1
Fix Null-Pointer exception, which is strange, because:
 - it only happens on windows
 - the key still works fine
2021-02-06 22:52:54 +01:00
Christian Hohnstaedt
e9edb75442 ImportMulti: Update pointer management to always free all items 2020-10-16 00:37:12 +02:00
Christian Hohnstaedt
cbe7709b20 Close #224: Store original path/filename on import 2020-10-16 00:37:12 +02:00
Christian Hohnstädt
ef5bb98a90 Initialize workingdir with trailing slash
All users of the workingdir assume it ends with a /
2020-10-15 06:21:32 +02:00
Christian Hohnstädt
0745af1d63 Fix editing revocation entries and generate CRL from that dialog 2020-10-14 19:48:18 +02:00
Christian Hohnstädt
ed29b5f3a5 Fix typo to start CRL Management 2020-10-14 19:48:18 +02:00
Christian Hohnstädt
497e4a6120 Extend Password input by filedescriptor number and automatic man page
Also extend the documentation about the password.
Automatically generate the man page from the options.

Call xca as "XCA_MAN=1 ./xca" to print the current man-page options
2020-10-14 19:48:18 +02:00
Christian Hohnstädt
8963590053 Create user-settings directory after creating QApplication
At least on OSX this is required to have
QCoreApplication::applicationName() return "xca"
2020-10-14 19:48:18 +02:00
Christian Hohnstädt
6474d6356b Improve finding certs/requests with same key
The SELECT query now also only selects items of the required type:
 Request / x509 certificate
This avoids error messages
2020-10-14 19:48:17 +02:00
Christian Hohnstädt
78d6b5e67c Check XCA_ABORT_ON_WARNING envvar to abort() on any warning or worse
This allows easy debugging of warnings and errors
2020-10-14 19:48:17 +02:00
Christian Hohnstädt
24009b13c7 Fix warnings 2020-10-14 19:48:17 +02:00
Christian Hohnstädt
673df16dcf Finish struct option with zeros 2020-10-12 13:04:03 +02:00
Christian Hohnstaedt
ef24c00c22 Minor fixes 2020-06-26 14:21:32 +02:00
Christian Hohnstaedt
17b621ccef Encapsulate all index.internalPointer() in fromIndex(index) 2020-05-10 09:09:31 +02:00
Christian Hohnstaedt
9e52d99067 Fix destructor of BioByteArray to not overwrite ro data 2020-05-08 17:37:40 +02:00
Christian Hohnstaedt
45f834a6e4 Move tree-handling from db_x509 class to the base class
This is a preparation for possibly inserting
structuring folder elements later.
2020-05-08 17:37:40 +02:00
Christian Hohnstaedt
af79214121 Use fromIndex(index) convenience function
for certificates create a function returning
a dynamically casted pki_x509 pointer

Add NULL check of dynamically casted pointer,
because it could be a folder...
2020-05-08 17:37:40 +02:00
Christian Hohnstaedt
1e544161f6 Eliminate the use of "mainwin" in lib/db_* 2020-05-08 11:59:09 +02:00
Christian Hohnstaedt
7c65a786ea Revamp database management
The global variable "Database" of class xca_db
can be used by any other class to access. No need
to provide it.

The "xca_db" class managed the "database_model" pointer.
Accessing the name of the current database has been unified.
2020-05-08 07:47:15 +02:00
Christian Hohnstaedt
93a7c6a9a3 Implement option --list-curves and display EC curves 2020-05-06 18:32:37 +02:00
Christian Hohnstaedt
9b201566e2 Improve on cmdline, console, unicode and windows CMD
Improve Windows registry functions

Use *A postfix function explicit becaus e we don't expect
unicode characters.
Also simplify "console_write()"
2020-05-06 18:32:27 +02:00
Christian Hohnstaedt
d1c0970ea1 BioByteArray: Add size() method 2020-05-06 18:08:36 +02:00
Christian Hohnstaedt
b5c9d645e3 More native separators when displaying file names 2020-05-06 17:57:09 +02:00
Christian Hohnstaedt
b2ab7570b8 Minor fixxes and constifies 2020-04-30 18:47:28 +02:00
Christian Hohnstaedt
0f7465dcc5 Add convenience function to convert QModelIndex to pki_base * 2020-04-30 18:46:08 +02:00
Christian Hohnstaedt
03633d7a8a Provide db class name through constructor 2020-04-30 18:44:36 +02:00
Christian Hohnstaedt
a3344100e3 Drop FOR_ALL_pki() makro and use a foreach() loop
The foreach loop iterates over all items of a type.
The iterate method is now superflous
2020-04-30 18:40:49 +02:00
Christian Hohnstaedt
8f46d238e0 Replace __ME makro by pki_base QString() operator
Now a pki item can transform itself to a QString for debugging
2020-04-30 18:37:48 +02:00
Christian Hohnstaedt
5a64725556 Move item store from db_base into separate class "pki_lookup"
Since also pki_base and other classes need to access them.
2020-04-30 18:37:25 +02:00
Christian Hohnstaedt
f889efc4cb Merge branch 'master' into develop 2020-04-30 18:34:16 +02:00
Christian Hohnstaedt
1f2429e677 Avoid filedescriptor leak 2020-04-29 13:29:01 +02:00
Christian Hohnstaedt
76e3f86783 Close #191: OID LN differs warning popups at startup
OpenSSL fixed the 2 LN with commit:
  648b53b88e

in OpenSSL 1.1.1e.

Follow my own advice and delete them from the oids.txt
together with all other OIDs present in OpenSSL
since at least version 0.9.8

Also do the initOIDs after creating the QApplication to
avoid qAbort() when creating the warning (introduced after 2.2.1)
2020-04-27 15:03:36 +02:00
Christian Hohnstaedt
0ac3b2daca Improve and fix VERSION_ITERATION 2020-04-27 15:03:36 +02:00
Christian Hohnstaedt
7d5bb9ca4f Fix newline handling 2020-04-07 15:54:16 +02:00
Christian Hohnstaedt
5cb1b45d81 console_write: takes a QByteArray instead of printf()
Good Windows Unicode font:
https://math.berkeley.edu/~serganov/ilyaz.org/software/fonts/
2020-04-06 22:08:04 +02:00
Christian Hohnstaedt
dd46ff7201 Fix Copy&Paste'o: Put issuer into issuer property and not subject 2020-04-06 22:07:57 +02:00
Christian Hohnstaedt
ea453d4336 Encapsulate all BIOs in the BioByteArray class
If we have a QByteArray (ba) and must provide it to
a BIO* expecting OpenSSL function, the following
construct provides it: BioByteArray(ba).ro()
directly providing the QByteArray buffer as BIO

It also supports mixed writes:
  BIO_write(bba, buf, size)
  bba += QByteArray
2020-04-06 22:07:57 +02:00
Christian Hohnstaedt
4d95912d51 Add console_write() to print also on CMD 2020-04-05 22:45:11 +02:00
Christian Hohnstaedt
b7d3e6a3cc Merge branch 'master' into develop 2020-04-05 13:49:01 +02:00
Christian Hohnstaedt
fb5ee14911 Improve PKCS11 library loading for portable app 2020-04-05 13:12:09 +02:00
Christian Hohnstaedt
a9a4c2b2d6 remote database: Dont show error if the password was empty
Otherwise, first an error message is shown and then
a password is asked.
2020-04-05 13:08:47 +02:00
Christian Hohnstaedt
9d7275ef31 Accept missing "dbhistory" file 2020-04-05 10:59:00 +02:00
Christian Hohnstaedt
c528c37986 Merge branch 'master' into develop 2020-04-05 10:58:47 +02:00
Christian Hohnstaedt
4314b0ead9 constify slotid 2020-04-05 09:16:12 +02:00
Christian Hohnstaedt
500f11c9b3 Get rid of filename2bytearray and QString2filename
We now use QFile or its derivate XFile, who smoothly
handle unicode filenames also on windows.

The lt_dlopen() only handles "char *" not wchar_t.
Try to convert the filename with all known codecs
until we can open it.

filename2QString() remains to differently encode
filenames provided on the commandline on Windows.
2020-04-05 09:16:12 +02:00
Christian Hohnstaedt
2d0980d4f6 Use pkcs11_lib_list as model for Options:pkcs11list
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.
2020-04-05 09:16:12 +02:00
Christian Hohnstaedt
296ff59f3c PKCS11 library list: Don't get confused by C: when expecting 1: 2020-04-03 21:56:37 +02:00
Christian Hohnstaedt
5543ec2fb8 Merge branch 'master' into develop 2020-04-02 07:35:18 +02:00
Christian Hohnstaedt
b41d322069 Refactor native separators / and \ on windows.
Always only use forward slash /
Drop all "QDir::separator()" and "nativeSeparator()"
functions. Only use it where filenames are displayed for the user.
2020-04-02 06:12:47 +02:00
Christian Hohnstaedt
66a85497b7 Improve development version calculation as 4th digit
The plus sign was not compatible with the WIX toolset.
The 4th digist is the number of commits since the last release.

For a tagged release it is not 00, but empty.
2020-04-01 22:56:53 +02:00
Christian Hohnstaedt
096e57ec8c Close #70: cant open ics file in ical on macos mojave
Fixed syntax errors in the ICS file.
Verified by http://ical-validator.herokuapp.com/validate/
Thanks for the service.
2020-04-01 12:29:55 +02:00
Christian Hohnstaedt
d54aa116db Avoid unused variable warning for OpenSSL 0.9.8 2020-03-29 22:33:57 +02:00
Christian Hohnstaedt
524aff97b8 Load OID lists. Fixup for c89b6aff 2020-03-29 22:33:57 +02:00
Christian Hohnstaedt
799d3262b0 Reactivate translation of x509 expressions 2020-03-29 22:33:57 +02:00
Christian Hohnstaedt
4f1103a64f Close #72: Add checkbox for OCSP staple feature
Also support them in XCA template and transformation from
certificate and request.
2020-03-29 22:23:21 +02:00
Christian Hohnstaedt
9c55caf82f Merge branch 'master' into develop 2020-03-23 06:53:06 +01:00
Christian Hohnstaedt
149ecda63c Fix index-hierarchy functionality
create target directory and name feature "hierarchy"
2020-03-23 06:39:30 +01:00
Christian Hohnstaedt
852da61836 Fix array access 2020-03-22 08:12:38 +01:00
Christian Hohnstaedt
8cf138b409 Drop debugging code 2020-03-22 08:12:38 +01:00
Christian Hohnstaedt
92846d6b38 Close #174: Microsoft's PVK RSA private key format
Support Import and export private and public PVK keys.
2020-03-22 08:12:38 +01:00
Christian Hohnstaedt
f244cec5d3 Drop functions from legacy database modul
Only read-functions are required for an
upgrade
2020-03-20 16:29:43 +01:00
Christian Hohnstaedt
928ff6458c Improve and fix qDeleteAll()
qDeleteAll() does not clear the QList.
Add it, if necessary.

Use dynamic_cast where appropriate
2020-03-20 16:29:42 +01:00
Christian Hohnstaedt
b8b368d787 hashNum() is an unsigned integer 2020-03-19 20:40:36 +01:00
Christian Hohnstaedt
9183f300c8 Add support for validating a keyjob
In case of an invalid keyjob bail out.
2020-03-18 05:26:16 +01:00
Christian Hohnstaedt
919f4f6b23 Parse keytype uppercase to also allow "rsa:2048" 2020-03-18 05:26:16 +01:00
Christian Hohnstaedt
ee7739baa6 Improve detection of commands enforcing no-gui
provided cmdline parameter are handled as abbreviated
parameter.
2020-03-18 05:26:16 +01:00
Christian Hohnstaedt
7a5936eb9f Replace malloc/free by new/delete 2020-03-18 05:26:16 +01:00
Christian Hohnstaedt
31088b608c cmdline help move the asterisk to the front
indicating the requirement for a database when using this option.
2020-03-18 05:26:16 +01:00
Christian Hohnstaedt
7babd609be Drop unneeded pki_base::insert()
Insert / append does not matter,
because the rows are sorted by columns anyway.
2020-03-17 05:13:35 +01:00
Christian Hohnstaedt
51ffe4e43e Drop functions from legacy database modul
Only read-functions are required for an
upgrade
2020-03-17 05:07:59 +01:00
Christian Hohnstaedt
9845a00ca3 Store default database and recently opened file as UTF8 2020-03-17 05:07:46 +01:00
Christian Hohnstaedt
00bf676f0a Fix building for Windows
No ioctl() on windows.

Avoid initialisation race of static arrays
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
595cf9a722 Drop connNewX509() signal and slot
in the past it was used to connect the NewX509 dialog
with requests keys and certs.

The NewX509 dialog knows mainwin since some time
and thus can connect itself to models and views

mainwin: use model<T>() instead of models->model<T>()
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
af3816a7b0 Fix building against OpenSSL 0.9.8 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
dcd2e1a223 Replace typeid by dynamic_cast where appropriate 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
ef9b3aff3d Drop superflous includes from header files 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
2f917237bc Close #157 Generate and export CRLs from commandline
Enable key generation and CRL generation on the commandline
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
aacd9ee5f6 Make XcaProgress and WAITCURSOR cmdline compatible 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
a48ea10e3d Split key generation and data-collection-UI
Use the key job to transfer the information
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
a6ec3a9319 Minor fixes without functional changes 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
f1fd65c9cf Add keyjob (TBC)
Invent keyjob
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
77519936e0 Invent keytype class for mapping type mechanism and name 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
241d7e9c7f Move newItem() function from model to view
Move CRL and Template data collection via UI to
the appropriate views
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
3dd34a61bc Move "showPki()" from the model class to the view
The displaying function requires UI.
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
d0d387b03e Directly display the error instead of signaling others
The XCA_ERROR() is console-compatible and can be used
without GUI
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
c3abd640fc Fix certificate assignment importing a CA certificate
Fix finding our unassigned certificates when importing a CA
(issuerSqlId may be QVariant(int, 0) depending on the database)

Reassign certs from an older CA to the imported one.
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
c098b235ce Minor fix. No Message when exiting 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
10857e3e0c Support item import from the commandline 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
aa55a68782 Let pki_pkcs12 and pki_pkcs7 inherit from pki_multi
And ImportMulti handles pki_multi sufficiently
and does not need to know about pkcs12 or pkcs7

pkcs12 and pkcs7 don't need: print() getCa() addCaCert() numCa()
it is handled by pki_multi()

Take advantage of the power of dynamic_cast<>() instead of using
typeid()
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
1278ef9379 Add self-accounting of items for debugging 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
19eafe1739 Improve and fix qDeleteAll()
qDeleteAll() does not clear the QList.
Add it, if necessary.

Use dynamic_cast where appropriate
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
98593e7462 Compatibility fixes for QT4 and OpenSSL 0.9.8
Need to drop support for those ancient libs.
Not, yet.
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
55d1693015 Improve printing of cmdline items
Unify --print by collecting all properties
Add --pem to print the item in PEM format
2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
1544065133 Extend --print and --text functionality 2020-03-13 12:13:27 +01:00
Christian Hohnstaedt
64ef856546 Add flag to option list, declaring whether a database is required 2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
c89b6aff29 Move NID lists for ExtendedKeyUsage and DistinguishedName
into lib/oid.h
2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
c5208f1cd7 Consolidate headers, unguard delete operator 2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
e4d0ab8f8e Refactor Image and icon ressources 2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
7d0ab9d787 Add pki_XXX(const pki_XXX*) constructor
pki_XXX(const QString) -> (const QString &)
2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
b2a69f3586 Several fixes of previous commit
Passwd::cleanse() also resets the password size
db_base::flushLookup() now deletes all items
and pki_base does not anymore.

Drop TRACE
Colorize pki_base::print()

Set and inherit filename of loaded items
Add print() method to pki_pkcs12
and constify its methods
2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
a90d7b5b0d Improve password input handling
Unify password results
Retry on password verification error
Honor the users wish to exit
2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
30824964a2 hashNum() is an unsigned integer 2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
9da73073c8 Create CRL by providing a crljob, describing the parameters
The GUI will prepare such a job and the cmdline can do so, too.
2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
089c7d39ef Improve console password input 2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
176c2f8169 Improve password input and handling
Use the Passwd class instead of QString

Move password input into the database model
to be available for commandline use.

Repeat in case of wrong password
2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
c1ea126efe linewrap in help 2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
113a201d39 Separate database from Mainwin for better cmdline support
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
2020-03-11 07:19:56 +01:00
Christian Hohnstaedt
a1fedfaf9e Fix building against OpenSSL without EC.
This commit amends b982245995
which broke the NO_EC build
2020-03-11 05:56:54 +01:00
Christian Hohnstaedt
176e26e390 Close #170 xca-portable-2.2.1 cannot change language
Use GetModuleFileNameW() and RegGetValueW()
returning the path as UTF-16 encoded unicode.

entropy: Use QFile inherited class for file access

This allows wchar_t encoded file names and paths
on windows.

So glad not having to deal with wchar_t / UTF-16 otherwise,
but using QString and UFT-8. The destiny of early adopters....
2020-03-11 05:49:18 +01:00
Christian Hohnstaedt
84560e26e1 Fix certificate assignment importing a CA certificate
Fix finding our unassigned certificates when importing a CA
(issuerSqlId may be QVariant(int, 0) depending on the database)

Reassign certs from an older CA to the imported one.
2020-03-11 05:49:18 +01:00
Christian Hohnstaedt
8379b51610 Use list initializers for template keys 2020-03-07 06:48:07 +01:00
Christian Hohnstaedt
dc2ef08fa5 Constify db 2020-02-12 22:43:33 +01:00
Christian Hohnstaedt
fe59727825 Move includes required for FreeBSD 2020-02-12 22:43:33 +01:00
Christian Hohnstaedt
b982245995 Close #163: Show key type/size on column of Certificates tab
Reuse HD_key_type, HD_key_size, HD_key_curve IDs from the key tab.
They use the "hd_key" type to put them into a context-submenu.

The certificate either uses the existing or a temporary key
and calls its "column_data()".

Simplify the submenu logic for the context-menu.
2020-02-12 22:42:36 +01:00
Patrick Monnerat
20b1c4fc8a Resolve gcc 9/10 new warnings.
-Wstringop-truncation:
Ensure length passed to strncpy() is < size of destination buffer. The last
buffer byte is already nullified afterwards (in db::init_header() and
db::rename()).

-Wdeprecated-copy:
Explicit define of errorEx copy assignment operator.
Explicit define of x509revList copy assignment operator.
Explicit define of slotid copy constructor.

-Wimplicit-fallthrough:
Refactor code to suppress case fallthrough in pki_key::ssh_key_bn2data().
2020-02-09 01:24:06 +01:00
Guido Falsi
c3d7af01fd Add includes required in FreeBSD to use in6_addr, AF_INET and AF_INET6. 2020-02-01 18:39:59 +01:00
Christian Hohnstaedt
bf09030dc9 Close #159 Opening existing database
Read the database schema from 'settings' uncached.
2020-01-30 17:00:15 +01:00
Christian Hohnstaedt
dcf8c7bcdb No need for KEY_WOW64_32KEY registry flag
Registry entries are also 64bit.
2020-01-22 05:56:11 +01:00
Christian Hohnstaedt
4e16158668 Add missing DLL for PosgreSQL DLL 2020-01-21 21:34:31 +01:00
Christian Hohnstaedt
a12b2e94f5 Close #129 Unattended Installation. Switch to MSI installer
Improve Windows installation xca.wxs

Move documentation to "html" dir and translations to "i18n"
in the portable-app and the MSI installation
Modyfies getDocDir() and Introduces getI18nDir()

Drop Nullsoft installer files
2020-01-20 22:33:05 +01:00
Christian Hohnstaedt
a05349e917 Portable App: xca.exe path differs from registry install path
Even better select the initial working directory
2020-01-19 08:48:02 +01:00
Christian Hohnstaedt
580a2fae2b Close #93 Default output folder / Improve Portable App usability
- allow setting a database as default
- Strip xca-app-folder from database and export filenames.
  This allows renaming/moving the portable app and open the default DB
  and use the working directory inside the folder
- Remember database history and configured language
2020-01-13 07:26:46 +01:00
Christian Hohnstaedt
23a737bbfa Constify getLibExtensions() 2020-01-13 07:26:46 +01:00
Christian Hohnstaedt
2fbadfc9f0 Update Copyright Years to 2020 2020-01-13 07:26:46 +01:00
Christian Hohnstaedt
953d26c419 Close #21 Support for ODBC (MSSQL)
Add ODBC QSQL Database driver

Column "public" in public_keys table is a keyword in
MSSQL. Double quote it.
Double quotes are invalid on MySQL in non-ANSI mode.
Force ANSI mode for MySQL/MariaDB databases.

MSSQL also has a maximum VARCHAR of 8000

Schema updates are not performed for each new database.
New databases are immediately created conforming to schema:7
Schema 5 and 6 get updated to 7.
Schemas < 5 never have been released officially. (pre 2.0.0)

Switch "Database name" label to "DSN" for ODBC databases.
2020-01-13 07:24:08 +01:00
Christian Hohnstaedt
fd09ebe9ff Close #156 secp256k1, secp256r1 and NIST-P256
Highlight RFC 5480 curves at the top of the list
2020-01-08 05:57:32 +01:00
Christian Hohnstaedt
ae94faebaf Transfer Key Usage and Extended Key Usage critical flags
When transforming certificate or request extensions
into a template, the (e)keyusage critical flags storage
had a typo:
  "eKyUseCritical" instead of "ekuCritical" and
  "keyUseCritical" instead of "kuCritical"

Also the eKeyUse value was not transformed completely.
2020-01-07 06:08:30 +01:00
Christian Hohnstaedt
1ea45c8da4 Constify fload() fromPEM_BIO() fromPEMbyteArray()
Use "BIO_from_QByteArray()" instead of "BIO_new_mem_buf()"

Replace qSort() by std::sort()
Replace QString::null by QString()
2020-01-06 21:30:29 +01:00
Christian Hohnstaedt
8726c8b96d Improve item loading. Inspired by #153
If Loading the item results in an openssl error,
even if the item is not empty, discard it.
Otherwise loading it from the database later on will fail.

Improve "autoIntName()"
2020-01-06 19:35:11 +01:00
Christian Hohnstaedt
2105fd8a75 Constify table names 2020-01-05 14:02:50 +01:00
Christian Hohnstaedt
9aa2525fab Remove fopen_error() and its last user. 2019-12-19 07:17:03 +01:00
Christian Hohnstaedt
4199b8dfc6 Fix SSH2 public key export
Amend commit c26e7a4695
where the base64 key got lost in the output!
2019-12-16 17:14:37 +01:00
Christian Hohnstaedt
aac04418f5 Improved language maintainers 2019-12-14 13:24:15 +01:00
Christian Hohnstaedt
212b385022 Fix Typo 2019-12-14 13:24:15 +01:00
Christian Hohnstaedt
91dc86909f Close #138: Portable Version does not remember paths
Store export/import path as workingdir in database
also for the portable app.

Do not load a working dir that does not exist.
2019-12-12 23:20:19 +01:00
Christian Hohnstaedt
4bce90e986 Close 83: Token selection should not insist on name or serial of the token
Only use the public key when searching for
a matching key on the token.

Use token-name and serial to give the user a hint which token
XCA expects to carry the key.
2019-12-07 13:10:57 +01:00
Christian Hohnstaedt
2397ab72de Close #140: Certificate renewal with option to preserved serial number
Add checkbox (unchecked by default) to keep the old serial number
while renewing certificates
2019-12-06 15:28:09 +01:00
Christian Hohnstaedt
7f833a591f Close #144: Database export has issues with wildcards in internal names
Escape more characters when using internal name
as file name according to:
https://docs.microsoft.com/de-de/windows/win32/fileio/naming-a-file

Append a "_" after "CON, PRN, AUX, NUL, COM1-9, LPT1-9" as filename.
2019-12-05 14:56:39 +01:00
Christian Hohnstaedt
bb4b1e3a08 Change chinese language code from "zh" to "zh_CH" 2019-09-10 21:58:49 +02:00
Christian Hohnstädt
39f358e23f
Merge pull request #84 from chipitsine/master
resolve possible null pointer dereference
2019-05-14 17:50:05 +02:00
Christian Hohnstaedt
80affcfa61 CLose #120: Mark signed a request doesn't work
PostgreSQL requires in INT type instead of bool,
when setting the signed column.
2019-05-13 17:06:57 +02:00
Christian Hohnstaedt
c7a0f14283 Close #116: Duplicate extensions erroneously shown
Dynamically add unknown OIDs with its numerical representation
to always resolve them to avalid NID.
2019-05-13 16:45:57 +02:00
Christian Hohnstaedt
58669685eb Close #114: SAN - IPv6 address input not working
Do not try to write an own IP v4/6 validator.
The libc function inet_pton() does what we need.
2019-04-29 19:16:27 +02:00
Christian Hohnstaedt
79441b766d Change hash algo of PKCS#12 certificate to 3DES SHA1
this is for systems where RC2 has been disabled for security reasons.
2019-04-08 06:27:21 +02:00
Christian Hohnstaedt
b9a8bb1a04 Cleanup: remove unused properties and declarations 2019-03-27 05:58:25 +01:00
Christian Hohnstaedt
47d4bfac2c Improve SQL sequence when deleting a certificate 2019-03-27 05:58:20 +01:00
Christian Hohnstaedt
5e3d5e0edc Cancel creating a new database if database-password dialog is cancelled.
Clicking cancel in the password dialog during database creation
does not trigger an assertion during key generation/import
anymore.
2019-03-27 05:58:15 +01:00
Christian Hohnstaedt
68ffb63db6 Use the SQL primary key to reference the CRL issuer
... and avoid the pointer
2019-03-25 07:23:53 +01:00
Christian Hohnstaedt
e9df5b7cda Use the SQL primary key to reference the certificate issuer
... and avoid the pointer
2019-03-25 07:22:35 +01:00
Christian Hohnstaedt
4eb7b170b1 Do not reference the key by pointer, but by Key Id
This way the pointer to the key may change during reload.
2019-03-25 06:59:25 +01:00
Christian Hohnstaedt
f43e7520db Support concurrent database access.
If a database is modified by another instance of XCA the passive
instance reloads and displays the changed parts.
2019-03-25 06:47:25 +01:00
Christian Hohnstaedt
ced0995862 Close #91: Change order of "PKCS#11 provider"
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
2019-03-21 06:12:51 +01:00
Christian Hohnstaedt
8f3335be0f Improve lib detection 2019-03-21 05:25:21 +01:00
Christian Hohnstaedt
157b0a3fae Move Template file reading to QFile API 2019-03-21 05:25:21 +01:00
Christian Hohnstaedt
a28b943b5f Fix missing ; after return 2019-03-20 17:44:08 +01:00
Christian Hohnstaedt
1086329ee1 Fix for Openssl nno-ec 2019-03-18 06:25:20 +01:00
Christian Hohnstaedt
fa704001ca Also change File loading from FILE* to QFile 2019-03-18 06:25:20 +01:00
Christian Hohnstaedt
026d8f8e6d Extend PEM files by human readable information about the item
This can be enabled or disabled during export.
Move from FILE* to QFile
2019-03-18 06:25:20 +01:00
Christian Hohnstaedt
f55c7feee7 Constify some functions 2019-03-14 06:35:25 +01:00
Christian Hohnstaedt
a78d953338 Support ecdsa SSH public keys 2019-03-14 06:35:25 +01:00
Christian Hohnstaedt
742e1536d7 Fix Private key verification 2019-03-14 06:35:25 +01:00
Christian Hohnstaedt
c26e7a4695 Close #98 Add comment at import/export RSA keys from/to SSH public key
When loading the SSH key add the trailing comment to the comment field
When storing the key, append the first line of the comment to the key.
2019-03-14 06:35:25 +01:00
Christian Hohnstaedt
1bc340a0ef Close #104: Also show sha256 digests of public keys
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.
2019-03-14 06:35:24 +01:00
Christian Hohnstaedt
c41bbf9b23 Close #82: Renew CA ROOT Cert
Enable renewal option in the context menu
for self-signed CA certificates
2019-03-12 22:11:52 +01:00
Christian Hohnstaedt
56687bfc83 Verify imported keys thoroughly
When importing keys, a verification by signing and verifying
some random data is performed now.
2018-12-06 05:50:09 +01:00
Christian Hohnstaedt
a46759a946 Fix workingdir setting 2018-11-17 15:38:18 +01:00
Christian Hohnstaedt
7d5ecacad8 Make debug output configurable
Setting the XCA_DEBUG environment variable != ""
will enable debugging.
2018-11-17 14:14:44 +01:00