Commit Graph
112 Commits
Author SHA1 Message Date
Stephan Bergmann bda744fb53 No need to open this test doc read/write
...fail when SRCDIR is a read-only tree

Change-Id: I80a372b3eb71faed1215305a55df93390c846eed
Reviewed-on: https://gerrit.libreoffice.org/52020
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-03-28 21:17:55 +02:00
Stephan Bergmann 0ff64e31b0 Copy test doc to temp location before opening read/write
...otherwise fails if SRCDIR is a read-only tree

Change-Id: I0b81be5ba055dac133e5ee638f21c3c5f4d5736b
Reviewed-on: https://gerrit.libreoffice.org/52015
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-03-28 21:17:39 +02:00
Miklos Vajna 17407f808e Turn on clang-format for these files
I (tried to) keep these files consistent locally with astyle in the past,
switching to clang-format makes sure that the recent problem with introducing
inconsistencies in these files doesn't happen again.

(On the flip side, it's great to see that now others also touch this
PDF/pdfium code. :-) )

Change-Id: I6065eab77c584197a82fe48e7d3e81b445106efd
Reviewed-on: https://gerrit.libreoffice.org/51701
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-03-21 14:29:14 +01:00
Rene Engelhard d7ecf4a4e3 properly check for gpgconf (and --create-socketdir) working
Change-Id: I21268e5950381845eb90bf66a42a99adc3821eaa
Reviewed-on: https://gerrit.libreoffice.org/51493
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-03-18 17:21:03 +01:00
Miklos Vajna c8cd02629d forcepoint #16: fix heap-use-after-free
PDFDocument::Tokenize() in the aKeyword == "obj" case allocates a
PDFObjectElement, stores it as an owning pointer inside rElements, and
also stores two non-owning references to it in m_aOffsetObjects and
m_aIDObjects. So make sure those 2 other containers are also cleared
then elements go away.

LO_TRACE="valgrind" bin/run pdfverify <sample>

doesn't report errors anymore after the fix.

Change-Id: Ie103de3e24a1080257a79e53b994e8536a9597bc
Reviewed-on: https://gerrit.libreoffice.org/50627
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-03-02 20:09:21 +01:00
Miklos Vajna f58a16d598 tdf#114460 vcl: handle nested parentheses in PDF roundtrip
The roundtrip of the pdf image failed due to this.

Change-Id: I88a9657e242dd2659f9bf06233e5fcbfeb43ceb5
Reviewed-on: https://gerrit.libreoffice.org/48362
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-01-23 09:07:38 +01:00
Andrea Gelmini 624f84c07e Fix typos
Change-Id: I078626eaa3155cc429320cc8c1532003b382b22a
Reviewed-on: https://gerrit.libreoffice.org/47855
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-01-16 12:40:51 +01:00
Stephan Bergmann c1f9d1a426 More loplugin:cstylecast: xmlsecurity
Change-Id: I3ff3df41b004a0c2cfe01da19c1a0aa6488aaead
2018-01-15 08:59:53 +01:00
Thorsten Behrens 8242c22f84 gpg4libre: add initial unit test for encryption
Load encrypted document w/ password-less key,
don't fail.

Change-Id: Id782dd865878ae7b8a60c7c80821b1370f6ac7e7
Reviewed-on: https://gerrit.libreoffice.org/47831
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2018-01-13 14:38:03 +01:00
Miklos Vajna 67e1e2ee40 tdf#42949 Fix some more Include What You Use warnings
Change-Id: I2040315707674dc99a37aedb96ac61dca274c13a
Reviewed-on: https://gerrit.libreoffice.org/47348
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-01-04 15:51:39 +01:00
Thorsten Behrens 2816ac4ad0 xmlsecurity: move GNUPGHOME to $workdir for unit test
Since some GnuPG versions tend to litter the source tree with random
files otherwise.

Change-Id: I0302f73b216f2de4dafcb6adca81097ec9d87e8c
Reviewed-on: https://gerrit.libreoffice.org/46447
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-12-14 16:50:21 +01:00
Stephan Bergmann e6b7f73f06 Remove junk committed by mistake
Change-Id: I029d5c949b4a1e6bd6b0ce4edb39411b9dce88c2
2017-12-14 13:21:39 +01:00
Stephan Bergmann 6f4f5677ac No need to keep these whitelisted functions decorated with SAL_CALL
The only effect SAL_CALL effectively has on LO-internal code is to change non-
static member functions from __thiscall to __cdecl in MSVC (where all other
functions are __cdecl by default, anyway).  (For 3rd-party code, it could be
argued that SAL_CALL is useful on function declarations in the URE stable
interface other than non-static member functions, too, in case 3rd-party code
uses a compiler switch to change the default calling convention to something
other than __cdecl.  But loplugin:salcall exempts the URE stable interface,
anyway.)

