Commit Graph

277 Commits

Author SHA1 Message Date
Christian Hohnstaedt
c1189b0ff4 Add private key icon to the key name
in the certificate and request table
2018-07-06 06:05:40 +02:00
Christian Hohnstaedt
40b6a00840 Retranslate Searchbox placeholder text when switching language 2018-03-31 07:42:48 +02:00
Christian Hohnstaedt
ac02da8631 Fix opening, importing and dropping databases 2018-03-15 21:48:53 +01:00
Christian Hohnstaedt
ff25461d7a Fix legacy database-without-password import 2018-03-12 16:01:57 +01:00
Christian Hohnstaedt
421ab5840a Minor bugfixes: PostgeSQL does not like setting an integer to "true"
Display renamed request in the NewX509 dialog correctly in the dropdown
2018-03-10 10:45:03 +01: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
484eca6f39 Simplify Index file creation and document it. 2018-03-08 06:15:28 +01:00
Christian Hohnstaedt
c62339e1ce Adapt Certificate Index creation to the new database capabilities 2018-03-07 23:00:58 +01:00
Christian Hohnstaedt
21bd5f0ee4 Support Remote database name on the commandline 2018-03-05 07:46:11 +01:00
Christian Hohnstaedt
6dcac9d571 Fix password query during database opening 2018-03-05 07:46:11 +01:00
Christian Hohnstaedt
84e4301f6d Tell the user if the SqLite driver is missing 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
a3900b1473 Several fixes for templates, key encryption etc. 2018-03-05 07:46:10 +01:00
Christian Hohnstaedt
e1b982a346 Replace printf by qDebug 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
4598ddb4de Convert QByteArray.base64() to QString before writing it to the DB 2018-03-05 07:46:09 +01:00
Christian Hohnstaedt
a75eb6ebd8 Avoid LastInsertID 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
eb6382d6aa Remove SPKAC support. Netscape is not of this world anymore.
I discovered some bugs in SPKAC handling and fixing them was hard.
Because of this bugs noone may have used the feature in the past.

Remove it.
2018-02-13 11:47:21 +01:00
Christian Hohnstaedt
3f35cdccf8 Cleanup the OID text files, remove senseless aia.txt
- Remove all aia.txt from the Code, Documentation and ToolTip
- Add an Operating system dependent help hint
- Replace unix LF by DOS CR-LF for windows installation
2018-02-01 00:05:40 +01:00
Christian Hohnstaedt
0ba41583fb SF Bug #109 Revoked.png isn't a valid image
It was unused and did not harm. No functional/optical impact.

Delete image and all ist references
2018-01-06 21:17:15 +01:00
Christian Hohnstaedt
5409a71624 Fix starting xca with a database as first arg: "xca db.xdb"
This is used when double clicking a database.
2018-01-06 08:17:01 +01:00
Christian Hohnstaedt
2bced828de Translation: Re-translate the OID resolver in case of a language change 2017-11-17 09:06:56 +01:00
Patrick Monnerat
f4f1c72173 Silence a gcc7 warning (-Wimplicit-fallthrough) 2017-11-14 21:50:58 +01:00
Christian Hohnstaedt
f9f6647738 Add Placeholder text "Search" to th search input at the bottom
Users asked how to search for items and it became clear that the use of
the input field is not clear enough.
2017-10-25 10:17:51 +02: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
f12c3ca8aa Improve Copy&Paste behavior: Accept Ctrl-V and MousePaste on MainWindow 2017-07-15 06:51:37 +02:00
Christian Hohnstaedt
ac780d3e77 Fix PEM_BIO loading by using QByteArray instead of BIO and fmemopen 2017-07-15 06:51:37 +02:00
Christian Hohnstaedt
5fbd102493 Fix for MacOS X builds 2017-07-15 06:51:37 +02:00
Christian Hohnstaedt
d14b3bf5ed OSSL 1.1: Windows does not know "fmemopen()" 2017-06-19 09:52:33 +02:00
Christian Hohnstaedt
9d2ed957dd OSSL 1.1 vs. 1.0: Purge BIO_QBA_mem_buf() 2017-06-19 08:33:29 +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
Adam Dawidowski
0d34bc1c1c Extend generating an OpenSSL "index.txt"
Updated patch adds another export option automating the creation
of multiple index.txt files to be used with multiple ocsp responders.

New export option is available via command line (-I index.txt) and
the Extras menu (Extra->Export Certificate Index hierarchy).

