Commit Graph

251 Commits

Author SHA1 Message Date
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
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
b9a8bb1a04 Cleanup: remove unused properties and declarations 2019-03-27 05:58: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
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
d5305d33c7 Check all dates regularily whether a "view" update is neccessary 2018-06-28 14:33:30 +02:00
Christian Hohnstaedt
acea9e5c21 Fix translation of dates 2018-06-27 07:50:21 +02:00
Christian Hohnstaedt
96d8c5cf37 Generalize handling of DateTime columns 2018-06-26 23:32:40 +02:00
Christian Hohnstaedt
b10b4f7a53 Inspired by #42: display insertion date relative
Easy to find the most recent entry, because it says
"3 seconds ago"
2018-06-25 21:20:25 +02:00
Christian Hohnstaedt
efd3bff700 Add missing break in switch 2018-05-16 17:43:03 +02:00
Christian Hohnstaedt
dc36728df8 Generate calender (.ics) files for certificate and CRL expiries
Also support consolidated calendar entries for a CA,
containing the CA, all issued certificates and the CRL expiry dates.
2018-05-10 12:49:59 +02:00
Christian Hohnstaedt
8d64db6be3 Const-ify remFromCont() 2018-04-24 23:10:46 +02:00
Christian Hohnstaedt
331b79bd9d Close #23: Improve limiting to pattern in certificate tree view
CA certificates that don't match the search pattern, but have
matching childs are shown disabled with internal name.
2018-04-22 07:06:31 +02:00
Christian Hohnstaedt
6e432238e7 Generalize, simplify and unify settings management
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
2018-03-10 09:04:54 +01:00
Christian Hohnstaedt
14421f4ed3 Update Issuer and Key name in the Certificate, Request and CRL details
after editing double-clicked element.
2018-03-05 07:46:11 +01:00
Christian Hohnstaedt
545c955616 Add "Primary key" column to show the items internal id
Especially helpful if you want to lookup the item
in the database manually.
2018-03-05 07:46:11 +01:00
Christian Hohnstaedt
d079dbde09 Collect affected items 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
0f582044e2 More transaction 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
491a01ed1f When signing a request note it in the request-comment 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
d36e6eb0cb Implement nested transactions.
The DbTransaction class automatically rolls back when the scope
is left (destructor) and no commit happenned.

Every transaction begin will increment the counter,
each commit/rollback will decrement it. Only if all transactions
finished with a commit, a final database commit will be performed.
2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
24d1f85a26 Make use of C++ templates for more type-safety 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
0745e18da2 Allow to edit item properties 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
0921b63763 Fix indentation error 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
431076c90e Change private key encryption in the database to PKCS#8 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
d50dbbd726 Create indexes 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
a545659e1a Add Source column, fix Revocation management 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
fbde63e98d Add Views and a concept of schema updates 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
fc7fc357ac Support opening remote databases MySQL and PostgreSQL 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
2a0a4630ae Extend authority table and fix CaProperties 2018-03-05 07:46:09 +01:00
Christian Hohnstaedt
4b3ee2c705 Switch database format to SQL(ite)
This is a large squash of many small commits.

Allow porting data from the legacy format to SQL.
Store Binaries base64 encoded and use db->transaction
Update password hash to be 8000 x SHA512 with 8 byte Salt
Add revocations table and fixup CRL generation
Add comment and insertion date columns

