diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-02-15 11:38:23 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-02-15 17:24:47 +0100 |
commit | 565346a4fe0a074807381c2d8ea48242e9e69f4f (patch) | |
tree | d94b901ba04a794d5e97d76126e7061677f83c04 /xmlsecurity/inc | |
parent | 639aaa2fe5dfc2cb2739c6f833f3208ebf8dd710 (diff) |
xmlsecurity: factor out DocumentSignatureManager from DigitalSignaturesDialog
It's hard to unit test signing when the logic is implemented in the Add
and OK button handlers.
Change-Id: I5e07df69cd808cf170e21dfd55f2f44bc79c58a8
Diffstat (limited to 'xmlsecurity/inc')
-rw-r--r-- | xmlsecurity/inc/documentsignaturemanager.hxx | 62 | ||||
-rw-r--r-- | xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx | 17 |
2 files changed, 65 insertions, 14 deletions
diff --git a/xmlsecurity/inc/documentsignaturemanager.hxx b/xmlsecurity/inc/documentsignaturemanager.hxx new file mode 100644 index 000000000000..6719c2613111 --- /dev/null +++ b/xmlsecurity/inc/documentsignaturemanager.hxx @@ -0,0 +1,62 @@ +/* -*- 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_DOCUMENTSIGNATUREMANAGER_HXX +#define INCLUDED_XMLSECURITY_INC_DOCUMENTSIGNATUREMANAGER_HXX + +#include "xmlsecuritydllapi.h" +#include <xmlsecurity/sigstruct.hxx> +#include <xmlsecurity/xmlsignaturehelper.hxx> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <com/sun/star/embed/XStorage.hpp> +#include <xmlsecurity/documentsignaturehelper.hxx> +#include <com/sun/star/beans/PropertyValue.hpp> + +/// Manages signatures (addition, removal), used by DigitalSignaturesDialog. +class XMLSECURITY_DLLPUBLIC DocumentSignatureManager +{ +public: + css::uno::Reference<css::uno::XComponentContext> mxContext; + css::uno::Reference<css::embed::XStorage> mxStore; + XMLSignatureHelper maSignatureHelper; + SignatureInformations maCurrentSignatureInformations; + DocumentSignatureMode meSignatureMode; + css::uno::Sequence< css::uno::Sequence<css::beans::PropertyValue> > m_manifest; + css::uno::Reference<css::io::XStream> mxSignatureStream; + css::uno::Reference<css::io::XStream> mxTempSignatureStream; + /// Storage containing all OOXML signatures, unused for ODF. + css::uno::Reference<css::embed::XStorage> mxTempSignatureStorage; + + DocumentSignatureManager(const css::uno::Reference<css::uno::XComponentContext>& xContext, DocumentSignatureMode eMode); + ~DocumentSignatureManager(); + /** + * Checks if a particular stream is a valid xml stream. Those are treated + * differently when they are signed (c14n transformation) + */ + bool isXML(const OUString& rURI); + SignatureStreamHelper ImplOpenSignatureStream(sal_Int32 eStreamMode, bool bTempStream); + /// Add a new signature, using xCert as a signing certificate, and rDescription as description. + bool add(const css::uno::Reference<css::security::XCertificate>& xCert, const OUString& rDescription, sal_Int32& nSecurityId); + /// Read signatures from either a temp stream or the real storage. + void read(bool bUseTempStream); +}; + +#endif // INCLUDED_XMLSECURITY_INC_XMLSECURITY_DOCUMENTSIGNATUREMANAGER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx b/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx index 4a97049038d5..eb99f3579887 100644 --- a/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx +++ b/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx @@ -29,6 +29,7 @@ #include <xmlsecurity/documentsignaturehelper.hxx> #include <xmlsecurity/xmlsignaturehelper.hxx> +#include <documentsignaturemanager.hxx> #include <vector> @@ -52,18 +53,10 @@ class DigitalSignaturesDialog : public ModalDialog { private: css::uno::Reference< css::uno::XComponentContext >& mxCtx; - XMLSignatureHelper maSignatureHelper; - - css::uno::Reference < css::embed::XStorage > mxStore; - css::uno::Reference < css::io::XStream > mxSignatureStream; - css::uno::Reference < css::io::XStream > mxTempSignatureStream; - /// Storage containing all OOXML signatures, unused for ODF. - css::uno::Reference<css::embed::XStorage> mxTempSignatureStorage; - SignatureInformations maCurrentSignatureInformations; + + DocumentSignatureManager maSignatureManager; bool mbVerifySignatures; bool mbSignaturesChanged; - DocumentSignatureMode meSignatureMode; - css::uno::Sequence < css::uno::Sequence < css::beans::PropertyValue > > m_manifest; VclPtr<FixedText> m_pHintDocFT; VclPtr<FixedText> m_pHintBasicFT; @@ -101,7 +94,6 @@ private: void ImplGetSignatureInformations(bool bUseTempStream); void ImplFillSignaturesBox(); void ImplShowSignaturesDetails(); - SignatureStreamHelper ImplOpenSignatureStream( sal_Int32 eStreamMode, bool bTempStream ); //Checks if adding is allowed. //See the spec at specs/www/appwide/security/Electronic_Signatures_and_Security.sxw @@ -109,9 +101,6 @@ private: bool canAdd(); bool canRemove(); - //Checks if a particular stream is a valid xml stream. Those are treated differently - //when they are signed (c14n transformation) - bool isXML(const OUString& rURI ); bool canAddRemove(); public: |