The option causes the creation of an index.txt file containing
index records for all the children certificates of a parent.
The filenames are generated using the supplied name as prefix
and append a dot and the simplified Internal Name
(the Internal Name stripped of non-alphanumeric characters except underscores).
2016-09-06 20:03:55 +02:00
PF4Public
c0130feafa Some pedantic edits 2016-04-09 06:40:39 +02:00
Adam Dawidowski
e94e9133b1 Support generating an OpenSSL "index.txt"
XCA currently lacks support for generating an index.txt.
Such a file gets created and maintained when using CA
features in openssl. As mentioned here:
https://sourceforge.net/p/xca/discussion/209946/thread/6cbc727c/#2310
such a file can be used by Openssl's built-in OCSP responder.
Additionally, it can be used for configuring a cron job for
reminding of certificate expiration.

Certificate index export is added in 3 places:
 - command line (-i index.txt),
 - the Extras menu (Extra->Export Certificate Index) and
 - the selected file(s) export option in the context menu
   on the Certificates tab (Export->File, Export Format:
    Certificate Index file).

Please note that SubjectDN generated by this feature has
different formatting than the one generated by openssl.
2016-04-09 06:40:39 +02:00
Christian Hohnstaedt
fa38a21a04 Merge Release 1.3.2 based fixes from Tino Mettler and Christohper Knadle 2016-02-11 09:09:51 +01:00
Christohper Knadle
2f3a1de7ac Fix spelling errors found by lintian packge checker 2016-02-11 09:08:38 +01: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
6ac9389361 Make OID resolver Non-modal and let other widgets display details
- column items with context menus
 - double-click labels of the DN and X509v3 extensions
2015-10-01 13:39:11 +02:00
Christian Hohnstaedt
78e4207f2e Fix database password change on Windows
Reimplementing the simple unix "mv" command on Windows is PITA!

Renaming an open file -> Error!
Renaming to an existing file -> Error!
Atomicity: No
2015-09-23 10:42:05 +02: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
29543979e9 Refine export dialog, seed prng berfore DH parameter generation 2015-07-04 05:48:11 +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
5f2b3fd63a Change wording 2015-05-19 13:21:28 +02:00
Christian Hohnstaedt
1aab8f1fe9 Fix database password change function 2015-05-19 11:13:47 +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
90f351b2cb Refactor CRL handling 2015-04-20 18:25:59 +02:00
Christian Hohnstaedt
2909e79317 Move entropy functions into new class
Read and write .rnd file during start and exit
2015-04-08 06:54:55 +02:00
Christian Hohnstaedt
d26f71bf63 Workaround for Mac OSX database drop on XCA
OSX EventDispatcher bug for drag and drop events
https://bugreports.qt.io/browse/QTBUG-29701
2015-04-06 14:19:10 +02:00
Christian Hohnstaedt
1138dad902 SF Bug #102 Weak entropy source used for key generation
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.
2015-04-06 14:19:10 +02:00
Christian Hohnstaedt
0f543c5a74 Resize view in case of font change 2015-02-20 11:22:33 +01: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
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
dcd940b6b8 SF Feat. Req. #57 More options for Distinguished Name
Make explicit DN subject entries configurable
per database.
2014-11-12 22:19:44 +01:00
Christian Hohnstaedt
8ed9bab7df Support EC key generation on PKCS#11 token
move EC builtin sources into extra class and file
2014-10-31 00:23:39 +01:00
Christian Hohnstaedt
85d9a1ec29 SF Bug #82 Certificate Creation out of Spec
Fix certificate renewal for DSA-with-SHA256
and ECDSA-with-sha256/384/512
by adding those aliases for looking up the correct digest
type by signed certificate.
2014-10-31 00:16:03 +01:00
Christian Hohnstaedt
2bc49fe82f Improve Dropping items onto XCA on MAC OSX 2014-04-13 12:11:16 +02: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
c28c15495d SF FeatureReq. #73 Add further EC curves supported by OpenSSL
Add support for NID_wap_wsg_idm_ecid_wtls1 - 12 curves
Add support for BrainPool curves if openssl version >= 1.0.2 beta1
2014-04-11 19:29:46 +02:00
Christian Hohnstaedt
df78e4380e SF Bug #87: Unable to set default key length
Added a "Remember as default" checkbox to the key input dialog.
The default key size is now 2048 for RSA and DSA keys.
2014-04-11 19:29:45 +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
David von Oheimb
9507a6a154 Add more EC curves
Since OpenSSL supports a couple of more EC curves
than currently selectable by XCA.