One could argue that SAL_CALL, even if today it effectively only affects non-
static member functions in MSVC, could be extended in the future to affect more
functions on more platforms.  However, the current code would already not
support that.  For example, 3af500580b
"loplugin:salcall fix functions" changed FrameControl_createInstance in
UnoControls/source/base/registercontrols.cxx to no longer be SAL_CALL, even
though its address (in ctl_component_getFacrory, in the same file) is passed to
cppuhelper::createSingleFactory as an argument of type
cppu::ComponentInstantiation, which is a pointer to SAL_CALL function.

Change-Id: I3acbf7314a3d7868ed70e35bb5c47bc11a0b7ff6
Reviewed-on: https://gerrit.libreoffice.org/46436
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-12-14 13:03:06 +01:00
Thorsten Behrens 7886de3058 gpg4libre: check if we can really verify OpenPGP signatures
And disable unit tests otherwise

Change-Id: I32e1d8d2f8b0013d9cb43b78a55d23a1a29a8e8d
Reviewed-on: https://gerrit.libreoffice.org/46057
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-12-09 16:31:03 +01:00
Thorsten Behrens 1e71870034 gpg4libre: rename GPGME_HAVE_GPGME to HAVE_FEATURE_GPGME
Change-Id: I6f085b67c3477f427bd1efd96db93cbb89e20647
Reviewed-on: https://gerrit.libreoffice.org/46050
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-12-08 09:13:51 +01:00
Thorsten Behrens 6da58b0e84 gpg4libre: add unit tests for ODF signing feature
Since this requires a working gpg setup, limit to linux for the
moment. If you need to add signatures or redo them, run LibreOffice
from a shell with env var
GNUPGHOME=<core>/xmlsecurity/qa/unit/signing/data/ set.

For editing keys, gpg2 also accepts a
--homedir=<core>/xmlsecurity/qa/unit/signing/data/ option

Change-Id: I59e5b563098b19d05c8c2db32537241bc835fc80
Reviewed-on: https://gerrit.libreoffice.org/45950
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2017-12-07 08:39:25 +01:00
Miklos Vajna 5f4a3e7bd7 tdf#113550 RTF import: fix incorrect text indent
Left indent was set to non-zero in the style, but direct formatting set
it back to zero. Teach deduplication to remove the
NS_ooxml::LN_CT_PPrBase_ind SPRM itself in case the last attribute was
removed.

Change-Id: I01b202f0241b02816b2b392326737b1150caffc2
Reviewed-on: https://gerrit.libreoffice.org/44385
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-11-07 10:42:03 +01:00
Samuel Mehrbrodt 193aa63a2a tdf#65393 Test for signature line images
Change-Id: I6f37919da5fef0a90fad314019db19e4a5604169
Reviewed-on: https://gerrit.libreoffice.org/44220
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2017-11-06 12:17:14 +01:00
Stephan Bergmann 462454b7e0 Map from GetLastError() to HRESULT
clang-cl reported "error: comparison of integers of different signs: 'DWORD'
(aka 'unsigned long') and 'HRESULT' (aka 'long') [-Werror,-Wsign-compare]"

Change-Id: I568f03bd863ba63e30143483d9573042f3506de7
Reviewed-on: https://gerrit.libreoffice.org/42597
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
2017-09-21 22:03:41 +02:00
Miklos Vajna 5688a2ffd9 xmlsecurity: be consistent inside #ifdef _WIN32
The other ifdef doesn't influence indentation, so don't do it here,
either.

Change-Id: I84259a46d1f66180e4fea295930f40b2b83e58fc
2017-09-19 16:46:28 +02:00
Mike Kaganski 2caf390474 PDF signing: don't fail unittest on invalid certificates
Without this, expired/not yet valid certificates, as well as
certificates without private key, make test needlessly fail.

Change-Id: Ic8ff85db54f1f1b1fb49fde82424f597f1555c96
Reviewed-on: https://gerrit.libreoffice.org/42434
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-09-19 12:22:33 +02:00
Miklos Vajna c210019f36 xmlsecurity: no need to have pdfio/pdfdocument.hxx as a global header
Which means xmlsecurity can be again a module that has no public
headers.

