Commit Graph

222 Commits

Author SHA1 Message Date
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
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
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
ed53777e78 Fix compiler warnings
clang version 3.8.0-2ubuntu4
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)
2018-10-25 16:43:19 +02:00
Christian Hohnstaedt
bdfa10d4d5 Close #45: Unable to view Public Key
Allow displaying the public key of a certificate
or request without importing it.

When importing certificates or CRLs,
display the issuer if it exists in the database.
2018-07-01 14:58:23 +02:00
Christian Hohnstaedt
b362ae3593 Const-ify dbheader in column_data() and getIcon() 2018-04-25 09:34:45 +02:00
Christian Hohnstaedt
b74642fa09 Const-ify QSqlRecord of restoreSql() 2018-04-24 09:34:34 +02:00
Christian Hohnstaedt
6f85548c07 Drop getClassName() 2018-03-30 14:38:09 +02:00
Christian Hohnstaedt
2c20bd109a Constify and Pure-Virtual pki_base and derived classes 2018-03-30 14:38:09 +02:00
Christian Hohnstaedt
6cf72a38e0 Remove superflous function and mark decryptKey as pure virtual 2018-03-30 14:38:09 +02:00
Christian Hohnstaedt
139d8509b4 Fix crash during PKCS#12 export
initialize property variable "key"
and duplicate the sqlItemId to enable access to the private key.
2018-03-12 21:06:21 +01:00
Christian Hohnstaedt
c2007a13ee Minor fixes: Store token in DB, Load settings, 2018-03-06 09:02:06 +01:00
Christian Hohnstaedt
d079dbde09 Collect affected items 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
431076c90e Change private key encryption in the database to PKCS#8 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
00145600a7 Improve usecounter performance 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
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
eaabb2a28d SF Bug #110 Exported private key from 4096 bit SSH key is wrong
Actually, it just differs. It is PKCS#8 instead of PKCS#1
2018-01-06 21:18:31 +01:00
Christian Hohnstaedt
dda100c100 OSSL 1.1 vs. 1.0: Private keys 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
PF4Public
c0130feafa Some pedantic edits 2016-04-09 06:40:39 +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
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
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
874daf4cd0 SF Feat. Req. #81 Show key size in New Certificate dialog 2015-04-03 14:52:39 +02:00
Christian Hohnstaedt
02d7856b74 Update version and copyright year 2015-02-19 09:06:55 +01:00
Christian Hohnstaedt
70b4f42f36 Fix SSH2 public key output
If the MSB of the first octet is 1, a 0 must be prepended
2015-02-18 07:31:22 +01:00
Christian Hohnstaedt
871e12883b Fix SSH public key export 2015-02-17 22:58:55 +01:00
Christian Hohnstaedt
8852b7c2ba Support exporting public key in SSH2 format 2015-02-17 21:03:00 +01:00
Christian Hohnstaedt
e69bb319a0 Support importing SSH2 public keys 2015-02-17 19:34:39 +01:00
Christian Hohnstaedt
fa4085611c Add support for SHA-224 2015-02-13 09:41:10 +01:00
Christian Hohnstaedt
8aa5141078 Optionally allow hash algos not supported by the token
Especially EC and DSA signatures are only defined
with SHA1 in PKCS#11 v2.20 spec
2014-11-13 20:10:18 +01:00
Christian Hohnstaedt
75861d275b Translation updates 2014-11-02 11:21:41 +01:00
Christian Hohnstaedt
1f61d8d760 Make 2 missed phrases translateable 2014-11-01 19:11:41 +01:00
Christian Hohnstaedt
40f33d37f0 SF Feat. Req. #76 Export private keys to clipboard
Before exporting the private key an acknowledge is
required. Here you may opt to only export the public key.

While at it, display the internal Name in export dialogs
2014-11-01 18:51:39 +01:00
Christian Hohnstaedt
30ca37a427 Fix Segfault when loading EC keys with unknown curve 2014-11-01 10:03:06 +01:00
Christian Hohnstaedt
928b70b683 EC Keys: show Curve name in table 2014-10-31 22:25:46 +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
ea832c6654 Refuse signing with ECC token as long as it does not work 2014-10-31 00:17:19 +01:00
Christian Hohnstaedt
38ed0b60b5 Update Copyright dates 2012-05-06 11:16:44 +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
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
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
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
fd776644ac improve error messages 2010-07-24 22:17:52 +02:00
Christian Hohnstaedt
9085ecbd4e More support for public keys
Extract public key from cert and request
Show public keys in requests- and cert-details in red
Allow using public keys for certs. Useful if not selfsigning
2010-07-22 06:57:32 +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
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
825fea569d improve token handling
- 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
2010-02-28 10:31:53 +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
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
bd90901c10 change filename handling to support UTF8 names 2009-11-24 19:16:25 +01:00
Christian Hohnstaedt
f802de1db5 catch errors during card import
- improve reading of CKA_ID and support CKA_IDs longer than 1 byte
 - lib/Makefile pki_base has no Q_OBJECT