Signed-off-by: Christian Hohnstaedt <chohnstaedt@innominate.com>
2013-11-22 16:27:50 +01:00
Christian Hohnstaedt
38ed0b60b5 Update Copyright dates 2012-05-06 11:16:44 +02:00
Christian Hohnstaedt
e38dd7758f fix support for MAC OS X 2012-05-06 11:16:41 +02:00
Christian Hohnstaedt
a9b5caa0bc Bug #3461403 Error when create certificate with CRL distribution point
become more userfriendly:
 - by indicating the validity with an appropriate
   icon in front of AIA, SAN IAN and CDP.

 - by checking the validity before creating the real certificate.

 - by improving the edit button, to automatically add an "URI"
   as type, if the type is missing, or is for example "http"
2012-04-01 12:41:43 +02:00
Christian Hohnstaedt
5f4d3e1084 Bug #3485139 Exception when creating certificates in passwordless db
Fix key decryption in case of an empty password.
Use "" instead of NULL for EVP_BytesToKey()
2012-03-31 14:28:37 +02:00
Christian Hohnstaedt
1a3a417bb6 cleanup after closing a db and reset settings before opening it
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.
2011-07-15 07:18:18 +02:00
Christian Hohnstaedt
6cd878133b improve paste-PEM import 2011-06-22 07:12:24 +02:00
Christian Hohnstaedt
642295dc88 update docs and DH parameter label 2011-05-02 06:56:43 +02:00
Christian Hohnstaedt
722c20a2b4 improve pasting PEM data 2011-04-30 07:53:39 +02:00
Christian Hohnstaedt
b622e64209 consolidate Password and Pin input dialogs
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
2011-04-30 07:53:26 +02:00
Christian Hohnstaedt
257641be16 improve DH parameter message 2011-04-26 06:33:59 +02:00
Christian Hohnstaedt
84998b6ca3 reduce overlong filenames
Thanks Andreas Piesk
2011-02-02 18:12:38 +01:00
Christian Hohnstaedt
49543a322d improve password dialogs 2011-02-01 19:20:30 +01:00
Christian Hohnstaedt
00f1bbb5b3 Make EC parts of XCA depend on OpenSSL config
Some distributions ship an OpenSSL installation without
EC Support.
XCA evaluates the OPENSSL_NO_EC flag to disable EC

Thanks to Andreas Piesk for his patch
2011-01-06 07:01:29 +01:00
Christian Hohnstaedt
4c58c5f4c0 Minor typo: remove duplicate '/' 2010-10-01 06:46:08 +02:00
Christian Hohnstaedt
23ad77b6f0 Support multiple PKCS#11 provider 2010-08-11 23:12:48 +02:00
Christian Hohnstaedt
d34cc82e1f avoid the need of pkcs11 engine
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.
2010-08-10 21:58:51 +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
836a8a4c15 keep compatibility to QT 4.3.0 2010-07-16 08:15:22 +02:00
Christian Hohnstaedt
fb62b3aba8 Change default string encoding
Now by default it uses Printable string and only if
the value can't be encoded as printable string it will use
UTF-8 instead.
2010-07-15 20:54:23 +02:00
Christian Hohnstaedt
8cda76cb1f Show the name of the database when asking for the password 2010-07-03 08:05:37 +02:00
Christian Hohnstaedt
ef9207a073 tell the user about non-importable data 2010-06-23 07:13:26 +02:00
Christian Hohnstaedt
d9c3661608 Tell user about illegal files
Tell the user about any files that did not contain any crypto items
2010-06-19 14:28:25 +02:00
Christian Hohnstaedt
3524b024e9 Support Drag and Drop
Add eventhandler for file-open events.
This happens when opening a database or
other item with XCA in the Finder

Dragging an item onto the mainwindows shows the item and imports it
if desired
2010-06-17 20:48:38 +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
58e8b37a61 exit application if commandline import is aborted 2010-05-17 07:14:41 +02:00
Christian Hohnstaedt
9ecf9e001a update commandline option documentation 2010-04-10 12:13:13 +02:00
Christian Hohnstaedt
8e51ef479a note non-existing files mentioned on command line 2010-04-10 11:31:21 +02:00
Christian Hohnstaedt
929fed6c36 remove debugging code 2010-04-09 07:49:21 +02:00
Christian Hohnstaedt
3594482299 enable cancel button during renaming items and initializing tokens 2010-04-09 07:22:21 +02:00
Christian Hohnstaedt
8688365e33 minor improvements 2010-03-27 13:04:27 +01:00
Christian Hohnstaedt
984798659c add DH param generation 2010-03-24 08:08:18 +01:00
Christian Hohnstaedt
01c8b89edd autoimport from cmdline 2010-03-22 21:21:21 +01:00
christian
a6dcd841c2 manage token: delete from this token 2010-03-14 09:34:25 +01:00