diff options
author | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2017-07-09 09:42:01 -0400 |
---|---|---|
committer | Ashod Nakashian <ashnakash@gmail.com> | 2017-07-17 00:12:10 +0200 |
commit | 4f17445c12dc26c4881c4e486215b58d26515f8d (patch) | |
tree | d5532f4a3129fe532b4ad4305a44a8817c7e8b41 /xmlsecurity/inc | |
parent | c76c3655a394462b7b23bdfe6da4542fbdf30fbb (diff) |
svl: move byte-array verification from vcl
Also use comphelper::Base64 and
DateTime::CreateFromUnixTime to avoid depending on sax.
Change-Id: If1853f8d9481c9caa0625a111707531bbc495f75
Reviewed-on: https://gerrit.libreoffice.org/39993
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Diffstat (limited to 'xmlsecurity/inc')
-rw-r--r-- | xmlsecurity/inc/certificatechooser.hxx | 2 | ||||
-rw-r--r-- | xmlsecurity/inc/documentsignaturehelper.hxx | 2 | ||||
-rw-r--r-- | xmlsecurity/inc/documentsignaturemanager.hxx | 2 | ||||
-rw-r--r-- | xmlsecurity/inc/pch/precompiled_xmlsecurity.hxx | 1 | ||||
-rw-r--r-- | xmlsecurity/inc/pdfsignaturehelper.hxx | 2 | ||||
-rw-r--r-- | xmlsecurity/inc/sigstruct.hxx | 131 | ||||
-rw-r--r-- | xmlsecurity/inc/xmlsignaturehelper.hxx | 2 | ||||
-rw-r--r-- | xmlsecurity/inc/xsecctl.hxx | 2 |
8 files changed, 6 insertions, 138 deletions
diff --git a/xmlsecurity/inc/certificatechooser.hxx b/xmlsecurity/inc/certificatechooser.hxx index 264b740dd448..009d20e4ea2f 100644 --- a/xmlsecurity/inc/certificatechooser.hxx +++ b/xmlsecurity/inc/certificatechooser.hxx @@ -28,7 +28,7 @@ #include <com/sun/star/xml/crypto/XXMLSecurityContext.hpp> #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/uno/Sequence.hxx> -#include <sigstruct.hxx> +#include <svl/sigstruct.hxx> namespace com { diff --git a/xmlsecurity/inc/documentsignaturehelper.hxx b/xmlsecurity/inc/documentsignaturehelper.hxx index a8f3cb1f5d40..3997ae47260d 100644 --- a/xmlsecurity/inc/documentsignaturehelper.hxx +++ b/xmlsecurity/inc/documentsignaturehelper.hxx @@ -23,7 +23,7 @@ #include <com/sun/star/uno/Reference.h> #include <com/sun/star/xml/sax/XDocumentHandler.hpp> #include <rtl/ustring.hxx> -#include "sigstruct.hxx" +#include <svl/sigstruct.hxx> #include "xmlsecurity/xmlsecuritydllapi.h" #include <vector> diff --git a/xmlsecurity/inc/documentsignaturemanager.hxx b/xmlsecurity/inc/documentsignaturemanager.hxx index f354ad8c8cbb..0ea708c5d241 100644 --- a/xmlsecurity/inc/documentsignaturemanager.hxx +++ b/xmlsecurity/inc/documentsignaturemanager.hxx @@ -24,7 +24,7 @@ #include <memory> -#include <sigstruct.hxx> +#include <svl/sigstruct.hxx> #include <xmlsignaturehelper.hxx> #include <pdfsignaturehelper.hxx> #include <com/sun/star/uno/XComponentContext.hpp> diff --git a/xmlsecurity/inc/pch/precompiled_xmlsecurity.hxx b/xmlsecurity/inc/pch/precompiled_xmlsecurity.hxx index cfb26d8593ae..07008a0b5181 100644 --- a/xmlsecurity/inc/pch/precompiled_xmlsecurity.hxx +++ b/xmlsecurity/inc/pch/precompiled_xmlsecurity.hxx @@ -302,6 +302,5 @@ #include <unotools/readwritemutexguard.hxx> #include <unotools/syslocale.hxx> #include <unotools/unotoolsdllapi.h> -#include <sigstruct.hxx> /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/inc/pdfsignaturehelper.hxx b/xmlsecurity/inc/pdfsignaturehelper.hxx index 74b89fe44e02..7da417c46e4f 100644 --- a/xmlsecurity/inc/pdfsignaturehelper.hxx +++ b/xmlsecurity/inc/pdfsignaturehelper.hxx @@ -19,7 +19,7 @@ #include <com/sun/star/xml/crypto/XSEInitializer.hpp> #include <com/sun/star/xml/crypto/XXMLSecurityContext.hpp> -#include <sigstruct.hxx> +#include <svl/sigstruct.hxx> /// Handles signatures of a PDF file. class XMLSECURITY_DLLPUBLIC PDFSignatureHelper diff --git a/xmlsecurity/inc/sigstruct.hxx b/xmlsecurity/inc/sigstruct.hxx deleted file mode 100644 index ff6ee5e5d3a5..000000000000 --- a/xmlsecurity/inc/sigstruct.hxx +++ /dev/null @@ -1,131 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#ifndef INCLUDED_XMLSECURITY_INC_SIGSTRUCT_HXX -#define INCLUDED_XMLSECURITY_INC_SIGSTRUCT_HXX - -#include <rtl/ustring.hxx> -#include <com/sun/star/util/DateTime.hpp> -#include <com/sun/star/xml/crypto/SecurityOperationStatus.hpp> -#include <com/sun/star/xml/crypto/DigestID.hpp> -#include <com/sun/star/uno/Sequence.hxx> - -#include <set> -#include <vector> - -/* - * type of reference - */ -enum class SignatureReferenceType -{ - SAMEDOCUMENT = 1, - BINARYSTREAM = 2, - XMLSTREAM = 3 -}; - -struct SignatureReferenceInformation -{ - SignatureReferenceType nType; - OUString ouURI; - // For ODF: XAdES digests (SHA256) or the old SHA1, from css::xml::crypto::DigestID - sal_Int32 nDigestID; - OUString ouDigestValue; - - SignatureReferenceInformation() : - nType(SignatureReferenceType::SAMEDOCUMENT), - ouURI(""), - nDigestID(css::xml::crypto::DigestID::SHA1), - ouDigestValue("") - { - } - - SignatureReferenceInformation( SignatureReferenceType type, sal_Int32 digestID, const OUString& uri ) : - SignatureReferenceInformation() - { - nType = type; - nDigestID = digestID; - ouURI = uri; - } -}; - -typedef ::std::vector< SignatureReferenceInformation > SignatureReferenceInformations; - -struct SignatureInformation -{ - sal_Int32 nSecurityId; - css::xml::crypto::SecurityOperationStatus nStatus; - SignatureReferenceInformations vSignatureReferenceInfors; - OUString ouX509IssuerName; - OUString ouX509SerialNumber; - OUString ouX509Certificate; - - OUString ouGpgKeyID; - OUString ouGpgCertificate; - OUString ouGpgOwner; - - OUString ouSignatureValue; - css::util::DateTime stDateTime; - - // XAdES EncapsulatedX509Certificate values - std::set<OUString> maEncapsulatedX509Certificates; - - //We also keep the date and time as string. This is done when this - //structure is created as a result of a XML signature being read. - //When then a signature is added or another removed, then the original - //XML signatures are written again (unless they have been removed). - //If the date time string is converted into the DateTime structure - //then information can be lost because it only holds a fractional - //of a second with a accuracy of one hundredth of second. - //If the string contains - //milli seconds (because the document was created by an application other than OOo) - //and the converted time is written back, then the string looks different - //and the signature is broken. - OUString ouDateTime; - OUString ouSignatureId; - OUString ouPropertyId; - /// Characters of the <dc:description> element inside the signature. - OUString ouDescription; - /// The Id attribute of the <SignatureProperty> element that contains the <dc:description>. - OUString ouDescriptionPropertyId; - /// OOXML certificate SHA-256 digest, empty for ODF except when doing XAdES signature. - OUString ouCertDigest; - /// A full OOXML signature for unchanged roundtrip, empty for ODF. - css::uno::Sequence<sal_Int8> aSignatureBytes; - /// For PDF: digest format, from css::xml::crypto::DigestID - sal_Int32 nDigestID; - /// For PDF: has id-aa-signingCertificateV2 as a signed attribute. - bool bHasSigningCertificate; - /// For PDF: the byte range doesn't cover the whole document. - bool bPartialDocumentSignature; - - SignatureInformation( sal_Int32 nId ) - { - nSecurityId = nId; - nStatus = css::xml::crypto::SecurityOperationStatus_UNKNOWN; - nDigestID = 0; - bHasSigningCertificate = false; - bPartialDocumentSignature = false; - } -}; - -typedef ::std::vector< SignatureInformation > SignatureInformations; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/inc/xmlsignaturehelper.hxx b/xmlsecurity/inc/xmlsignaturehelper.hxx index 209c93c15a09..d527942f50f2 100644 --- a/xmlsecurity/inc/xmlsignaturehelper.hxx +++ b/xmlsecurity/inc/xmlsignaturehelper.hxx @@ -25,7 +25,7 @@ #include <tools/link.hxx> #include <rtl/ustring.hxx> #include <rtl/ref.hxx> -#include <sigstruct.hxx> +#include <svl/sigstruct.hxx> #include <xsecctl.hxx> #include <xmlsecurity/xmlsecuritydllapi.h> diff --git a/xmlsecurity/inc/xsecctl.hxx b/xmlsecurity/inc/xsecctl.hxx index 9ddc22affbae..27cb60e54dc0 100644 --- a/xmlsecurity/inc/xsecctl.hxx +++ b/xmlsecurity/inc/xsecctl.hxx @@ -20,7 +20,7 @@ #ifndef INCLUDED_XMLSECURITY_SOURCE_HELPER_XSECCTL_HXX #define INCLUDED_XMLSECURITY_SOURCE_HELPER_XSECCTL_HXX -#include <sigstruct.hxx> +#include <svl/sigstruct.hxx> #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/xml/sax/XParser.hpp> |