Commit Graph
62 Commits
Author SHA1 Message Date
Miklos Vajna 4bb67227c1 xmlsecurity: create XMLElementWrapper instances with a constructor
Change-Id: I0fe7d0a21b0ea35b537466316a637a0a46c52fe5
Reviewed-on: https://gerrit.libreoffice.org/50601
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-03-02 08:07:52 +01:00
Caolán McNamara 7bcb105a9d coverity#1427630 Unchecked return value
Change-Id: If92d5b080ce9a4e28fe15da1448f74ecf0a31257
2018-01-17 13:32:35 +00:00
Stephan Bergmann e5262ed74d More loplugin:cstylecast: xmlsecurity
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files

Change-Id: Ica6e96072435aa4df4e74accdfe06f798a640bbe
2018-01-12 20:08:53 +01:00
Thorsten Behrens 1e12447f7e gpg4libre: return key fingerprint / hashes including null character
Change-Id: I6b32444bab6848e2b5ddec02fd949c71114a66b2
2017-12-07 18:21:02 +01:00
Miklos Vajna ebfa646537 xmlsecurity: fix loplugin:salcall warnings
Change-Id: Ic2df4e402ce1e855fbf9d9f6d8a37e664d0110c7
2017-12-06 16:04:04 +01:00
Katarina Behrens 1c58b047d1 Restore GPG SEInitializer service
user config now needs it to collect user's private GPG keys

Change-Id: Ia4ad4133b621160cf37281750cafa9f3c5c3c231
Reviewed-on: https://gerrit.libreoffice.org/45562
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-12-06 12:26:40 +01:00
Noel Grandin c0ac78c971 loplugin:salcall handle virtual methods
Change-Id: Iab95db31188ea2914a46d63a7ebef3d825e6ec42
Reviewed-on: https://gerrit.libreoffice.org/45851
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-06 07:42:50 +01:00
Thorsten Behrens 5daa364922 gpg4libre: add gpgme config header where gpgme.h is included
Also pull in config_lgpl.h in that case.

Change-Id: Iae4e56ee8023066581c562c66305875a0fe15f37
Reviewed-on: https://gerrit.libreoffice.org/45809
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-12-05 02:04:46 +01:00
Stephan Bergmann 68cf1dc0fc Silence clang-cl -Werror,-Wundef in workdir/UnpackedTarball/gpgmepp/ includes
> workdir/UnpackedTarball/libgpg-error/src\gpg-error.h(709,5):  error: '__GNUC__' is not defined, evaluates to 0 [-Werror,-Wundef]
> #if __GNUC__
>     ^
> 1 error generated.

Change-Id: Icae46745069431e60faa7d2e6ca44ab800e72b95
Reviewed-on: https://gerrit.libreoffice.org/45341
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2017-11-27 23:05:56 +01:00
Thorsten Behrens 17c7d87643 gpg4libre: fix warnings
This code was not previously built on Windows

Change-Id: I9394907f143d862f40c95672f4e3398b65b7bd2c
Reviewed-on: https://gerrit.libreoffice.org/45091
Reviewed-by: Siegmund Gorr <siegmund.gorr@cib.de>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-11-22 17:57:56 +01:00
Stephan Bergmann 35a2b55a13 loplugin:includeform: xmlsecurity
Change-Id: I9c3eca51fec52a255fcf280fe4e5ecc2ebbee5f3
2017-10-23 22:45:46 +02:00
David Tardon 8c9cfba677 fix build with system gpgme
Change-Id: I00e6d6ce476adbd22bcfb4eb55d4db4194f4bc92
2017-10-19 09:04:33 +02:00
Thorsten Behrens 087a90e27b gpg4libre fix tdf#113190 don't show expired/invalid keys
Change-Id: I30485bc97d3d287bd867b50398927eabe018914b
Reviewed-on: https://gerrit.libreoffice.org/43502
Reviewed-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-10-18 15:07:11 +02:00
Thorsten Behrens 7b00829e27 gpg4libre - tdf#113188 add option for minimal PGPKeyPacket
Change-Id: I660e68074616f6953e6527e40ec22276ce8ef2fb
Reviewed-on: https://gerrit.libreoffice.org/43492
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-10-18 15:06:07 +02:00
Katarina Behrens 9c165fe308 gpg4libre: When encrypting, show all available GPG keys
(not only private ones)

Change-Id: I3fd248f4cace1ea248267d5696da9cb70940744e
Reviewed-on: https://gerrit.libreoffice.org/41508
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-09-03 01:10:11 +02:00
Katarina Behrens 53be53b35e gpg4libre: Import public key payload if verification result != valid
it is essential to look closer at the results of verification (code
doing that was removed by commit bdbebda1d8) to be
able to proceed with importing public key payload from the file if
needed

I've also killed one more instance of xmlStrlen being used on binary
data

Change-Id: I8cd45fe963c8dde91727471ddbebe6943374a121
Reviewed-on: https://gerrit.libreoffice.org/40066
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-07-17 18:10:57 +02:00
Thorsten Behrens 40f1812075 gpg4libre: use full SHA1 hash for key identification
Read and write full 20 bytes/40 hex chars of SHA1 key hash,
instead of some abridged versions. See also
https://lists.debian.org/debian-devel/2016/08/msg00215.html