Change-Id: I3d0b03680398f80196fac187263e770fd44ed0ed
Reviewed-on: https://gerrit.libreoffice.org/41966
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-09-06 09:06:19 +02:00
Stephan Bergmann 66604baf08 Consistently use OUString in test::Directories
Change-Id: Ia5fd8af34ee9d2f37e4450ab241f6bb9a06445b2
Reviewed-on: https://gerrit.libreoffice.org/41466
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-08-24 09:28:32 +02:00
Noel Grandin 71112060e0 loplugin:oncevar various
Change-Id: I8b82d46d4688b1a59d6fe1b05da7d5c8dfc13ca6
Reviewed-on: https://gerrit.libreoffice.org/38766
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-29 08:18:35 +02:00
Katarina Behrens e07085ecf8 gpg4libre: Fixup unit tests, now that SecurityContext is needed
Change-Id: Ifa43fa735c8b0d58ff3d3deca2ad4eca6560494a
2017-06-21 22:16:56 +02:00
Miklos Vajna c2b1ff4ab1 sw, xmlsecurity: indentation fixes
Change-Id: I3bc916c8318b63a829ec391a72976829815fa987
2017-06-12 09:37:58 +02:00
Noel Grandin 027b25ecd5 use comphelper::InitPropertySequence in more places
Change-Id: I72d7b13a23ce306b752b39187a0e9fbb7028643a
Reviewed-on: https://gerrit.libreoffice.org/38606
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-09 14:24:00 +02:00
Miklos Vajna 18aa83acfa tdf#107782 xmlsecurity PDF verify: handle empty X509 certificate
Leaving Signer as an empty reference will do exactly what we want: the
signature will be considered invalid.

Change-Id: I25d7cbd260384110173fe953fc24f3dcf6b9acd5
Reviewed-on: https://gerrit.libreoffice.org/37770
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-05-18 20:31:09 +02:00
Miklos Vajna f15a69bd57 vcl PDF import: don't assume larger offset -> newer trailer
Usually when the PDF file contains incremental updates the updates are
appended at the end of the document. But this is not required, the
various trailers can be in any order. Make sure that we look at the last
trailer (logically last, not the one with the largest file offset) when
looking for pages.

Change-Id: Idcd85a7c6bbf08c9436dd73933d79cdb683f482c
Reviewed-on: https://gerrit.libreoffice.org/36527
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-04-14 00:11:06 +02:00
Stephan Bergmann 8a18515f7b Improved loplugin:redundantcast, static_cast on arithmetic types: xmlsecurity
Change-Id: I51692b887585d6a64019550aff5f6ea2910ad2fd
2017-04-06 18:30:09 +02:00
Noel Grandin 0fe6f1a196 use actual UNO enums in vcl..xmlsecurity
Change-Id: Id862544f27ebcbe8363f93dc83192d0f0cddb5cc
Reviewed-on: https://gerrit.libreoffice.org/36041
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-03 11:05:13 +00:00
Miklos Vajna 7415b71b79 vcl: move in PDF tokenizer from xmlsecurity
The PDF code in xmlsecurity served two purposes:

- a generic PDF tokenizer
- signature verification

The first purpose is useful to have in VCL, so the PDF export code can
use it as well when it comes to PDF image handling.

This commit just moves most of the PDF code to VCL, it does not touch
the PDF export code yet. With this, also the somewhat odd xmlsecurity
dependency of CppunitTest_vcl_pdfexport can be removed as well.

Change-Id: I6fe8294ed5c4aa4d79f4b2ddef80a4d1c9d566cc
Reviewed-on: https://gerrit.libreoffice.org/35513
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-03-22 08:03:40 +00:00
Miklos Vajna 9be498dac2 xmlsecurity: separate signature verification from PDF tokenizer
Signature verification code depends on sax and xmloff, but the rest of
the PDF tokenizer could be otherwise moved down to lower layers without
problems.

Change-Id: Ieca57279e9517935821c1d34f217fd10548035ef
Reviewed-on: https://gerrit.libreoffice.org/35512
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-03-21 17:02:28 +00:00
Miklos Vajna 42460fd4eb xmlsecurity: avoid using the SerialNumberAdapter wrapper
This service is only used in xmlsecurity and it's a wrapper around two
free functions in the same module.

Change-Id: Ibc5a026b51eda6c2b4b27b7254dedc220dbf909a
Reviewed-on: https://gerrit.libreoffice.org/34772
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-03-02 08:35:54 +00:00
Noel Grandin 198c41c4fe new loplugin unoany
Change-Id: I5d6c4a67cb2a09e7cd5bd620c6b262d188701b89
Reviewed-on: https://gerrit.libreoffice.org/34714
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-28 10:17:47 +00:00
Miklos Vajna 58eac1105f vcl: add initial CppunitTest_vcl_pdfexport
Invoke the PDF export filter and then use the PDF tokenizer from
xmlsecurity to assert the contents of created PDF file. The testcase
fails with commit 6db0f1feb1 (tdf#106059
PDF export: create a reference XObject for PDF images, 2017-02-22)
reverted.

Change-Id: I90526fef41d9560ae447f586df766bc50a491c43
Reviewed-on: https://gerrit.libreoffice.org/34609
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-02-24 15:49:15 +00:00
Stephan Bergmann 91425be3c6 New loplugin:conststringvar: xmlsecurity
Change-Id: Ifec5c8a9addca5976714eec64385b3f87e5380c5
2017-01-10 08:09:29 +01:00
Tor Lillqvist b1c1458760 Revert "[API CHANGE] createSecurityContext() was always called with an empty string"
I got cold feet. I don't want to have to revert this many years later
instead, when some obscure 3rd-party software stops working.