Fix column saving, remove trust, add XcaDialog
Allow changing the internal name and comment in Cert/Req details view
Extend Comment functionality, Replace About.ui by XcaDialog.ui
2018-03-05 07:42:36 +01:00
Christian Hohnstaedt
bdbaa0a946 Support Dragging certificates and other items as PEM text
Also dragging PEM test into XCA opens the import Dialog
2018-02-20 23:47:17 +01:00
Christian Hohnstaedt
cefb140601 Switch to Qt5 for Windows build and installation
Don't depend on htonl() and friends to avoid lwsock32
Fixup WIN32 define to use the Qt definition
2017-07-17 09:27:46 +02:00
Christian Hohnstaedt
22b441046a SF: #120 Crash when importing CA certificate for certificates which already exist
The QAbstractItemModel is simetimes called with column index -1
Catch those calls.
2017-07-12 19:35:21 +02:00
Patrick Monnerat
ad6c2baae5 Add support for OpenSSL 1.1.0
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.
2017-06-19 08:32:39 +02:00
PF4Public
c0130feafa Some pedantic edits 2016-04-09 06:40:39 +02:00
Christian Hohnstaedt
735a74f873 On unix use the default clipboard and mouse-selection for export 2016-01-16 07:34:21 +01:00
Christian Hohnstaedt
e5541c6d67 SF. Bug. #81 Make xca qt5 compatible
Extend XCA to also compile against Qt5
Remove directory from Qt includes
2015-09-17 18:42:42 +02:00
Christian Hohnstaedt
d55eb917e2 Silence compiler warnings about unused parameters 2015-08-11 07:17:56 +02:00
Christian Hohnstaedt
85d2a26aa9 Fix all fopen() calls to always use "wb" or "rb"
fix PKI item autodetection
Fix compiler warning because of a changed OpenSSL 0.9.8/1.0.1
  "PEM_load_bio()" API change
2015-05-20 13:14:21 +02:00
Christian Hohnstaedt
75a6d117f3 Refactor context menu
Better support multiple selections
 - Export all selected items into one PEM file
 - Batch Revoke/unrevoke/renew of many selected certificates
   of the same issuer
 - allow exporting templates as PEM

Add Feat. Reg. #83 Option to revoke old certificate when renewing

Always put all signed certificate to the newest CA.
If a CA certificate is renewed, all certificates issued by
the old CA are now shown as signed by the new one.
2015-05-17 09:17:04 +02:00
Christian Hohnstaedt
25a53441e9 Certificate export: Add option to export selected certificates to PEM or PKCS#7
Using the context menu only handles the current item.
This is now reflected by resetting the selection in case of
a context menu event
2015-04-15 08:41:29 +02:00
Christian Hohnstaedt
698c10216f Add option for disabling the very very legacy Netscape extensions
Maybe this setting will become the default in future releases....
2015-04-09 18:49:03 +02:00
Christian Hohnstaedt
f8f730d41a Support exporting SSH2 public key to the clipboard 2015-04-07 20:22:24 +02:00
Christian Hohnstaedt
67d270b9ae Consolidate Export dialogs 2015-04-06 00:04:35 +02:00
Christian Hohnstaedt
02d7856b74 Update version and copyright year 2015-02-19 09:06:55 +01:00
Christian Hohnstaedt
cde1293ae9 Improve table font.
- Use "Courier" as monospaced font for all columns
- Allow changing the font size by STRG +/-

Update changelog
2015-02-19 08:11:23 +01:00
Christian Hohnstaedt
f8b43a8db6 Improve list fonts and add SF link to the about dialog 2015-02-18 23:32:36 +01:00
Christian Hohnstaedt
690a9b4869 Add Row numbering for easy counting 2015-02-18 21:14:28 +01:00
Christian Hohnstaedt
a88b86ad9d Select the translation language via File menu 2014-11-20 20:14:25 +01:00
Christian Hohnstaedt
cb6dc4427d SF Feat. Req. #70 ability to search certificates
Add a Search line into the status bar to quickly
limit the view of items to those matching the
wildcard pattern case insensitive.
2014-11-19 09:15:19 +01:00
Christian Hohnstaedt
aaf9339eab Database hardening
- Delete invalid items (on demand)
- Be more tolerant against database errors
- Gracefully handle and repair corrupt databases
- Add "db_dump(.exe)" binary to all installations
2014-11-15 23:45:43 +01:00
Christian Hohnstaedt
b131e1d293 Consolidate more "established x509 terms"
like basic constraints, key usage and netscape-thingies
2014-11-14 22:54:35 +01:00
Christian Hohnstaedt
82bb0e9f33 Translate header and tooltips 2014-11-14 09:27:39 +01:00
Christian Hohnstaedt
9710a78592 First preparation of version 1.0.0
update changelog and documentation
avoid warnings about unused variables
2014-04-11 19:29:46 +02:00
Christian Hohnstaedt
8168ca5181 QMessageBox: protect against HTML parsing
The default message box displays the message as HTML
Don't do that.

