summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2018-04-05 21:02:25 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2018-04-07 09:25:20 +0200
commit8e069a319a200e3b6a105f3468cd87ef6af323b2 (patch)
tree6e6c0d3fcaa3dceb3b8e638547891fd29a071b6d
parent83b7bfc0efefb3c77e5c59553320e98539250c62 (diff)
xmlsecurity mscrypt: create SecurityEnvironment instances with a constructor
Change-Id: Ic121dc33252a1ac41bfdb09086d355321fd8d990 Reviewed-on: https://gerrit.libreoffice.org/52472 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx105
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx16
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx5
-rw-r--r--xmlsecurity/util/xsec_xmlsec.windows.component3
4 files changed, 51 insertions, 78 deletions
diff --git a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
index fb5d4b4cbbfa..9f164d62e803 100644
--- a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
+++ b/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
@@ -46,7 +46,7 @@
#include <osl/process.h>
#include <o3tl/char16_t2wchar_t.hxx>
-using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star;
using namespace ::com::sun::star::lang ;
using ::com::sun::star::lang::XMultiServiceFactory ;
using ::com::sun::star::lang::XSingleServiceFactory ;
@@ -102,8 +102,9 @@ void traceTrustStatus(DWORD err)
}
}
-SecurityEnvironment_MSCryptImpl::SecurityEnvironment_MSCryptImpl( const Reference< XMultiServiceFactory >& aFactory ) : m_hProv( NULL ) , m_pszContainer( nullptr ) , m_hKeyStore( nullptr ), m_hCertStore( nullptr ), m_hMySystemStore(nullptr), m_hRootSystemStore(nullptr), m_hTrustSystemStore(nullptr), m_hCaSystemStore(nullptr), m_bEnableDefault( false ), m_xServiceManager( aFactory ){
+SecurityEnvironment_MSCryptImpl::SecurityEnvironment_MSCryptImpl( const uno::Reference< uno::XComponentContext >& xContext ) : m_hProv( NULL ) , m_pszContainer( nullptr ) , m_hKeyStore( nullptr ), m_hCertStore( nullptr ), m_hMySystemStore(nullptr), m_hRootSystemStore(nullptr), m_hTrustSystemStore(nullptr), m_hCaSystemStore(nullptr), m_bEnableDefault( false ){
+ m_xServiceManager.set(xContext, uno::UNO_QUERY);
}
SecurityEnvironment_MSCryptImpl::~SecurityEnvironment_MSCryptImpl() {
@@ -152,12 +153,12 @@ SecurityEnvironment_MSCryptImpl::~SecurityEnvironment_MSCryptImpl() {
/* XServiceInfo */
OUString SAL_CALL SecurityEnvironment_MSCryptImpl::getImplementationName() {
- return impl_getImplementationName() ;
+ return OUString("com.sun.star.xml.crypto.SecurityEnvironment");
}
/* XServiceInfo */
sal_Bool SAL_CALL SecurityEnvironment_MSCryptImpl::supportsService( const OUString& serviceName) {
- Sequence< OUString > seqServiceNames = getSupportedServiceNames() ;
+ uno::Sequence< OUString > seqServiceNames = getSupportedServiceNames() ;
const OUString* pArray = seqServiceNames.getConstArray() ;
for( sal_Int32 i = 0 ; i < seqServiceNames.getLength() ; i ++ ) {
if( *( pArray + i ) == serviceName )
@@ -167,32 +168,13 @@ sal_Bool SAL_CALL SecurityEnvironment_MSCryptImpl::supportsService( const OUStri
}
/* XServiceInfo */
-Sequence< OUString > SAL_CALL SecurityEnvironment_MSCryptImpl::getSupportedServiceNames() {
- return impl_getSupportedServiceNames() ;
-}
-
-//Helper for XServiceInfo
-Sequence< OUString > SecurityEnvironment_MSCryptImpl::impl_getSupportedServiceNames() {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() ) ;
- Sequence<OUString> seqServiceNames { "com.sun.star.xml.crypto.SecurityEnvironment" };
+uno::Sequence< OUString > SAL_CALL SecurityEnvironment_MSCryptImpl::getSupportedServiceNames() {
+ uno::Sequence<OUString> seqServiceNames { "com.sun.star.xml.crypto.SecurityEnvironment" };
return seqServiceNames ;
}
-OUString SecurityEnvironment_MSCryptImpl::impl_getImplementationName() {
- return OUString("com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_MSCryptImpl") ;
-}
-
-//Helper for registry
-Reference< XInterface > SAL_CALL SecurityEnvironment_MSCryptImpl::impl_createInstance( const Reference< XMultiServiceFactory >& aServiceManager ) {
- return Reference< XInterface >( *new SecurityEnvironment_MSCryptImpl( aServiceManager ) ) ;
-}
-
-Reference< XSingleServiceFactory > SecurityEnvironment_MSCryptImpl::impl_createFactory( const Reference< XMultiServiceFactory >& aServiceManager ) {
- return ::cppu::createSingleFactory( aServiceManager , impl_getImplementationName() , impl_createInstance , impl_getSupportedServiceNames() ) ;
-}
-
/* XUnoTunnel */
-sal_Int64 SAL_CALL SecurityEnvironment_MSCryptImpl::getSomething( const Sequence< sal_Int8 >& aIdentifier )
+sal_Int64 SAL_CALL SecurityEnvironment_MSCryptImpl::getSomething( const uno::Sequence< sal_Int8 >& aIdentifier )
{
if( aIdentifier.getLength() == 16 && 0 == memcmp( getUnoTunnelId().getConstArray(), aIdentifier.getConstArray(), 16 ) ) {
return reinterpret_cast<sal_Int64>(this);
@@ -208,13 +190,13 @@ namespace
class theSecurityEnvironment_MSCryptImplUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theSecurityEnvironment_MSCryptImplUnoTunnelId > {};
}
-const Sequence< sal_Int8>& SecurityEnvironment_MSCryptImpl::getUnoTunnelId() {
+const uno::Sequence< sal_Int8>& SecurityEnvironment_MSCryptImpl::getUnoTunnelId() {
return theSecurityEnvironment_MSCryptImplUnoTunnelId::get().getSeq();
}
/* XUnoTunnel extension */
-SecurityEnvironment_MSCryptImpl* SecurityEnvironment_MSCryptImpl::getImplementation( const Reference< XInterface >& rObj ) {
- Reference< XUnoTunnel > xUT( rObj , UNO_QUERY ) ;
+SecurityEnvironment_MSCryptImpl* SecurityEnvironment_MSCryptImpl::getImplementation( const uno::Reference< XInterface >& rObj ) {
+ uno::Reference< XUnoTunnel > xUT( rObj , uno::UNO_QUERY ) ;
if( xUT.is() ) {
return reinterpret_cast<SecurityEnvironment_MSCryptImpl*>(xUT->getSomething( getUnoTunnelId() ));
} else
@@ -338,7 +320,7 @@ extern "C" BOOL WINAPI cert_enum_system_store_callback(const void *pvSystemStore
#endif
//Methods from XSecurityEnvironment
-Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::getPersonalCertificates()
+uno::Sequence< uno::Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::getPersonalCertificates()
{
sal_Int32 length ;
X509Certificate_MSCryptImpl* xcert ;
@@ -400,7 +382,7 @@ Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::getPerso
if( length != 0 ) {
int i ;
std::list< X509Certificate_MSCryptImpl* >::iterator xcertIt ;
- Sequence< Reference< XCertificate > > certSeq( length ) ;
+ uno::Sequence< uno::Reference< XCertificate > > certSeq( length ) ;
for( i = 0, xcertIt = certsList.begin(); xcertIt != certsList.end(); ++xcertIt, ++i ) {
certSeq[i] = *xcertIt ;
@@ -409,11 +391,11 @@ Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::getPerso
return certSeq ;
}
- return Sequence< Reference< XCertificate > >() ;
+ return uno::Sequence< uno::Reference< XCertificate > >() ;
}
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const OUString& issuerName, const Sequence< sal_Int8 >& serialNumber ) {
+uno::Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const OUString& issuerName, const uno::Sequence< sal_Int8 >& serialNumber ) {
unsigned int i ;
X509Certificate_MSCryptImpl *xcert = nullptr ;
PCCERT_CONTEXT pCertContext = nullptr ;
@@ -443,7 +425,7 @@ Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const
certInfo.Issuer.pbData = static_cast<BYTE*>(malloc( certInfo.Issuer.cbData ));
if(!certInfo.Issuer.pbData)
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
if( ! ( CertStrToNameW(
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
@@ -463,7 +445,7 @@ Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const
if (!cryptSerialNumber.pbData)
{
free( certInfo.Issuer.pbData ) ;
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
for( i = 0; i < cryptSerialNumber.cbData; i ++ )
cryptSerialNumber.pbData[i] = serialNumber[ cryptSerialNumber.cbData - i - 1 ] ;
@@ -608,12 +590,12 @@ Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const
return xcert ;
}
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const OUString& issuerName, const OUString& serialNumber ) {
- Sequence< sal_Int8 > serial = xmlsecurity::numericStringToBigInteger( serialNumber ) ;
+uno::Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const OUString& issuerName, const OUString& serialNumber ) {
+ uno::Sequence< sal_Int8 > serial = xmlsecurity::numericStringToBigInteger( serialNumber ) ;
return getCertificate( issuerName, serial ) ;
}
-Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::buildCertificatePath( const Reference< XCertificate >& begin ) {
+uno::Sequence< uno::Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::buildCertificatePath( const uno::Reference< XCertificate >& begin ) {
PCCERT_CHAIN_CONTEXT pChainContext ;
PCCERT_CONTEXT pCertContext ;
const X509Certificate_MSCryptImpl* xcert ;
@@ -629,10 +611,10 @@ Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::buildCer
chainPara.cbSize = sizeof( CERT_CHAIN_PARA ) ;
chainPara.RequestedUsage = certUsage ;
- Reference< XUnoTunnel > xCertTunnel( begin, UNO_QUERY_THROW ) ;
+ uno::Reference< XUnoTunnel > xCertTunnel( begin, uno::UNO_QUERY_THROW ) ;
xcert = reinterpret_cast<X509Certificate_MSCryptImpl*>(xCertTunnel->getSomething( X509Certificate_MSCryptImpl::getUnoTunnelId() ));
if( xcert == nullptr ) {
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
pCertContext = xcert->getMswcryCert() ;
@@ -704,7 +686,7 @@ Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::buildCer
pCertChain = pChainContext->rgpChain[0] ;
if( pCertChain->cElement ) {
- Sequence< Reference< XCertificate > > xCertChain( pCertChain->cElement ) ;
+ uno::Sequence< uno::Reference< XCertificate > > xCertChain( pCertChain->cElement ) ;
for( unsigned int i = 0 ; i < pCertChain->cElement ; i ++ ) {
if( pCertChain->rgpElement[i] )
@@ -728,10 +710,10 @@ Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl::buildCer
if (pChainContext)
CertFreeCertificateChain(pChainContext);
- return Sequence< Reference < XCertificate > >();
+ return uno::Sequence< uno::Reference < XCertificate > >();
}
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl::createCertificateFromRaw( const Sequence< sal_Int8 >& rawCertificate ) {
+uno::Reference< XCertificate > SecurityEnvironment_MSCryptImpl::createCertificateFromRaw( const uno::Sequence< sal_Int8 >& rawCertificate ) {
X509Certificate_MSCryptImpl* xcert ;
if( rawCertificate.getLength() > 0 ) {
@@ -744,7 +726,7 @@ Reference< XCertificate > SecurityEnvironment_MSCryptImpl::createCertificateFrom
return xcert ;
}
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl::createCertificateFromAscii( const OUString& asciiCertificate ) {
+uno::Reference< XCertificate > SecurityEnvironment_MSCryptImpl::createCertificateFromAscii( const OUString& asciiCertificate ) {
xmlChar* chCert ;
xmlSecSize certSize ;
@@ -754,7 +736,7 @@ Reference< XCertificate > SecurityEnvironment_MSCryptImpl::createCertificateFrom
certSize = xmlSecBase64Decode( chCert, chCert, xmlStrlen( chCert ) ) ;
- Sequence< sal_Int8 > rawCert( certSize ) ;
+ uno::Sequence< sal_Int8 > rawCert( certSize ) ;
for( xmlSecSize i = 0 ; i < certSize ; i ++ )
rawCert[i] = *( chCert + i ) ;
@@ -765,7 +747,7 @@ Reference< XCertificate > SecurityEnvironment_MSCryptImpl::createCertificateFrom
HCERTSTORE getCertStoreForIntermediatCerts(
- const Sequence< Reference< css::security::XCertificate > >& seqCerts)
+ const uno::Sequence< uno::Reference< css::security::XCertificate > >& seqCerts)
{
HCERTSTORE store = nullptr;
store = CertOpenStore(
@@ -777,7 +759,7 @@ HCERTSTORE getCertStoreForIntermediatCerts(
{
SAL_INFO("xmlsecurity.xmlsec", "Added temporary certificate: " << seqCerts[i]->getSubjectName());
- Sequence<sal_Int8> data = seqCerts[i]->getEncoded();
+ uno::Sequence<sal_Int8> data = seqCerts[i]->getEncoded();
PCCERT_CONTEXT cert = CertCreateCertificateContext(
X509_ASN_ENCODING, reinterpret_cast<const BYTE*>(&data[0]), data.getLength());
//Adding the certificate creates a copy and not just increases the ref count
@@ -793,21 +775,21 @@ HCERTSTORE getCertStoreForIntermediatCerts(
//errors occur. See also
//http://wiki.openoffice.org/wiki/Certificate_Path_Validation#Validation_status
sal_Int32 SecurityEnvironment_MSCryptImpl::verifyCertificate(
- const Reference< css::security::XCertificate >& aCert,
- const Sequence< Reference< css::security::XCertificate > >& seqCerts)
+ const uno::Reference< css::security::XCertificate >& aCert,
+ const uno::Sequence< uno::Reference< css::security::XCertificate > >& seqCerts)
{
sal_Int32 validity = 0;
PCCERT_CHAIN_CONTEXT pChainContext = nullptr;
PCCERT_CONTEXT pCertContext = nullptr;
- Reference< XUnoTunnel > xCertTunnel( aCert, UNO_QUERY_THROW ) ;
+ uno::Reference< XUnoTunnel > xCertTunnel( aCert, uno::UNO_QUERY_THROW ) ;
SAL_INFO("xmlsecurity.xmlsec", "Start verification of certificate: " << aCert->getSubjectName());
auto xcert = reinterpret_cast<const X509Certificate_MSCryptImpl*>
(xCertTunnel->getSomething( X509Certificate_MSCryptImpl::getUnoTunnelId() ));
if( xcert == nullptr ) {
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
pCertContext = xcert->getMswcryCert() ;
@@ -965,10 +947,10 @@ sal_Int32 SecurityEnvironment_MSCryptImpl::getCertificateCharacters( const css::
PCCERT_CONTEXT pCertContext ;
const X509Certificate_MSCryptImpl* xcert ;
- Reference< XUnoTunnel > xCertTunnel( aCert, UNO_QUERY_THROW ) ;
+ uno::Reference< XUnoTunnel > xCertTunnel( aCert, uno::UNO_QUERY_THROW ) ;
xcert = reinterpret_cast<X509Certificate_MSCryptImpl*>(xCertTunnel->getSomething( X509Certificate_MSCryptImpl::getUnoTunnelId() ));
if( xcert == nullptr ) {
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
pCertContext = xcert->getMswcryCert() ;
@@ -1041,7 +1023,7 @@ xmlSecKeysMngrPtr SecurityEnvironment_MSCryptImpl::createKeysManager() {
*/
pKeysMngr = xmlSecMSCryptoAppliedKeysMngrCreate() ;
if( pKeysMngr == nullptr )
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
/*-
* Adopt system default certificate store.
@@ -1053,7 +1035,7 @@ xmlSecKeysMngrPtr SecurityEnvironment_MSCryptImpl::createKeysManager() {
if( xmlSecMSCryptoAppliedKeysMngrAdoptKeyStore( pKeysMngr, m_hMySystemStore ) < 0 ) {
CertCloseStore( m_hMySystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
m_hMySystemStore = nullptr;
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
}
@@ -1063,7 +1045,7 @@ xmlSecKeysMngrPtr SecurityEnvironment_MSCryptImpl::createKeysManager() {
if( xmlSecMSCryptoAppliedKeysMngrAdoptTrustedStore( pKeysMngr, m_hRootSystemStore ) < 0 ) {
CertCloseStore( m_hRootSystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
m_hRootSystemStore = nullptr;
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
}
@@ -1073,7 +1055,7 @@ xmlSecKeysMngrPtr SecurityEnvironment_MSCryptImpl::createKeysManager() {
if( xmlSecMSCryptoAppliedKeysMngrAdoptUntrustedStore( pKeysMngr, m_hTrustSystemStore ) < 0 ) {
CertCloseStore( m_hTrustSystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
m_hTrustSystemStore = nullptr;
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
}
@@ -1083,7 +1065,7 @@ xmlSecKeysMngrPtr SecurityEnvironment_MSCryptImpl::createKeysManager() {
if( xmlSecMSCryptoAppliedKeysMngrAdoptUntrustedStore( pKeysMngr, m_hCaSystemStore ) < 0 ) {
CertCloseStore( m_hCaSystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
m_hCaSystemStore = nullptr;
- throw RuntimeException() ;
+ throw uno::RuntimeException() ;
}
}
}
@@ -1096,4 +1078,11 @@ void SecurityEnvironment_MSCryptImpl::destroyKeysManager(xmlSecKeysMngrPtr pKeys
}
}
+extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface*
+com_sun_star_xml_crypto_SecurityEnvironment_get_implementation(
+ uno::XComponentContext* pCtx, uno::Sequence<uno::Any> const& /*rSeq*/)
+{
+ return cppu::acquire(new SecurityEnvironment_MSCryptImpl(pCtx));
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx b/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx
index 978ebb655fc4..0c89f0abd696 100644
--- a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx
+++ b/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx
@@ -76,7 +76,7 @@ class SecurityEnvironment_MSCryptImpl : public ::cppu::WeakImplHelper<
css::uno::Reference< css::lang::XMultiServiceFactory > m_xServiceManager ;
public:
- explicit SecurityEnvironment_MSCryptImpl( const css::uno::Reference< css::lang::XMultiServiceFactory >& aFactory ) ;
+ explicit SecurityEnvironment_MSCryptImpl( const css::uno::Reference< css::uno::XComponentContext >& xContext ) ;
virtual ~SecurityEnvironment_MSCryptImpl() override;
//Methods from XSecurityEnvironment
@@ -123,20 +123,6 @@ class SecurityEnvironment_MSCryptImpl : public ::cppu::WeakImplHelper<
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 ) ;
-
- static css::uno::Reference< css::lang::XSingleServiceFactory > impl_createFactory(
- const css::uno::Reference< css::lang::XMultiServiceFactory >& aServiceManager ) ;
-
//Methods from XUnoTunnel
virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx b/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
index b4dd43ece9d6..647c62b608a3 100644
--- a/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
+++ b/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
@@ -25,7 +25,6 @@
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include "seinitializer_mscryptimpl.hxx"
-#include "securityenvironment_mscryptimpl.hxx"
using namespace ::cppu;
using namespace ::com::sun::star::uno;
@@ -41,9 +40,7 @@ void* mscrypt_component_getFactory( const sal_Char* pImplName , void* pServiceMa
Reference< XSingleServiceFactory > xFactory ;
if( pImplName != nullptr && pServiceManager != nullptr ) {
- if( SecurityEnvironment_MSCryptImpl::impl_getImplementationName().equalsAscii( pImplName ) ) {
- xFactory = SecurityEnvironment_MSCryptImpl::impl_createFactory( static_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- } else if( SEInitializer_MSCryptImpl_getImplementationName().equalsAscii( pImplName ) ) {
+ if( SEInitializer_MSCryptImpl_getImplementationName().equalsAscii( pImplName ) ) {
xFactory.set( createSingleFactory(
static_cast< XMultiServiceFactory * >( pServiceManager ),
OUString::createFromAscii( pImplName ),
diff --git a/xmlsecurity/util/xsec_xmlsec.windows.component b/xmlsecurity/util/xsec_xmlsec.windows.component
index 94a9629835c4..a9f94f8b3960 100644
--- a/xmlsecurity/util/xsec_xmlsec.windows.component
+++ b/xmlsecurity/util/xsec_xmlsec.windows.component
@@ -28,7 +28,8 @@
<implementation name="com.sun.star.xml.security.SEInitializer_Gpg">
<service name="com.sun.star.xml.crypto.GPGSEInitializer"/>
</implementation>
- <implementation name="com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_MSCryptImpl">
+ <implementation name="com.sun.star.xml.crypto.SecurityEnvironment"
+ constructor="com_sun_star_xml_crypto_SecurityEnvironment_get_implementation">
<service name="com.sun.star.xml.crypto.SecurityEnvironment"/>
</implementation>
<implementation name="com.sun.star.xml.wrapper.XMLDocumentWrapper"