summaryrefslogtreecommitdiff
path: root/xmlsecurity
diff options
context:
space:
mode:
authorMikhail Voytenko <mav@openoffice.org>2011-03-17 09:16:41 +0100
committerMikhail Voytenko <mav@openoffice.org>2011-03-17 09:16:41 +0100
commit99e3106a3e2185f521930f5a42adc4e5c1287245 (patch)
tree01ab245c0323a05e487edb36188aeed5563ca315 /xmlsecurity
parentb52c8fd79b8089608b9bc979b598602ffb171a90 (diff)
mav60: #164341# support AES encryption
Diffstat (limited to 'xmlsecurity')
-rw-r--r--xmlsecurity/source/helper/xmlsignaturehelper.cxx21
-rw-r--r--xmlsecurity/source/helper/xmlsignaturehelper2.cxx1
-rw-r--r--xmlsecurity/source/xmlsec/makefile.mk2
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx80
-rw-r--r--xmlsecurity/source/xmlsec/nss/makefile.mk10
-rw-r--r--xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.cxx21
-rw-r--r--xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.hxx6
-rw-r--r--xmlsecurity/source/xmlsec/nss/xsec_nss.cxx80
-rw-r--r--xmlsecurity/source/xmlsec/xsec_xmlsec.cxx4
-rw-r--r--xmlsecurity/util/xsec_xmlsec.component3
-rw-r--r--xmlsecurity/util/xsec_xmlsec.windows.component3
11 files changed, 23 insertions, 208 deletions
diff --git a/xmlsecurity/source/helper/xmlsignaturehelper.cxx b/xmlsecurity/source/helper/xmlsignaturehelper.cxx
index 5d898fd645e0..d2def9648476 100644
--- a/xmlsecurity/source/helper/xmlsignaturehelper.cxx
+++ b/xmlsecurity/source/helper/xmlsignaturehelper.cxx
@@ -83,7 +83,7 @@ bool XMLSignatureHelper::Init()
ImplCreateSEInitializer();
if ( mxSEInitializer.is() )
- mxSecurityContext = mxSEInitializer->createSecurityContext();
+ mxSecurityContext = mxSEInitializer->createSecurityContext( ::rtl::OUString() );
return mxSecurityContext.is();
}
@@ -418,25 +418,6 @@ sal_Int32 XMLSignatureHelper::GetSecurityEnvironmentNumber()
return (mxSecurityContext.is()?(mxSecurityContext->getSecurityEnvironmentNumber()): 0);
}
-
-/*
-void XMLSignatureHelper::createSecurityContext( rtl::OUString tokenPath )
-{
- if ( !mxSEInitializer.is() )
- ImplCreateSEInitializer();
-
- mxSecurityContext = mxSEInitializer->createSecurityContext(tokenPath);
-}
-
-void XMLSignatureHelper::freeSecurityContext()
-{
- if ( !mxSEInitializer.is() )
- ImplCreateSEInitializer();
-
- mxSEInitializer->freeSecurityContext( mxSecurityContext );
-}
-*/
-
IMPL_LINK( XMLSignatureHelper, SignatureCreationResultListener, XMLSignatureCreationResult*, pResult )
{
maCreationResults.insert( maCreationResults.begin() + maCreationResults.size(), *pResult );
diff --git a/xmlsecurity/source/helper/xmlsignaturehelper2.cxx b/xmlsecurity/source/helper/xmlsignaturehelper2.cxx
index c701adefd445..83988e872b49 100644
--- a/xmlsecurity/source/helper/xmlsignaturehelper2.cxx
+++ b/xmlsecurity/source/helper/xmlsignaturehelper2.cxx
@@ -31,6 +31,7 @@
#include <xmlsecurity/xmlsignaturehelper.hxx>
#include <xmlsignaturehelper2.hxx>
+#include <tools/solar.h>
#include <unotools/streamhelper.hxx>
#include <com/sun/star/embed/XStorage.hpp>
diff --git a/xmlsecurity/source/xmlsec/makefile.mk b/xmlsecurity/source/xmlsec/makefile.mk
index 44b668b84765..f3a30d8e987f 100644
--- a/xmlsecurity/source/xmlsec/makefile.mk
+++ b/xmlsecurity/source/xmlsec/makefile.mk
@@ -51,7 +51,7 @@ CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
.IF "$(CRYPTO_ENGINE)" == "mscrypto"
CDEFS += -DXMLSEC_CRYPTO_MSCRYPTO -DXMLSEC_NO_XSLT
.ELSE
-CDEFS += -DXMLSEC_CRYPTO_NSS -DXMLSEC_NO_XSLT
+CDEFS += -DXMLSEC_NO_XSLT
.ENDIF
# --- Files --------------------------------------------------------
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx b/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
index 87b7bf035cc5..8044cd403c83 100644
--- a/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
+++ b/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
@@ -51,86 +51,6 @@ using namespace ::com::sun::star::registry;
extern "C"
{
-sal_Bool SAL_CALL mscrypt_component_writeInfo( void* /*pServiceManager*/ , void* pRegistryKey )
-{
- sal_Bool result = sal_False;
- sal_Int32 i ;
- OUString sKeyName ;
- Reference< XRegistryKey > xNewKey ;
- Sequence< OUString > seqServices ;
- Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
-
- if( xKey.is() ) {
- // try {
- // XMLSignature_MSCryptImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLSignature_MSCryptImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLSignature_MSCryptImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // XMLEncryption_MSCryptImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLEncryption_MSCryptImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLEncryption_MSCryptImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // XMLSecurityContext_MSCryptImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLSecurityContext_MSCryptImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLSecurityContext_MSCryptImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // SecurityEnvironment_MSCryptImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += SecurityEnvironment_MSCryptImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = SecurityEnvironment_MSCryptImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // SEInitializer_MSCryptImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += SEInitializer_MSCryptImpl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = SEInitializer_MSCryptImpl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- return sal_True;
- //} catch( InvalidRegistryException & ) {
- // //we should not ignore exceptions
- // return sal_False ;
- //}
- }
- return result;
-}
-
void* SAL_CALL mscrypt_component_getFactory( const sal_Char* pImplName , void* pServiceManager , void* /*pRegistryKey*/ )
{
void* pRet = 0;
diff --git a/xmlsecurity/source/xmlsec/nss/makefile.mk b/xmlsecurity/source/xmlsec/nss/makefile.mk
index 8a5fad14ce5d..7d2faf6ace9c 100644
--- a/xmlsecurity/source/xmlsec/nss/makefile.mk
+++ b/xmlsecurity/source/xmlsec/nss/makefile.mk
@@ -41,12 +41,6 @@ ENABLE_EXCEPTIONS = TRUE
CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
.ENDIF
-.IF "$(CRYPTO_ENGINE)" != "nss"
-LIBTARGET=NO
-.ENDIF
-
-.IF "$(CRYPTO_ENGINE)" == "nss"
-
.IF "$(WITH_MOZILLA)" == "NO" || "$(ENABLE_NSS_MODULE)"!="YES"
.IF "$(SYSTEM_MOZILLA)" != "YES"
@all:
@@ -135,10 +129,6 @@ SLOFILES = \
$(SLO)$/xsec_nss.obj \
$(SLO)$/secerror.obj
-
-
-.ENDIF
-
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
diff --git a/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.cxx b/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.cxx
index 99415a5a8521..a614fac36a6e 100644
--- a/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.cxx
+++ b/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.cxx
@@ -89,7 +89,8 @@ using namespace com::sun::star;
using ::rtl::OUString;
using ::rtl::OString;
-#define SERVICE_NAME "com.sun.star.xml.crypto.SEInitializer"
+#define SE_SERVICE_NAME "com.sun.star.xml.crypto.SEInitializer"
+#define NSS_SERVICE_NAME "com.sun.star.xml.crypto.NSSInitializer"
#define IMPLEMENTATION_NAME "com.sun.star.xml.security.bridge.xmlsec.SEInitializer_NssImpl"
#define SECURITY_ENVIRONMENT "com.sun.star.xml.crypto.SecurityEnvironment"
#define SECURITY_CONTEXT "com.sun.star.xml.crypto.XMLSecurityContext"
@@ -400,7 +401,7 @@ SEInitializer_NssImpl::~SEInitializer_NssImpl()
/* XSEInitializer */
cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
- SEInitializer_NssImpl::createSecurityContext()
+ SEInitializer_NssImpl::createSecurityContext( const ::rtl::OUString& )
throw (cssu::RuntimeException)
{
CERTCertDBHandle *pCertHandle = NULL ;
@@ -441,7 +442,7 @@ cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
}
}
-css::uno::Reference< css::xml::crypto::XDigestContext > SAL_CALL SEInitializer_NssImpl::getDigestContext( ::sal_Int32 nDigestID, const css::uno::Any& aParams )
+css::uno::Reference< css::xml::crypto::XDigestContext > SAL_CALL SEInitializer_NssImpl::getDigestContext( ::sal_Int32 nDigestID, const css::uno::Sequence< css::beans::NamedValue >& aParams )
throw (css::lang::IllegalArgumentException, css::uno::RuntimeException)
{
SECOidTag nNSSDigestID = SEC_OID_UNKNOWN;
@@ -459,7 +460,7 @@ css::uno::Reference< css::xml::crypto::XDigestContext > SAL_CALL SEInitializer_N
else
throw css::lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unexpected digest requested." ) ), css::uno::Reference< css::uno::XInterface >(), 1 );
- if ( aParams.hasValue() )
+ if ( aParams.getLength() )
throw css::lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unexpected arguments provided for digest creation." ) ), css::uno::Reference< css::uno::XInterface >(), 2 );
css::uno::Reference< css::xml::crypto::XDigestContext > xResult;
@@ -473,7 +474,7 @@ css::uno::Reference< css::xml::crypto::XDigestContext > SAL_CALL SEInitializer_N
return xResult;
}
-css::uno::Reference< css::xml::crypto::XCipherContext > SAL_CALL SEInitializer_NssImpl::getCipherContext( ::sal_Int32 nCipherID, const css::uno::Sequence< ::sal_Int8 >& aKey, const css::uno::Sequence< ::sal_Int8 >& aInitializationVector, ::sal_Bool bEncryption, const css::uno::Any& aParams )
+css::uno::Reference< css::xml::crypto::XCipherContext > SAL_CALL SEInitializer_NssImpl::getCipherContext( ::sal_Int32 nCipherID, const css::uno::Sequence< ::sal_Int8 >& aKey, const css::uno::Sequence< ::sal_Int8 >& aInitializationVector, ::sal_Bool bEncryption, const css::uno::Sequence< css::beans::NamedValue >& aParams )
throw (css::lang::IllegalArgumentException, css::uno::RuntimeException)
{
CK_MECHANISM_TYPE nNSSCipherID = -1;
@@ -483,7 +484,7 @@ css::uno::Reference< css::xml::crypto::XCipherContext > SAL_CALL SEInitializer_N
if ( aKey.getLength() != 16 && aKey.getLength() != 24 && aKey.getLength() != 32 )
throw css::lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unexpected key length." ) ), css::uno::Reference< css::uno::XInterface >(), 2 );
- if ( aParams.hasValue() )
+ if ( aParams.getLength() )
throw css::lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unexpected arguments provided for cipher creation." ) ), css::uno::Reference< css::uno::XInterface >(), 5 );
}
else
@@ -511,18 +512,18 @@ rtl::OUString SEInitializer_NssImpl_getImplementationName ()
sal_Bool SAL_CALL SEInitializer_NssImpl_supportsService( const rtl::OUString& ServiceName )
throw (cssu::RuntimeException)
{
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ));
+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SE_SERVICE_NAME )) || ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( NSS_SERVICE_NAME ));
}
cssu::Sequence< rtl::OUString > SAL_CALL SEInitializer_NssImpl_getSupportedServiceNames( )
throw (cssu::RuntimeException)
{
- cssu::Sequence < rtl::OUString > aRet(1);
+ cssu::Sequence < rtl::OUString > aRet(2);
rtl::OUString* pArray = aRet.getArray();
- pArray[0] = rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+ pArray[0] = rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM ( SE_SERVICE_NAME ) );
+ pArray[1] = rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM ( NSS_SERVICE_NAME ) );
return aRet;
}
-#undef SERVICE_NAME
cssu::Reference< cssu::XInterface > SAL_CALL SEInitializer_NssImpl_createInstance( const cssu::Reference< cssl::XMultiServiceFactory > & rSMgr)
throw( cssu::Exception )
diff --git a/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.hxx b/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.hxx
index c7a130981e37..350071064ee6 100644
--- a/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.hxx
+++ b/xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.hxx
@@ -69,14 +69,14 @@ public:
/* XSEInitializer */
virtual ::com::sun::star::uno::Reference<
::com::sun::star::xml::crypto::XXMLSecurityContext >
- SAL_CALL createSecurityContext()
+ SAL_CALL createSecurityContext( const ::rtl::OUString& )
throw (::com::sun::star::uno::RuntimeException);
/* XDigestContextSupplier */
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XDigestContext > SAL_CALL getDigestContext( ::sal_Int32 nDigestID, const ::com::sun::star::uno::Any& aParams ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XDigestContext > SAL_CALL getDigestContext( ::sal_Int32 nDigestID, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aParams ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
/* XCipherContextSupplier */
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XCipherContext > SAL_CALL getCipherContext( ::sal_Int32 nCipherID, const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aKey, const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aInitializationVector, ::sal_Bool bEncryption, const ::com::sun::star::uno::Any& aParams ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XCipherContext > SAL_CALL getCipherContext( ::sal_Int32 nCipherID, const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aKey, const ::com::sun::star::uno::Sequence< ::sal_Int8 >& aInitializationVector, ::sal_Bool bEncryption, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aParams ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
/* XServiceInfo */
virtual rtl::OUString SAL_CALL getImplementationName( )
diff --git a/xmlsecurity/source/xmlsec/nss/xsec_nss.cxx b/xmlsecurity/source/xmlsec/nss/xsec_nss.cxx
index 344f76bf3e5d..759b79a27fee 100644
--- a/xmlsecurity/source/xmlsec/nss/xsec_nss.cxx
+++ b/xmlsecurity/source/xmlsec/nss/xsec_nss.cxx
@@ -51,86 +51,6 @@ using namespace ::com::sun::star::registry;
extern "C"
{
-sal_Bool SAL_CALL nss_component_writeInfo( void* /*pServiceManager*/ , void* pRegistryKey )
-{
- sal_Bool result = sal_False;
- sal_Int32 i ;
- OUString sKeyName ;
- Reference< XRegistryKey > xNewKey ;
- Sequence< OUString > seqServices ;
- Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
-
- if( xKey.is() ) {
- // try {
- // XMLSignature_NssImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLSignature_NssImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLSignature_NssImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // XMLEncryption_NssImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLEncryption_NssImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLEncryption_NssImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // XMLSecurityContext_NssImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLSecurityContext_NssImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLSecurityContext_NssImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // SecurityEnvironment_NssImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += SecurityEnvironment_NssImpl::impl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = SecurityEnvironment_NssImpl::impl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // SEInitializer_NssImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += SEInitializer_NssImpl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = SEInitializer_NssImpl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- return sal_True;
- //} catch( InvalidRegistryException & ) {
- // //we should not ignore exceptions
- // return sal_False ;
- //}
- }
- return result;
-}
-
void* SAL_CALL nss_component_getFactory( const sal_Char* pImplName , void* pServiceManager , void* /*pRegistryKey*/ )
{
void* pRet = 0;
diff --git a/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx b/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx
index 44f11b8d0874..3fba8c69820f 100644
--- a/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx
+++ b/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx
@@ -93,9 +93,7 @@ Reference< XInterface > SerialNumberAdapterImpl_createInstance(
extern "C"
{
-#if defined( XMLSEC_CRYPTO_NSS )
extern void* nss_component_getFactory( const sal_Char*, void*, void* );
-#endif
#if defined( XMLSEC_CRYPTO_MSCRYPTO )
extern void* mscrypt_component_getFactory( const sal_Char*, void*, void* );
@@ -140,11 +138,9 @@ void* SAL_CALL component_getFactory( const sal_Char* pImplName , void* pServiceM
xFactory->acquire() ;
pRet = xFactory.get() ;
} else {
-#if defined( XMLSEC_CRYPTO_NSS )
pRet = nss_component_getFactory( pImplName, pServiceManager, pRegistryKey ) ;
if( pRet != NULL )
return pRet ;
-#endif
#if defined( XMLSEC_CRYPTO_MSCRYPTO )
pRet = mscrypt_component_getFactory( pImplName, pServiceManager, pRegistryKey ) ;
diff --git a/xmlsecurity/util/xsec_xmlsec.component b/xmlsecurity/util/xsec_xmlsec.component
index de991899f026..3471ba83fc16 100644
--- a/xmlsecurity/util/xsec_xmlsec.component
+++ b/xmlsecurity/util/xsec_xmlsec.component
@@ -32,6 +32,9 @@
<service name="com.sun.star.security.SerialNumberAdapter"/>
</implementation>
<implementation name="com.sun.star.xml.security.bridge.xmlsec.SEInitializer_NssImpl">
+ <service name="com.sun.star.xml.crypto.NSSInitializer"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.SEInitializer_NssImpl">
<service name="com.sun.star.xml.crypto.SEInitializer"/>
</implementation>
<implementation name="com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_NssImpl">
diff --git a/xmlsecurity/util/xsec_xmlsec.windows.component b/xmlsecurity/util/xsec_xmlsec.windows.component
index fb11cc6e9d36..58a89af442d4 100644
--- a/xmlsecurity/util/xsec_xmlsec.windows.component
+++ b/xmlsecurity/util/xsec_xmlsec.windows.component
@@ -31,6 +31,9 @@
<implementation name="com.sun.star.security.SerialNumberAdapter">
<service name="com.sun.star.security.SerialNumberAdapter"/>
</implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.SEInitializer_NssImpl">
+ <service name="com.sun.star.xml.crypto.NSSInitializer"/>
+ </implementation>
<implementation name="com.sun.star.xml.security.bridge.xmlsec.SEInitializer_MSCryptImpl">
<service name="com.sun.star.xml.crypto.SEInitializer"/>
</implementation>