Change-Id: I741afc94ac7cf559880fe55ff02420723e13310d
Reviewed-on: https://gerrit.libreoffice.org/40027
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-07-17 02:40:31 +02:00
Thorsten Behrens c1bd6f9bb4 gpg4libre: unconditionally use binary IO
Regardless of changing gpgme defaults, we don't want
ascii armor anywhere.

Change-Id: Ic1e80e134b8f24d05d6549ef19c5a82220718f1f
Reviewed-on: https://gerrit.libreoffice.org/40022
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-07-17 01:21:28 +02:00
Thorsten Behrens 59960eab53 gpg4libre: search for _all_ local keys in getCertificate()
Otherwise, newly-imported ones will not show up, which is
bad when trying to figure out how much we trust a key in
DocumentDigitalSignatures::ImplVerifySignatures()

Change-Id: I771cf71b5e0ddb5cc76db94d7ada4c5291fe56f1
Reviewed-on: https://gerrit.libreoffice.org/40023
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-07-17 01:20:57 +02:00
Samuel Mehrbrodt bdbebda1d8 tdf#108831 PGP signature shown as invalid
It was valid, but not trusted.
We need to show the owner trust in another place.

gpg4libre

Change-Id: I344a7b064a22c16b647c73d52f7abd91cfc86be9
Reviewed-on: https://gerrit.libreoffice.org/39826
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-07-14 17:12:57 +02:00
Samuel Mehrbrodt 06929219ae gpg4libre: Show whether pgp keys are trusted or not
Owner trust levels considered valid keys:
  Marginal
  Full
  Ultimate

Owner trust levels considered invalid keys:
  Unkown
  Undefined
  Never

Change-Id: I7338b587acfd105ca24e40b45960cea8d2c04ded
Reviewed-on: https://gerrit.libreoffice.org/39952
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-07-14 17:11:26 +02:00
Katarina Behrens 02bb4ebf2b gpg4libre: Don't use xmlStrlen on binary data
Odd things happen inside gpgme if the buffer is prematurely
truncated due to \n char and valid signature is then evaluated
as invalid

Change-Id: I24d4d22af06a3dde6eb7fdfc12953cf1b5f19c1e
Reviewed-on: https://gerrit.libreoffice.org/39945
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2017-07-14 15:24:08 +02:00
Samuel Mehrbrodt 9a884b3d05 gpg4libre: Don't call production code inside an assert()
Won't work in non-debug builds

Change-Id: I64f9c416890ddd02ec8efc0f59ded145cc17896a
Reviewed-on: https://gerrit.libreoffice.org/39345
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2017-06-28 11:11:34 +02:00
Samuel Mehrbrodt 0d7b437260 tdf#108794 gpg4libre: Use key id to get the right key
Change-Id: I5950d192e19e652cbb7680db426bfbd28907a1cb
Reviewed-on: https://gerrit.libreoffice.org/39308
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2017-06-28 09:39:29 +02:00
Thorsten Behrens 2274deda01 gpg4libre: import public key payload if initial validation fails
Since maybe we don't know the key yet?

Change-Id: I8b7e3f472d4731d9fb8bb675d81bdad257aa9230
Reviewed-on: https://gerrit.libreoffice.org/39194
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-06-25 01:33:36 +02:00
Thorsten Behrens 72e7cfd776 gpg4libre: save some space, extract binary key/sign data
Since callers will base64-encode this anyway, again

Change-Id: I0962d102fa0f2b95eaa2e608539cc291125f0321
Reviewed-on: https://gerrit.libreoffice.org/39193
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-06-25 01:32:13 +02:00
Thorsten Behrens 52b3ae1c08 gpg4libre: base64-encode and decode SignatureValue
which xmldsig-core actually requires

Change-Id: I92a6e192865919d844009be042dad36106a19fc8
Reviewed-on: https://gerrit.libreoffice.org/39192
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-06-25 01:30:54 +02:00
Thorsten Behrens 879fea59a0 gpp4libre: error handling, proper key extraction
Change-Id: I1cb219f825393309219a4ebfb406482050b91228
Reviewed-on: https://gerrit.libreoffice.org/39191
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-06-24 18:13:47 +02:00
Samuel Mehrbrodt 9073a347f1 XMLSignature_GpgImpl: Use cppu::supportsService
Change-Id: Ic093462c957aa445aab43f95ac22af3a3df1d709
2017-06-23 12:36:11 +02:00
Samuel Mehrbrodt e2fc3f0fb5 XMLSignature_GpgImpl: Clean up namespaces
Change-Id: I34aa59171b5d440bdd6bdec80badf7a3eb42bd3f
2017-06-23 12:36:11 +02:00
Samuel Mehrbrodt 80bb0a4fe8 Gpg key listing: Use range based for loop
Change-Id: Idc7b39f751b2572f5ddd077aaad86a1f7b4b9a5d
2017-06-23 12:36:10 +02:00
Samuel Mehrbrodt 91ffe409e3 tdf#108692 gpg4libre: List all gpg keys
Change-Id: I7300da36215233fa91b7a04a42b1c9bf907ad78b
2017-06-23 12:36:10 +02:00
Samuel Mehrbrodt 7add9c24af gpg4libre: Handle error when retrieving public key
Change-Id: I9543e47fb3302a5ca146a606305b24733f015a5d
2017-06-23 12:36:10 +02:00
Miklos Vajna 6025b2b2e2 xmlsecurity: fix loplugin:unusedvariablecheck warning
Change-Id: Ia59a1f00203fbbaad6df460c7cba4a984e206a1c
2017-06-22 09:02:44 +02:00
Thorsten Behrens b962b047b0 gpg4libre: actually take key from user selection
Change-Id: I6b18865913492d41a8e0206a430e267fe78c553a
2017-06-21 22:16:56 +02:00
Thorsten Behrens ba53bd4e72 gpg4libre: make signature impl swappable in-situ during validation
Sadly we only know whether its a OpenPGP or X509 signature during
parsing, so we need to switch the implementation mid-way