Thanks to Artur Czyz (artur_czyz at wp.pl) for finding it.
2014-04-11 19:29:45 +02:00
Christian Hohnstaedt
38ed0b60b5 Update Copyright dates 2012-05-06 11:16:44 +02:00
Christian Hohnstaedt
f8c686d1df support warning colors for dates 2012-03-31 14:28:33 +02:00
Christian Hohnstaedt
1fd3aefc67 allow deleting certs, even if the token access failed. 2011-11-05 09:23:03 +01:00
Christian Hohnstaedt
323923f00c Add PKCS#11 library searching facility
Also fix dir-separator on W32
2011-07-20 07:21:31 +02:00
Christian Hohnstaedt
610a20d1f2 Add x509v3 extensions to the list of selectable columns
Requests and certificates can display the extensions in the table
and be sorted by them.

make the key identifiers display in numerical style
2011-06-21 22:06:39 +02:00
Christian Hohnstaedt
2502a0531f Feature Request [3286442] Make success/import messges optional 2011-04-30 07:53:39 +02:00
Christian Hohnstaedt
722c20a2b4 improve pasting PEM data 2011-04-30 07:53:39 +02:00
Christian Hohnstaedt
9f8ce9e9f8 Feature Request [3058195] Export directly to the clipboard
Add Export->Clipboard context menu item to
Certificates, Requests and CRLs
2010-10-01 06:46:22 +02:00
Christian Hohnstaedt
9f237b923c open database with 0600 permissions
also avoid unused varaibles
2010-08-26 06:39:30 +02:00
Christian Hohnstaedt
58a5557f96 don't allow duplicate key names 2010-08-19 18:36:42 +02:00
Christian Hohnstaedt
3bff3e630c don't throw an error if editing did not change anything 2010-08-10 21:55:48 +02:00
Christian Hohnstaedt
3a92d46362 fix crash during item-import
replace reference to the view by signals/slots
2010-08-05 07:22:00 +02:00
Christian Hohnstaedt
d9ade44a30 using /dev/null on windows does not lead very far .... 2010-08-04 22:18:33 +02:00
Christian Hohnstaedt
3bb40f477d fix column property management
remember size and autoResize for every column
use own dataformat for storage

add "internal name of the key" column for certs and requests
2010-08-04 08:23:19 +02:00
Christian Hohnstaedt
ced687be5b Improve column handling
right-align numeric columns and make them monospaced.
Save their current state in the database.
Also add column-menu to the other context menu

fix minor bugs

Support for "Unstructured Name" and "challange password" columns
	in the request-table
Support for name hash as used by OpenSSL to lookup certs.
	As table column and as distinguished name information
2010-08-01 06:50:49 +02:00
Christian Hohnstaedt
603cc7d9be Improve Columns of all Items Feature Request [849713]
Keys: Sort Keysize numerical
Certs: CA, fingerprints, start date (notBefore)
Crl: CRL number , Last update

Requests, Crls, Templates, Certs: All subject items and the full name
2010-07-30 06:54:14 +02:00
Christian Hohnstaedt
de851ed3a9 Changed all header includes to QT4 names and included the correct component name
By Andreas Piesk. Thanks!

adapt to HEAD since the patch is based on 0.6.4

drop qt4/Qt include in list of includes during configuration
2010-06-13 11:49:38 +02:00
Christian Hohnstaedt
e5783553c1 improve renaming items on the token
- use the list-edit functionality in the MultiImport dialog
   instead of an extra pop-up window
2010-05-17 06:51:32 +02:00
Christian Hohnstaedt
670c45e268 Update translation and messages
- extended russian translation by Pavel Belly
 - dropped approach to create sentences from different parts
   like "Successfully created %1 '%2'" with %1 being "the certificate"
   and %2 being the name. This leads to trouble for other languages.
   Therefore I decided to mention the whole sentences and accept
   the many, almost duplicated sentences.

 - Consolidate german translation:
   . Smart card/Smartcard -> Chipkarte
   . Besitzer -> Inhaber
   . Unterschriftsanfrage/Zertifikatsanfrage -> Zertifikatsantrag

 - Support translations for pki_*.cpp by adding Q_OBJECT
2010-05-17 06:51:24 +02:00
Christian Hohnstaedt
410ed8b091 update changelog and translation
- document special handling of translation for other translators
   (and me, when I forgot about)
2010-04-23 07:43:48 +02:00
Christian Hohnstaedt
f1c528fcc9 update copyright information 2010-03-11 07:13:48 +01:00
Christian Hohnstaedt
0230061855 replace allocated strings by QByteArray for datastorage 2010-03-08 07:50:08 +01:00
Christian Hohnstaedt
b02b25b168 fix initToken 2010-03-01 08:22:50 +01:00
Christian Hohnstaedt
d1f2b1cdba improve key-value tables
for "additional DN entries" and "SAN/CDP/AIA edit-boxes":
 - make type-selection a combobox
 - make rows reorderable
2010-02-26 08:14:54 +01:00
Christian Hohnstaedt
2b38e53cc3 add CKA_ID to stored certificates
- extend ID from 4 to 8 bytes
 - remove some debugging code
 - enable and test PIN and PUK changing
2010-02-24 00:51:40 +01:00
Christian Hohnstaedt
00eccfe98f add informational messageboxes
- for keys, requests, certificates, crls or templates
 - when successfully created or imported one.
2010-02-23 19:17:44 +01:00
Christian Hohnstaedt
345cdc1083 improve messages and usability
- update german translation
2010-02-21 16:24:00 +01:00
Christian Hohnstaedt
d362a9c51e add new Token-features
- 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
2010-02-17 07:20:18 +01:00
Christian Hohnstaedt
dbad217a9f improve file-dialog handling
- resize columns to fit to the longest entry
 - Ask once if an existing file shall be overwritten
2009-12-06 16:39:17 +01:00
Christian Hohnstaedt
838fb6924d add information to requests, wether they are already signed or not
- look for a certificate with the public key of the request
   to decide whether it is already handled or not.
2009-11-29 12:28:31 +01:00
Christian Hohnstaedt
fe8c2c2660 improve filename handling for databases
- allow "umlauts" and other non ASCII char in database filenames
   using the OS dependent handling QString2filename, using
   8Bit codepage encoding on Windows and UTF8 on linux and OS X
2009-11-25 09:06:22 +01:00
Christian Hohnstaedt
f82aad0c2a add support for Elliptic curve keys 2009-10-28 18:56:44 +01:00
Christian Hohnstaedt
66c7db0350 Start implementation of SmartCard support
- use PKCS#11
 - load keys and showing them works
2009-10-28 18:54:22 +01:00
Christian Hohnstaedt
92a13b34ea fix item export error-handling 2007-08-31 13:46:21 +02:00
Christian
8bfc1d1522 finalized PEM import 2007-08-27 18:44:19 +00:00
Christian
eefbf7efde Merge branch 'qmake'
Conflicts:

	lib/func.cpp
	lib/func.h
	lib/pki_base.h
	lib/pki_x509super.h
2007-04-29 23:57:57 +02:00
Christian
c2018c0e58 - fix segfault
- switch string handling to UTF8
2007-04-29 18:48:17 +02:00
Christian
8283d8e7b9 replace copyright notice in source files
(copyright and licence itself remain unchanged)
fix configure to set Qt include dir
code justifying
2007-04-12 12:25:28 +02:00
Christian
d4a90be207 replace "include <Qt/" by "include <" 2007-04-11 11:19:22 +02:00
Christian
1e0f318554 Release 0.6.1
minor documentation updates
2007-04-05 11:55:22 +02:00
Christian
d0f3672798 - add undelete feature for deleted items
- fix database shrinking of curent db during opening of new db
2007-02-05 22:17:22 +01:00
Christian Hohnstaedt
b586043343 remove superflous question when deleting 0 items 2007-01-31 13:22:04 +01:00
Christian
612415a422 fix default pathname setting
add clicklabel for request key
remove debugging output
2007-01-31 01:09:19 +01:00
Christian
e7b96a4245 fix click-label functionality
unify showItem()
fix NewX509.ui
2007-01-29 23:10:58 +01:00
Christian Hohnstaedt
b98569e169 Switch to static QFileDialog functions
to call the native dialogs on windows an Mac OS
2006-12-21 16:18:54 +01:00