diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-08-10 09:04:03 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-08-10 09:50:29 +0200 |
commit | 86bc72072ece83c3560dbf874d6469f771c95289 (patch) | |
tree | e0cf7dcd46357f9a58692f8924e34eb40e26318d /xmlsecurity/source/framework | |
parent | 0e8208057d098f961a62efa5318a80b0d3372d2a (diff) |
xmlsecurity: work with impl directly in SignatureEngine::startEngine()
The only implementation of css::xml::crypto::XXMLSignatureTemplate is
XMLSignatureTemplateImpl, so work with that directly instead of going
via UNO.
Change-Id: I85e2169a909b689620c2ce125a9653f9a6696f45
Reviewed-on: https://gerrit.libreoffice.org/40950
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'xmlsecurity/source/framework')
5 files changed, 7 insertions, 116 deletions
diff --git a/xmlsecurity/source/framework/signaturecreatorimpl.cxx b/xmlsecurity/source/framework/signaturecreatorimpl.cxx index b94a97583018..be94d840f525 100644 --- a/xmlsecurity/source/framework/signaturecreatorimpl.cxx +++ b/xmlsecurity/source/framework/signaturecreatorimpl.cxx @@ -81,17 +81,12 @@ void SignatureCreatorImpl::notifyResultListener() const xSignatureCreationResultListener->signatureCreated( m_nSecurityId, m_nStatus ); } -void SignatureCreatorImpl::startEngine( const cssu::Reference< - cssxc::XXMLSignatureTemplate >& - xSignatureTemplate) +void SignatureCreatorImpl::startEngine(const rtl::Reference<XMLSignatureTemplateImpl>& xSignatureTemplate) /****** SignatureCreatorImpl/startEngine ************************************* * * NAME * startEngine -- generates the signature. * - * SYNOPSIS - * startEngine( xSignatureTemplate ); - * * FUNCTION * generates the signature element, then if succeeds, updates the link * of old template element to the new signature element in @@ -105,7 +100,7 @@ void SignatureCreatorImpl::startEngine( const cssu::Reference< cssu::Reference< cssxc::XXMLSignatureTemplate > xResultTemplate; try { - xResultTemplate = m_xXMLSignature->generate(xSignatureTemplate, m_xSecurityEnvironment); + xResultTemplate = m_xXMLSignature->generate(css::uno::Reference<css::xml::crypto::XXMLSignatureTemplate>(xSignatureTemplate.get()), m_xSecurityEnvironment); m_nStatus = xResultTemplate->getStatus(); } catch( cssu::Exception& ) diff --git a/xmlsecurity/source/framework/signatureengine.cxx b/xmlsecurity/source/framework/signatureengine.cxx index 8b570465c44d..a9befe357d3b 100644 --- a/xmlsecurity/source/framework/signatureengine.cxx +++ b/xmlsecurity/source/framework/signatureengine.cxx @@ -19,7 +19,7 @@ #include "framework/signatureengine.hxx" -#include "xmlsignaturetemplateimpl.hxx" +#include "framework/xmlsignaturetemplateimpl.hxx" #include <com/sun/star/xml/wrapper/XXMLElementWrapper.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <rtl/ref.hxx> @@ -111,7 +111,7 @@ void SignatureEngine::tryToPerform( ) */ xSignatureTemplate->setBinding( this ); - startEngine(css::uno::Reference<css::xml::crypto::XXMLSignatureTemplate>(xSignatureTemplate.get())); + startEngine(xSignatureTemplate); /* * done diff --git a/xmlsecurity/source/framework/signatureverifierimpl.cxx b/xmlsecurity/source/framework/signatureverifierimpl.cxx index b02a78ee9d74..edda76b5bc0c 100644 --- a/xmlsecurity/source/framework/signatureverifierimpl.cxx +++ b/xmlsecurity/source/framework/signatureverifierimpl.cxx @@ -75,17 +75,12 @@ void SignatureVerifierImpl::notifyResultListener() const xSignatureVerifyResultListener->signatureVerified( m_nSecurityId, m_nStatus ); } -void SignatureVerifierImpl::startEngine( const cssu::Reference< - cssxc::XXMLSignatureTemplate >& - xSignatureTemplate) +void SignatureVerifierImpl::startEngine( const rtl::Reference<XMLSignatureTemplateImpl>& xSignatureTemplate) /****** SignatureVerifierImpl/startEngine ************************************ * * NAME * startEngine -- verifies the signature. * - * SYNOPSIS - * startEngine( xSignatureTemplate ); - * * INPUTS * xSignatureTemplate - the signature template (along with all referenced * elements) to be verified. @@ -94,7 +89,7 @@ void SignatureVerifierImpl::startEngine( const cssu::Reference< cssu::Reference< cssxc::XXMLSignatureTemplate > xResultTemplate; try { - xResultTemplate = m_xXMLSignature->validate(xSignatureTemplate, m_xXMLSecurityContext); + xResultTemplate = m_xXMLSignature->validate(css::uno::Reference<css::xml::crypto::XXMLSignatureTemplate>(xSignatureTemplate.get()), m_xXMLSecurityContext); m_nStatus = xResultTemplate->getStatus(); } catch( cssu::Exception& ) diff --git a/xmlsecurity/source/framework/xmlsignaturetemplateimpl.cxx b/xmlsecurity/source/framework/xmlsignaturetemplateimpl.cxx index b117dac54525..4fed055ea4eb 100644 --- a/xmlsecurity/source/framework/xmlsignaturetemplateimpl.cxx +++ b/xmlsecurity/source/framework/xmlsignaturetemplateimpl.cxx @@ -20,7 +20,7 @@ #include <sal/config.h> #include <rtl/ustring.hxx> #include <rtl/uuid.h> -#include "xmlsignaturetemplateimpl.hxx" +#include "framework/xmlsignaturetemplateimpl.hxx" using namespace ::com::sun::star::uno ; using ::com::sun::star::lang::XMultiServiceFactory ; diff --git a/xmlsecurity/source/framework/xmlsignaturetemplateimpl.hxx b/xmlsecurity/source/framework/xmlsignaturetemplateimpl.hxx deleted file mode 100644 index 1876aeb037a5..000000000000 --- a/xmlsecurity/source/framework/xmlsignaturetemplateimpl.hxx +++ /dev/null @@ -1,99 +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_SOURCE_FRAMEWORK_XMLSIGNATURETEMPLATEIMPL_HXX -#define INCLUDED_XMLSECURITY_SOURCE_FRAMEWORK_XMLSIGNATURETEMPLATEIMPL_HXX - -#include <sal/config.h> -#include <rtl/ustring.hxx> -#include <cppuhelper/factory.hxx> -#include <cppuhelper/implbase.hxx> -#include <com/sun/star/uno/Exception.hpp> - -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/lang/XSingleServiceFactory.hpp> - -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/xml/crypto/XXMLSignatureTemplate.hpp> -#include <com/sun/star/xml/wrapper/XXMLElementWrapper.hpp> - -#include <vector> - -class XMLSignatureTemplateImpl : public ::cppu::WeakImplHelper< - css::xml::crypto::XXMLSignatureTemplate , - css::lang::XServiceInfo > -{ - private: - css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > m_xTemplate ; - std::vector< css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > > targets; - css::uno::Reference< css::xml::crypto::XUriBinding > m_xUriBinding; - css::xml::crypto::SecurityOperationStatus m_nStatus; - - public: - explicit XMLSignatureTemplateImpl(); - virtual ~XMLSignatureTemplateImpl() override; - - //Methods from XXMLSignatureTemplate - virtual void SAL_CALL setTemplate( - const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& aXmlElement - ) override; - - virtual css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > SAL_CALL getTemplate( - ) override; - - virtual void SAL_CALL setTarget( - const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper >& aXmlElement - ) override; - - virtual css::uno::Sequence< css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > > SAL_CALL getTargets( - ) override; - - virtual void SAL_CALL setBinding( - const css::uno::Reference< css::xml::crypto::XUriBinding >& aUriBinding ) override; - virtual css::uno::Reference< css::xml::crypto::XUriBinding > - SAL_CALL getBinding( ) override; - - virtual void SAL_CALL setStatus( - css::xml::crypto::SecurityOperationStatus status ) override; - virtual css::xml::crypto::SecurityOperationStatus - SAL_CALL getStatus( ) override; - - //Methods from XServiceInfo - virtual OUString SAL_CALL getImplementationName() override ; - - virtual sal_Bool SAL_CALL supportsService( - const OUString& ServiceName - ) override ; - - virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override ; - - //Helper for XServiceInfo - static css::uno::Sequence< OUString > impl_getSupportedServiceNames() ; - - /// @throws css::uno::RuntimeException - static OUString impl_getImplementationName() ; - - //Helper for registry - /// @throws css::uno::RuntimeException - static css::uno::Reference< css::uno::XInterface > SAL_CALL impl_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& aServiceManager ) ; -}; - -#endif // _XMLSIGNATURETEMPLATE_XMLSECIMPL_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |