From 565346a4fe0a074807381c2d8ea48242e9e69f4f Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 15 Feb 2016 11:38:23 +0100 Subject: 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 --- xmlsecurity/inc/documentsignaturemanager.hxx | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 xmlsecurity/inc/documentsignaturemanager.hxx (limited to 'xmlsecurity/inc/documentsignaturemanager.hxx') 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 +#include +#include +#include +#include +#include + +/// Manages signatures (addition, removal), used by DigitalSignaturesDialog. +class XMLSECURITY_DLLPUBLIC DocumentSignatureManager +{ +public: + css::uno::Reference mxContext; + css::uno::Reference mxStore; + XMLSignatureHelper maSignatureHelper; + SignatureInformations maCurrentSignatureInformations; + DocumentSignatureMode meSignatureMode; + css::uno::Sequence< css::uno::Sequence > m_manifest; + css::uno::Reference mxSignatureStream; + css::uno::Reference mxTempSignatureStream; + /// Storage containing all OOXML signatures, unused for ODF. + css::uno::Reference mxTempSignatureStorage; + + DocumentSignatureManager(const css::uno::Reference& 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& 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: */ -- cgit v1.2.3