This reverts commit e1ce7bad62.
2016-12-22 08:48:16 +02:00
Tor Lillqvist e1ce7bad62 [API CHANGE] createSecurityContext() was always called with an empty string
So drop the parameter then and propagate fallout in the Windows
implementation in xmlsecurity. The NSS implementation already ignored
the parameter completely.

This interface is not 'published' and the parameter was even marked as
'reserved for internal use' so I doubt any external code has used it.

Change-Id: I5915b941b79cfddadc8137c32ed07c20c9ccaa37
2016-12-21 21:24:09 +02:00
Stephan Bergmann 83d2c5180d Adapt to no-longer explicit OUStringLiteral ctor
...from previous commit

Change-Id: I062b7cd212c17e7eb5274476e6859228d0477c7f
Reviewed-on: https://gerrit.libreoffice.org/32098
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2016-12-17 16:12:02 +00:00
Stephan Bergmann 9b8fb82150 loplugin:unnecessaryoverride
Change-Id: Iac074bd6f59d2fc890459b45801d0a6143c3eb9e
2016-12-06 10:20:01 +01:00
Miklos Vajna e58ed17e35 xmlsecurity mscrypto PDF verify: implement support for non-detached signatures
This was the last unit test that was disabled on Windows due to missing
implementation.

Change-Id: Ia7d84f72bcdf79267c7de17cd8822ed02c378642
Reviewed-on: https://gerrit.libreoffice.org/31552
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2016-12-02 15:41:01 +00:00
Miklos Vajna 61c81c4500 xmlsecurity PDF verify: don't hide signatures where digest match is uncertain
Use case: the bugdoc has 2 signatures, one normal one and one with
SubFilter=ETSI.RFC3161. By not hiding the second signature it's possible
to counter-sign the document, even if we don't handle the contents of
the second one.

Change-Id: I580e1211072ec9839f01b529b569c98b702b6534
Reviewed-on: https://gerrit.libreoffice.org/31539
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2016-12-02 13:16:54 +00:00
Miklos Vajna c4cb8b5d14 xmlsecurity PDF verify: avoid seeking before the start of the stream
Happened when the doc was smaller than 1024 bytes.

Change-Id: Ie5eea5905a09722e7958495d26e6c78ee234d3ba
Reviewed-on: https://gerrit.libreoffice.org/31500
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-12-01 19:35:22 +00:00
Miklos Vajna b1f91c0a04 xmlsecurity PDF verify: handle no EOL at EOF
From a comment's point of view, EOF is just a terminator, similar to \r
or \n.

Change-Id: I120bf1e75f1eb81a550af643051e6fc472873eff
Reviewed-on: https://gerrit.libreoffice.org/31499
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-12-01 19:34:52 +00:00
Miklos Vajna cdf2ae1b66 xmlsecurity PDF verify: fix reading names containing ']'
Also fix parsing '<< /Foo [ /Bar ] >>'.

Change-Id: I3375001730b4d2e447b0dd8a7809a7bfb013126c
Reviewed-on: https://gerrit.libreoffice.org/31498
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-12-01 19:34:25 +00:00
Miklos Vajna e84993486b xmlsecurity PDF verify: don't abort read on partial sign
Map it to the partially signed (not all streams) ODF concept instead.

Change-Id: I7fc931e622b9f10a1261cd475b01a2f038e37ece
Reviewed-on: https://gerrit.libreoffice.org/31497
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-12-01 19:34:14 +00:00
Miklos Vajna c623a9f846 xmlsecurity PDF verify: handle boolean type as dictionary value
This caused not finding the length of a stream -> could not actually
verify signature.

Change-Id: I696b6da49525eb53f7575c27f619d2116be51f1d
Reviewed-on: https://gerrit.libreoffice.org/31490
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2016-12-01 16:26:13 +00:00
Miklos Vajna 9b526a43e1 xmlsecurity PDF verify: CR is also a terminator of a comment
If we skip to the first NL, then we start tokenizing some XML as PDF
data and soon error out due to an unexpected keyword.

Change-Id: I86b540a014e5a92ea4376ed765385a2ee568a3c1
Reviewed-on: https://gerrit.libreoffice.org/31472
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-12-01 12:44:52 +00:00
Miklos Vajna 0233ff9523 xmlsecurity PDF verify: tolerate missing %%EOF in incremental updates
This is broken, but work it around to avoid an infinite loop.

Change-Id: I132a3c19cfe53e6166bfc1a881d1bfa5071f85d4
Reviewed-on: https://gerrit.libreoffice.org/31471
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-12-01 12:29:32 +00:00