summaryrefslogtreecommitdiff
path: root/xmlsecurity/source/component/registerservices.cxx
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2007-11-07 09:06:31 +0000
committerRüdiger Timm <rt@openoffice.org>2007-11-07 09:06:31 +0000
commit762a4c42f89062664e21ea5f1accf83465e4ad72 (patch)
tree374bfc20256517427bff49d53be5cc10f469d77d /xmlsecurity/source/component/registerservices.cxx
parentee8cd7ff22b39f5851057741fbf7ba1d8a085a40 (diff)
INTEGRATION: CWS tkr05_SRC680 (1.4.22); FILE MERGED
2007/09/20 11:07:14 tkr 1.4.22.1: #i31053#: WebDAV HTTPS Support
Diffstat (limited to 'xmlsecurity/source/component/registerservices.cxx')
-rw-r--r--xmlsecurity/source/component/registerservices.cxx62
1 files changed, 49 insertions, 13 deletions
diff --git a/xmlsecurity/source/component/registerservices.cxx b/xmlsecurity/source/component/registerservices.cxx
index 8f3c4cefc17b..472d9c8b3ae6 100644
--- a/xmlsecurity/source/component/registerservices.cxx
+++ b/xmlsecurity/source/component/registerservices.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: registerservices.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: ihi $ $Date: 2007-04-17 10:15:21 $
+ * last change: $Author: rt $ $Date: 2007-11-07 10:06:31 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -46,6 +46,7 @@
#include <documentdigitalsignatures.hxx>
+#include <certificatecontainer.hxx>
using namespace ::com::sun::star;
@@ -62,17 +63,33 @@ sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistr
{
try
{
- sal_Int32 nPos = 0;
- uno::Reference< registry::XRegistryKey > xNewKey(
- reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( DocumentDigitalSignatures::GetImplementationName() ) );
- xNewKey = xNewKey->createKey( rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
+ sal_Int32 nPos = 0;
+ // SERVICE DocumentDigitalSignatures
+ nPos = 0;
+ uno::Reference< registry::XRegistryKey > xNewKey(
+ reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( DocumentDigitalSignatures::GetImplementationName() ) );
- const uno::Sequence< rtl::OUString >& rSNL = DocumentDigitalSignatures::GetSupportedServiceNames();
- const rtl::OUString* pArray = rSNL.getConstArray();
- for ( nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
+ xNewKey = xNewKey->createKey( rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
- return sal_True;
+ const uno::Sequence< rtl::OUString >& rSNL = DocumentDigitalSignatures::GetSupportedServiceNames();
+ const rtl::OUString* pArray = rSNL.getConstArray();
+ for ( nPos = rSNL.getLength(); nPos--; )
+ xNewKey->createKey( pArray[nPos] );
+
+ // SERVICE CertificateContainer
+ nPos = 0;
+ uno::Reference< registry::XRegistryKey > xNewKeyCertificateContainer(
+ reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( CertificateContainer::impl_getStaticImplementationName() ) );
+ xNewKeyCertificateContainer = xNewKeyCertificateContainer->createKey( rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
+
+ const uno::Sequence< rtl::OUString >& rSNLCertificateContainer = CertificateContainer::impl_getStaticSupportedServiceNames();
+ const rtl::OUString* pArrayCertificateContainer = rSNLCertificateContainer.getConstArray();
+ for ( nPos = rSNLCertificateContainer.getLength(); nPos--; )
+ xNewKeyCertificateContainer->createKey( pArrayCertificateContainer[nPos] );
+
+ //-----------------------------
+
+ return sal_True;
}
catch (registry::InvalidRegistryException &)
{
@@ -87,10 +104,12 @@ void* SAL_CALL component_getFactory( const sal_Char * pImplName, void * pService
void* pRet = NULL;
//Decryptor
- rtl::OUString implName = rtl::OUString::createFromAscii( pImplName );
+ rtl::OUString implName = rtl::OUString::createFromAscii( pImplName );
+
+ // DocumentDigitalSignatures
if ( pServiceManager && implName.equals( DocumentDigitalSignatures::GetImplementationName() ) )
{
- uno::Reference< lang::XSingleServiceFactory > xFactory( cppu::createSingleFactory(
+ uno::Reference< lang::XSingleServiceFactory > xFactory( cppu::createSingleFactory(
reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ),
rtl::OUString::createFromAscii( pImplName ),
DocumentDigitalSignatures_CreateInstance, DocumentDigitalSignatures::GetSupportedServiceNames() ) );
@@ -101,6 +120,23 @@ void* SAL_CALL component_getFactory( const sal_Char * pImplName, void * pService
pRet = xFactory.get();
}
}
+
+ // CertificateContainer
+ if ( pServiceManager && implName.equals( CertificateContainer::impl_getStaticImplementationName() ))
+ {
+ uno::Reference< lang::XSingleServiceFactory > xFactoryCertificateContainer( cppu::createOneInstanceFactory(
+ reinterpret_cast< lang::XMultiServiceFactory * >( pServiceManager ),
+ rtl::OUString::createFromAscii( pImplName ),
+ CertificateContainer::impl_createInstance,
+ CertificateContainer::impl_getStaticSupportedServiceNames() ) );
+
+ if (xFactoryCertificateContainer.is())
+ {
+ xFactoryCertificateContainer->acquire();
+ pRet = xFactoryCertificateContainer.get();
+ }
+ }
+
return pRet;
}