Change-Id: Ib48a9da0105de62cfecda095df8c154b59ba8c40
2017-06-21 22:16:56 +02:00
Thorsten Behrens 4ddb2f716f gpg4libre: some code improvements, add metadata for OpenPGP keys
Change-Id: I1beb692b9a9a34b5f0cf743ba9e4a145ac582184
2017-06-21 22:16:56 +02:00
Thorsten Behrens 891d4b5d91 gpg4libre: write PGPData info, get more metadata out for gpg key
Change-Id: Ia560869ec02fca7fe4219136e1fe939e13f1e4c2
2017-06-21 22:16:55 +02:00
Samuel Mehrbrodt ed92db7a50 gpg4libre: Init xmlsec in one place before creating the gpg/x509 services
Change-Id: I0308d586344b5e52ad327f6650b62ac0eac7ecb9
2017-06-21 22:16:55 +02:00
Katarina Behrens bb06a106aa gpg4libre: [API-CHANGE] add certificate kind (X509 vs. OpenPGP)
Change-Id: I423bef41f93af9d1b78ee9795be7ec33c3c7ae0c
2017-06-21 22:16:55 +02:00
Thorsten Behrens d6f8b03487 gpg4libre: now use the gpg security env
Change-Id: I84e4d6872aab27f5b11ec727787a2eab80ef6a66
2017-06-21 22:16:55 +02:00
Thorsten Behrens be197b089a gpg4libre: fix build, explicit ctor call
Change-Id: Iec7ca4e37d6f5c4f63aaa22acfa0bdd395747471
2017-06-21 22:16:55 +02:00
Samuel Mehrbrodt 9b8197ab0d gpg4libre: Make signature dialog work with two signing services
Change-Id: I0b47e6dba38222bb6b4f778c4206d3b37bc93089
2017-06-21 22:16:55 +02:00
Thorsten Behrens 0e226d4c19 gpg4libre: initial GPG signature validation
Change-Id: I80afd77f74a6cb3f3fb7da03a6a4b74b132360d2
2017-06-21 22:16:55 +02:00
Thorsten Behrens 2186d7b7f6 gpg4libre: fix gpg signature generation
Change-Id: I6eb95c948b6c8c9b8dee21215b430921bf454bb9
2017-06-21 22:16:55 +02:00
Thorsten Behrens 06d7dbb356 gpg4libre: share static xmlsec lib between nss and gpg
In the end, the gpgme implementation uses enough of xmlsec
functionality that splitting those (and ending up with two copies)
was just not worth it.

Change-Id: Ida87c848e4e6a770e3c697add9ceb589a9ec3930
2017-06-21 22:16:55 +02:00
Jochen Nitschke a5dba7dbec remove unused osl/mutex.hxx includes
Change-Id: I3b50e45fdb99e9cd8bfda07356ee3ddb4dd0f8bb
Reviewed-on: https://gerrit.libreoffice.org/38905
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2017-06-18 13:38:25 +02:00
Noel Grandin 17a2c9e8e2 clang-tidy performance-unnecessary-value-param
Change-Id: I6ed8c54c7c45931d91709cc818f2483c70197192
Reviewed-on: https://gerrit.libreoffice.org/38400
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-05 09:22:51 +02:00
Thorsten Behrens c667669cf9 gpg4libre: fix windows build
Change-Id: I66b809bbf2f5ab5d9c1eaf40ba8f2c91f4bc8007
2017-05-18 09:19:32 +02:00
Thorsten Behrens cae5f2a543 gpg4libre: initial GPG signature generation
* takes XML-Sec signature template
* calculates digest for all added reference streams
* produces signature value over canonicalized signature template
* writes same as detached signature into template, streams that out

Change-Id: I303e080dc25c440175fe1ae897f03cf356d5d0f2
Reviewed-on: https://gerrit.libreoffice.org/36106
Reviewed-by: Siegmund Gorr <siegmund.gorr@cib.de>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-05-18 09:18:47 +02:00