2009-11-12 08:14:15 +01:00
Christian Hohnstaedt
0aced7f2c4 improve Smart-card handling
- 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>
2009-11-11 22:58:34 +01:00
Christian Hohnstaedt
48f59e9d1a support for PIN changes of Smart card tokens. 2009-11-01 19:41:29 +01:00
Christian Hohnstaedt
7fe7a06c7b merge Scard details and key details 2009-10-30 08:18:16 +01:00
Christian Hohnstaedt
dcf0c83b35 support smart card import
- import keys and certificates from a smart card and
   show them in an importMulti dialog
 - support exporting the public from smart card
2009-10-29 18:54:08 +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
6aed17386b look closer at errors 2009-09-10 07:58:38 +02:00
chris
ab5b066198 change the hashing of the default password.
- This means that any database opened by this version can't
   be used  properly by older versions
 - Opening older databases immediately rehashes the password
   an makes it unusable for older XCA versions.
 - Opening newer databases with old XCA versions won't hurt,
   it just does not work properly
2008-02-04 22:08:29 +01:00
Christian Hohnstaedt
92a13b34ea fix item export error-handling 2007-08-31 13:46:21 +02:00
Christian
66876dd880 more PEM import 2007-08-23 20:31:46 +00:00
Christian Hohnstaedt
4ed20f5819 add pki_multi for multiple pki items. 2007-08-23 18:57:22 +02:00
Christian Hohnstaedt
deec9eb993 Minor changes
- Add predefined templates to the list of templates
 - fix extension duplication bug in post 0.6.3 release
 - change Password dialog text properties
 - remove unused/duplicate code in lib/pki_key.cpp
2007-08-13 13:53:30 +02:00
Christian
cab27442ce whitespace correction 2007-05-23 23:24:31 +02: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
34227bf680 fix some warnings 2007-04-25 20:12:24 +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 Hohnstaedt
fa92c4c31f improve error handling and error messages during the load
of items. Also fix some fd and memory leakage.
2007-02-12 16:26:15 +01:00
Christian
c35ec0d23a - move hash algo into signer box [ 1656260 ]
- make QA serial a compile time option
 - fix and enable QA serial
 - code styling
2007-02-11 12:39:09 +01:00
Christian
5c21c9be24 fix compiler warning 2007-01-31 00:06:33 +01:00
Christian
8427a6e6fb add clicklabel-support for CRLs
fix possible segfault for uninitialized database password
2007-01-31 00:02:37 +01:00
Christian
fd7d05dc65 fix default extension of templates to be xca
remove unneeded printfs
2007-01-04 23:57:15 +01:00
Christian
9012225995 readd old commit 2007-01-01 20:33:08 +01:00
Christian
c49e75077b minor fixes 2006-12-29 10:58:57 +01:00
Christian
0013bc561c Fast fix for openssl 0.9.8 2006-12-19 23:36:16 +01:00
Christian
f57b110765 Merge branch 'master' of tweety:src/xca 2006-12-19 23:28:40 +01:00
Christian
5ff712e419 Fix status message
Fix Tree/plain view
Fix decryption of keys
2006-12-19 23:00:44 +01:00
Christian Hohnstaedt
141f0e0218 Fix uninitialized/Null pointer segfault 2006-12-13 21:37:36 +01:00
Christian
64333cff30 fix SPKAC import
set x509 extension viewer Read only
resort Tab order in NewX509
fix Key-repass error
2006-12-08 23:26:52 +01:00
Christian Hohnstaedt
ee08c20214 Fix Public key issues
- don't show password change in menu
 - show "No password" in list
 - decrypt key by copying the Public

Fix multi-import and don't abort on error
2006-12-08 17:12:51 +01:00
Christian Hohnstaedt
606ebf01c3 fix image of CRL export
add Key column showing the key-password state
use enum for key-state
Fix focus for password dialogs
Resize columns after item loading
2006-11-30 18:14:24 +01:00
Christian Hohnstaedt
b3cece8ef3 unify password lengths 2006-11-28 13:42:18 +01:00
Christian Hohnstaedt
6f3932983a Fix for gcc4
delete my bogus default password
2006-11-28 13:12:22 +01:00