summaryrefslogtreecommitdiff
path: root/xmlsecurity/source/xmlsec/mscrypt
diff options
context:
space:
mode:
Diffstat (limited to 'xmlsecurity/source/xmlsec/mscrypt')
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/makefile.mk74
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/oid.hxx161
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.cxx182
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.hxx84
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx1279
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx205
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.cxx240
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.hxx105
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx656
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.hxx100
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx386
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.hxx100
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.cxx184
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.hxx134
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx312
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.hxx100
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx87
17 files changed, 0 insertions, 4389 deletions
diff --git a/xmlsecurity/source/xmlsec/mscrypt/makefile.mk b/xmlsecurity/source/xmlsec/mscrypt/makefile.mk
deleted file mode 100644
index 2287266de..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/makefile.mk
+++ /dev/null
@@ -1,74 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..$/..
-
-PRJNAME = xmlsecurity
-TARGET = xs_mscrypt
-
-ENABLE_EXCEPTIONS = TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/target.pmk
-
-.IF "$(CRYPTO_ENGINE)" != "mscrypto"
-LIBTARGET=NO
-.ENDIF
-
-.IF "$(CRYPTO_ENGINE)" == "mscrypto"
-
-.IF "$(WITH_MOZILLA)" == "NO" || "$(ENABLE_NSS_MODULE)"!="YES"
-.IF "$(SYSTEM_MOZILLA)" != "YES"
-@all:
- @echo "No mozilla -> no nss -> no libxmlsec -> no xmlsecurity/nss"
-.ENDIF
-.ENDIF
-
-CDEFS += -DXMLSEC_CRYPTO_MSCRYPTO -DXMLSEC_NO_XSLT
-
-# --- Files --------------------------------------------------------
-INCLOCAL = \
- ..
-
-SLOFILES = \
- $(SLO)$/securityenvironment_mscryptimpl.obj \
- $(SLO)$/xmlencryption_mscryptimpl.obj \
- $(SLO)$/xmlsecuritycontext_mscryptimpl.obj \
- $(SLO)$/xmlsignature_mscryptimpl.obj \
- $(SLO)$/x509certificate_mscryptimpl.obj \
- $(SLO)$/seinitializer_mscryptimpl.obj \
- $(SLO)$/xsec_mscrypt.obj \
- $(SLO)$/sanextension_mscryptimpl.obj
-
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/xmlsecurity/source/xmlsec/mscrypt/oid.hxx b/xmlsecurity/source/xmlsec/mscrypt/oid.hxx
deleted file mode 100644
index 1e69414e3..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/oid.hxx
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _OID_HXX_
-#define _OID_HXX_
-
-typedef struct OIDItemStr OIDItem;
-
-struct OIDItemStr {
- char *oid;
- char *desc;
-};
-
-OIDItem OIDs[] = {
- {"1.2.840.113549", "RSA Data Security Inc."},
- {"1.2.840.113549.1", "PKCS"},
- {"1.2.840.113549.2", "RSA digest algorithm"},
- {"1.2.840.113549.3", "RSA cipher algorithm"},
- {"1.2.840.113549.1.1", "PKCS #1"},
- {"1.2.840.113549.1.2", "Unknown"},
- {"1.2.840.113549.1.3", "Unknown"},
- {"1.2.840.113549.1.4", "Unknown"},
- {"1.2.840.113549.1.5", "PKCS #5"},
- {"1.2.840.113549.1.6", "Unknown"},
- {"1.2.840.113549.1.7", "PKCS #7"},
- {"1.2.840.113549.1.8", "Unknown"},
- {"1.2.840.113549.1.9", "PKCS #9"},
- {"1.2.840.113549.1.10", "Unknown"},
- {"1.2.840.113549.1.12", "PKCS #12"},
- {"1.2.840.113549.1.1.2", "PKCS #1 MD2 With RSA Encryption"},
- {"1.2.840.113549.1.1.3", "PKCS #1 MD4 With RSA Encryption"},
- {"1.2.840.113549.1.1.4", "PKCS #1 MD5 With RSA Encryption"},
- {"1.2.840.113549.1.1.1", "PKCS #1 RSA Encryption"},
- {"1.2.840.113549.1.1.2", "PKCS #1 MD2 With RSA Encryption"},
- {"1.2.840.113549.1.1.3", "PKCS #1 MD4 With RSA Encryption"},
- {"1.2.840.113549.1.1.4", "PKCS #1 MD5 With RSA Encryption"},
- {"1.2.840.113549.1.1.5", "PKCS #1 SHA-1 With RSA Encryption"},
- {"1.2.840.113549.1.1.5", "PKCS #1 SHA-1 With RSA Encryption"},
- {"1.2.840.113549.1.3.1", "Unknown"},
- {"1.2.840.113549.1.7.1", "PKCS #7 Data"},
- {"1.2.840.113549.1.7.2", "PKCS #7 Signed Data"},
- {"1.2.840.113549.1.7.3", "PKCS #7 Enveloped Data"},
- {"1.2.840.113549.1.7.4", "PKCS #7 Signed and Enveloped Data"},
- {"1.2.840.113549.1.7.5", "PKCS #7 Digested Data"},
- {"1.2.840.113549.1.7.5", "PKCS #7 Digested Data"},
- {"1.2.840.113549.1.7.6", "PKCS #7 Encrypted Data"},
- {"1.2.840.113549.1.9.1", "PKCS #9 Email Address"},
- {"1.2.840.113549.1.9.2", "PKCS #9 Unstructured Name"},
- {"1.2.840.113549.1.9.3", "PKCS #9 Content Type"},
- {"1.2.840.113549.1.9.4", "PKCS #9 Message Digest"},
- {"1.2.840.113549.1.9.5", "PKCS #9 Signing Time"},
- {"1.2.840.113549.1.9.6", "PKCS #9 Counter Signature"},
- {"1.2.840.113549.1.9.7", "PKCS #9 Challenge Password"},
- {"1.2.840.113549.1.9.8", "PKCS #9 Unstructured Address"},
- {"1.2.840.113549.1.9.9", "PKCS #9 Extended Certificate Attributes"},
- {"1.2.840.113549.1.9.15", "PKCS #9 S/MIME Capabilities"},
- {"1.2.840.113549.1.9.15.1", "Unknown"},
- {"1.2.840.113549.3.2", "RC2-CBC"},
- {"1.2.840.113549.3.4", "RC4"},
- {"1.2.840.113549.3.7", "DES-EDE3-CBC"},
- {"1.2.840.113549.3.9", "RC5-CBCPad"},
- {"1.2.840.10046", "ANSI X9.42"},
- {"1.2.840.10046.2.1", "Diffie-Hellman Public Key Algorithm"},
- {"1.2.840.10040", "ANSI X9.57"},
- {"1.2.840.10040.4.1", "ANSI X9.57 DSA Signature"},
- {"1.2.840.10040.4.3", "ANSI X9.57 Algorithm DSA Signature with SHA-1 Digest"},
- {"2.5", "Directory"},
- {"2.5.8", "X.500-defined algorithms"},
- {"2.5.8.1", "X.500-defined encryption algorithms"},
- {"2.5.8.2", "Unknown"},
- {"2.5.8.3", "Unknown"},
- {"2.5.8.1.1", "RSA Encryption Algorithm"},
- {"1.3.14", "Open Systems Implementors Workshop"},
- {"1.3.14.3.2", "OIW SECSIG Algorithm"},
- {"1.3.14.3.2.2", "Unknown"},
- {"1.3.14.3.2.3", "Unknown"},
- {"1.3.14.3.2.4", "Unknown"},
- {"1.3.14.3.2.6", "DES-ECB"},
- {"1.3.14.3.2.7", "DES-CBC"},
- {"1.3.14.3.2.8", "DES-OFB"},
- {"1.3.14.3.2.9", "DES-CFB"},
- {"1.3.14.3.2.10", "DES-MAC"},
- {"1.3.14.3.2.11", "Unknown"},
- {"1.3.14.3.2.12", "Unknown"},
- {"1.3.14.3.2.13", "Unknown"},
- {"1.3.14.3.2.14", "Unknown"},
- {"1.3.14.3.2.15", "ISO SHA with RSA Signature"},
- {"1.3.14.3.2.16", "Unknown"},
- {"1.3.14.3.2.17", "DES-EDE"},
- {"1.3.14.3.2.18", "Unknown"},
- {"1.3.14.3.2.19", "Unknown"},
- {"1.3.14.3.2.20", "Unknown"},
- {"1.3.14.3.2.21", "Unknown"},
- {"1.3.14.3.2.22", "Unknown"},
- {"1.3.14.3.2.23", "Unknown"},
- {"1.3.14.3.2.24", "Unknown"},
- {"1.3.14.3.2.25", "Unknown"},
- {"1.3.14.3.2.26", "SHA-1"},
- {"1.3.14.3.2.27", "Forgezza DSA Signature with SHA-1 Digest"},
- {"1.3.14.3.2.28", "Unknown"},
- {"1.3.14.3.2.29", "Unknown"},
- {"1.3.14.7.2", "Unknown"},
- {"1.3.14.7.2.1", "Unknown"},
- {"1.3.14.7.2.2", "Unknown"},
- {"1.3.14.7.2.3", "Unknown"},
- {"1.3.14.7.2.2.1", "Unknown"},
- {"1.3.14.7.2.3.1", "Unknown"},
- {"2.16.840.1.101.2.1", "US DOD Infosec"},
- {"2.16.840.1.101.2.1.1.1", "Unknown"},
- {"2.16.840.1.101.2.1.1.2", "MISSI DSS Algorithm (Old)"},
- {"2.16.840.1.101.2.1.1.3", "Unknown"},
- {"2.16.840.1.101.2.1.1.4", "Skipjack CBC64"},
- {"2.16.840.1.101.2.1.1.5", "Unknown"},
- {"2.16.840.1.101.2.1.1.6", "Unknown"},
- {"2.16.840.1.101.2.1.1.7", "Unknown"},
- {"2.16.840.1.101.2.1.1.8", "Unknown"},
- {"2.16.840.1.101.2.1.1.9", "Unknown"},
- {"2.16.840.1.101.2.1.1.10", "MISSI KEA Algorithm"},
- {"2.16.840.1.101.2.1.1.11", "Unknown"},
- {"2.16.840.1.101.2.1.1.12", "MISSI KEA and DSS Algorithm (Old)"},
- {"2.16.840.1.101.2.1.1.13", "Unknown"},
- {"2.16.840.1.101.2.1.1.14", "Unknown"},
- {"2.16.840.1.101.2.1.1.15", "Unknown"},
- {"2.16.840.1.101.2.1.1.16", "Unknown"},
- {"2.16.840.1.101.2.1.1.17", "Unknown"},
- {"2.16.840.1.101.2.1.1.18", "Unknown"},
- {"2.16.840.1.101.2.1.1.19", "MISSI DSS Algorithm"},
- {"2.16.840.1.101.2.1.1.20", "MISSI KEA and DSS Algorithm"},
- {"2.16.840.1.101.2.1.1.21", "Unknown"}
-};
-
-int nOID = 115;
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.cxx
deleted file mode 100644
index 9c47a853d..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.cxx
+++ /dev/null
@@ -1,182 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-#include <sal/config.h>
-#include <rtl/uuid.h>
-#include <rtl/ustring.hxx>
-#include <com/sun/star/security/ExtAltNameType.hpp>
-#include <com/sun/star/security/CertAltNameEntry.hpp>
-#include <com/sun/star/beans/NamedValue.hpp>
-#include <com/sun/star/uno/Reference.hxx>
-#include <comphelper/sequence.hxx>
-
-
-#ifndef _SANEXTENSION_MSCRYPTIMPL_HXX_
-#include "sanextension_mscryptimpl.hxx"
-#endif
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::security ;
-using ::rtl::OUString ;
-
-using ::com::sun::star::security::XCertificateExtension ;
-
-
-SanExtensionImpl :: SanExtensionImpl() :
- m_critical( sal_False )
-{
-}
-
-SanExtensionImpl :: ~SanExtensionImpl() {
-}
-
-
-//Methods from XCertificateExtension
-sal_Bool SAL_CALL SanExtensionImpl :: isCritical() throw( ::com::sun::star::uno::RuntimeException ) {
- return m_critical ;
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL SanExtensionImpl :: getExtensionId() throw( ::com::sun::star::uno::RuntimeException ) {
- return m_xExtnId ;
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL SanExtensionImpl :: getExtensionValue() throw( ::com::sun::star::uno::RuntimeException ) {
- return m_xExtnValue ;
-}
-
-//Methods from XSanExtension
-::com::sun::star::uno::Sequence< com::sun::star::security::CertAltNameEntry > SAL_CALL SanExtensionImpl :: getAlternativeNames() throw( ::com::sun::star::uno::RuntimeException ){
-
- if (!m_Entries.hasElements())
- {
- CERT_ALT_NAME_INFO *subjectName;
- DWORD size;
- CryptDecodeObjectEx(X509_ASN_ENCODING, X509_ALTERNATE_NAME, (unsigned char*) m_xExtnValue.getArray(), m_xExtnValue.getLength(), CRYPT_DECODE_ALLOC_FLAG | CRYPT_DECODE_NOCOPY_FLAG, NULL,&subjectName, &size);
-
- CertAltNameEntry* arrCertAltNameEntry = new CertAltNameEntry[subjectName->cAltEntry];
-
- for (unsigned int i = 0; i < (unsigned int)subjectName->cAltEntry; i++){
- PCERT_ALT_NAME_ENTRY pEntry = &subjectName->rgAltEntry[i];
-
- switch(pEntry->dwAltNameChoice) {
- case CERT_ALT_NAME_OTHER_NAME :
- {
- arrCertAltNameEntry[i].Type = ExtAltNameType_OTHER_NAME;
- PCERT_OTHER_NAME pOtherName = pEntry->pOtherName;
-
- ::com::sun::star::beans::NamedValue otherNameProp;
- otherNameProp.Name = ::rtl::OUString::createFromAscii(pOtherName->pszObjId);
-
- Sequence< sal_Int8 > otherName( pOtherName->Value.cbData ) ;
- for( unsigned int n = 0; n < (unsigned int) pOtherName->Value.cbData ; n ++ )
- otherName[n] = *( pOtherName->Value.pbData + n ) ;
-
- otherNameProp.Value <<= otherName;
-
- arrCertAltNameEntry[i].Value <<= otherNameProp;
- break;
- }
- case CERT_ALT_NAME_RFC822_NAME :
- arrCertAltNameEntry[i].Type = ExtAltNameType_RFC822_NAME;
- arrCertAltNameEntry[i].Value <<= ::rtl::OUString((const sal_Unicode*)pEntry->pwszRfc822Name);
- break;
- case CERT_ALT_NAME_DNS_NAME :
- arrCertAltNameEntry[i].Type = ExtAltNameType_DNS_NAME;
- arrCertAltNameEntry[i].Value <<= ::rtl::OUString((const sal_Unicode*)pEntry->pwszDNSName);
- break;
- case CERT_ALT_NAME_DIRECTORY_NAME :
- {
- arrCertAltNameEntry[i].Type = ExtAltNameType_DIRECTORY_NAME;
- break;
- }
- case CERT_ALT_NAME_URL :
- arrCertAltNameEntry[i].Type = ExtAltNameType_URL;
- arrCertAltNameEntry[i].Value <<= ::rtl::OUString((const sal_Unicode*)pEntry->pwszURL);
- break;
- case CERT_ALT_NAME_IP_ADDRESS :
- {
- arrCertAltNameEntry[i].Type = ExtAltNameType_IP_ADDRESS;
-
- Sequence< sal_Int8 > ipAddress( pEntry->IPAddress.cbData ) ;
- for( unsigned int n = 0; n < pEntry->IPAddress.cbData ; n ++ )
- ipAddress[n] = *( pEntry->IPAddress.pbData + n ) ;
-
- arrCertAltNameEntry[i].Value <<= ipAddress;
- break;
- }
- case CERT_ALT_NAME_REGISTERED_ID :
- arrCertAltNameEntry[i].Type = ExtAltNameType_REGISTERED_ID;
- arrCertAltNameEntry[i].Value <<= ::rtl::OUString::createFromAscii(pEntry->pszRegisteredID);
- break;
- }
- }
- m_Entries = ::comphelper::arrayToSequence< com::sun::star::security::CertAltNameEntry >(arrCertAltNameEntry, subjectName->cAltEntry);
-
- delete [] arrCertAltNameEntry;
- }
-
- return m_Entries;
-}
-
-//Helper method
-void SanExtensionImpl :: setCertExtn( ::com::sun::star::uno::Sequence< sal_Int8 > extnId, ::com::sun::star::uno::Sequence< sal_Int8 > extnValue, sal_Bool critical ) {
- m_critical = critical ;
- m_xExtnId = extnId ;
- m_xExtnValue = extnValue ;
-}
-
-void SanExtensionImpl :: setCertExtn( unsigned char* value, unsigned int vlen, unsigned char* id, unsigned int idlen, sal_Bool critical ) {
- unsigned int i ;
- if( value != NULL && vlen != 0 ) {
- Sequence< sal_Int8 > extnv( vlen ) ;
- for( i = 0; i < vlen ; i ++ )
- extnv[i] = *( value + i ) ;
-
- m_xExtnValue = extnv ;
- } else {
- m_xExtnValue = Sequence<sal_Int8>();
- }
-
- if( id != NULL && idlen != 0 ) {
- Sequence< sal_Int8 > extnId( idlen ) ;
- for( i = 0; i < idlen ; i ++ )
- extnId[i] = *( id + i ) ;
-
- m_xExtnId = extnId ;
- } else {
- m_xExtnId = Sequence<sal_Int8>();
- }
-
- m_critical = critical ;
-}
-
-void SanExtensionImpl :: extractCertExt () {
-}
-
diff --git a/xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.hxx b/xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.hxx
deleted file mode 100644
index 14813b025..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl.hxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SANEXTENSION_MSCRYPTIMPL_HXX_
-#define _SANEXTENSION_MSCRYPTIMPL_HXX_
-
-#ifdef _MSC_VER
-#pragma warning(push,1)
-#endif
-#include "Windows.h"
-#include "WinCrypt.h"
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <sal/config.h>
-#include <rtl/ustring.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/uno/Exception.hpp>
-#include "com/sun/star/uno/SecurityException.hpp"
-#include <com/sun/star/uno/Exception.hpp>
-#include <com/sun/star/security/XCertificateExtension.hpp>
-#include <com/sun/star/security/XSanExtension.hpp>
-#include <com/sun/star/security/CertAltNameEntry.hpp>
-
-class SanExtensionImpl : public ::cppu::WeakImplHelper1<
- ::com::sun::star::security::XSanExtension >
-{
- private :
- sal_Bool m_critical ;
- ::com::sun::star::uno::Sequence< sal_Int8 > m_xExtnId ;
- ::com::sun::star::uno::Sequence< sal_Int8 > m_xExtnValue ;
-
- ::com::sun::star::uno::Sequence< com::sun::star::security::CertAltNameEntry > m_Entries;
-
- public :
- SanExtensionImpl() ;
- virtual ~SanExtensionImpl() ;
-
- //Methods from XCertificateExtension
- virtual sal_Bool SAL_CALL isCritical() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getExtensionId() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getExtensionValue() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Methods from XSanExtension
-
- virtual ::com::sun::star::uno::Sequence< com::sun::star::security::CertAltNameEntry > SAL_CALL getAlternativeNames() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper method
- void setCertExtn( ::com::sun::star::uno::Sequence< sal_Int8 > extnId, ::com::sun::star::uno::Sequence< sal_Int8 > extnValue, sal_Bool critical ) ;
-
- void setCertExtn( unsigned char* value, unsigned int vlen, unsigned char* id, unsigned int idlen, sal_Bool critical ) ;
-
- void extractCertExt() ;
-} ;
-
-#endif // _CERTIFICATEEXTENSION_XMLSECIMPL_HXX_
-
diff --git a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
deleted file mode 100644
index db0cb9cda..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
+++ /dev/null
@@ -1,1279 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-
-#ifdef _MSC_VER
-#pragma warning(push,1)
-#endif
-#include "Windows.h"
-#include "WinCrypt.h"
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <sal/config.h>
-#include <sal/macros.h>
-#include <osl/thread.h>
-#include "securityenvironment_mscryptimpl.hxx"
-
-#include "x509certificate_mscryptimpl.hxx"
-#include <comphelper/servicehelper.hxx>
-
-#include <xmlsec/xmlsec.h>
-#include <xmlsec/keysmngr.h>
-#include <xmlsec/crypto.h>
-#include <xmlsec/base64.h>
-
-#include <xmlsecurity/biginteger.hxx>
-
-#include "xmlsec/keysmngr.h"
-#include "xmlsec/mscrypto/akmngr.h"
-
-#include <rtl/locale.h>
-#include <osl/nlsupport.h>
-#include <osl/process.h>
-
-#include <rtl/memory.h>
-
-#include "../diagnose.hxx"
-
-using namespace xmlsecurity;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::lang ;
-using ::com::sun::star::lang::XMultiServiceFactory ;
-using ::com::sun::star::lang::XSingleServiceFactory ;
-using ::rtl::OUString ;
-
-using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
-using ::com::sun::star::security::XCertificate ;
-namespace css = ::com::sun::star;
-
-extern X509Certificate_MSCryptImpl* MswcryCertContextToXCert( PCCERT_CONTEXT cert ) ;
-
-struct CertErrorToString{
- DWORD error;
- char * name;
-};
-
-CertErrorToString arErrStrings[] =
-{
- { 0x00000000, "CERT_TRUST_NO_ERROR"},
- { 0x00000001, "CERT_TRUST_IS_NOT_TIME_VALID"},
- { 0x00000002, "CERT_TRUST_IS_NOT_TIME_NESTED"},
- { 0x00000004, "CERT_TRUST_IS_REVOKED" },
- { 0x00000008, "CERT_TRUST_IS_NOT_SIGNATURE_VALID" },
- { 0x00000010, "CERT_TRUST_IS_NOT_SIGNATURE_VALID"},
- { 0x00000020, "CERT_TRUST_IS_UNTRUSTED_ROOT"},
- { 0x00000040, "CERT_TRUST_REVOCATION_STATUS_UNKNOWN"},
- { 0x00000080, "CERT_TRUST_IS_CYCLIC"},
- { 0x00000100, "CERT_TRUST_INVALID_EXTENSION"},
- { 0x00000200, "CERT_TRUST_INVALID_POLICY_CONSTRAINTS"},
- { 0x00000400, "CERT_TRUST_INVALID_BASIC_CONSTRAINTS"},
- { 0x00000800, "CERT_TRUST_INVALID_NAME_CONSTRAINTS"},
- { 0x00001000, "CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT"},
- { 0x00002000, "CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT"},
- { 0x00004000, "CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT"},
- { 0x00008000, "CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT"},
- { 0x01000000, "CERT_TRUST_IS_OFFLINE_REVOCATION"},
- { 0x02000000, "CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY"},
- { 0x04000000, "CERT_TRUST_IS_EXPLICIT_DISTRUST"},
- { 0x08000000, "CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT"},
- //Chain errors
- { 0x00010000, "CERT_TRUST_IS_PARTIAL_CHAIN"},
- { 0x00020000, "CERT_TRUST_CTL_IS_NOT_TIME_VALID"},
- { 0x00040000, "CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID"},
- { 0x00080000, "CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE"}
-};
-
-void traceTrustStatus(DWORD err)
-{
- xmlsec_trace("The certificate error status is: ");
- if (err == 0)
- xmlsec_trace("%s", arErrStrings[0].name);
- for (int i = 1; i < SAL_N_ELEMENTS(arErrStrings); i++)
- {
- if (arErrStrings[i].error & err)
- xmlsec_trace("%s", arErrStrings[i].name);
- }
-}
-
-SecurityEnvironment_MSCryptImpl :: SecurityEnvironment_MSCryptImpl( const Reference< XMultiServiceFactory >& aFactory ) : m_hProv( NULL ) , m_pszContainer( NULL ) , m_hKeyStore( NULL ), m_hCertStore( NULL ), m_tSymKeyList() , m_tPubKeyList() , m_tPriKeyList(), m_xServiceManager( aFactory ), m_bEnableDefault( sal_False ) {
-
-}
-
-SecurityEnvironment_MSCryptImpl :: ~SecurityEnvironment_MSCryptImpl() {
-
- if( m_hProv != NULL ) {
- CryptReleaseContext( m_hProv, 0 ) ;
- m_hProv = NULL ;
- }
-
- if( m_pszContainer != NULL ) {
- //TODO: Don't know whether or not it should be released now.
- m_pszContainer = NULL ;
- }
-
- if( m_hCertStore != NULL ) {
- CertCloseStore( m_hCertStore, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- m_hCertStore = NULL ;
- }
-
- if( m_hKeyStore != NULL ) {
- CertCloseStore( m_hKeyStore, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- m_hKeyStore = NULL ;
- }
-
- if( !m_tSymKeyList.empty() ) {
- std::list< HCRYPTKEY >::iterator symKeyIt ;
-
- for( symKeyIt = m_tSymKeyList.begin() ; symKeyIt != m_tSymKeyList.end() ; ++symKeyIt )
- CryptDestroyKey( *symKeyIt ) ;
- }
-
- if( !m_tPubKeyList.empty() ) {
- std::list< HCRYPTKEY >::iterator pubKeyIt ;
-
- for( pubKeyIt = m_tPubKeyList.begin() ; pubKeyIt != m_tPubKeyList.end() ; ++pubKeyIt )
- CryptDestroyKey( *pubKeyIt ) ;
- }
-
- if( !m_tPriKeyList.empty() ) {
- std::list< HCRYPTKEY >::iterator priKeyIt ;
-
- for( priKeyIt = m_tPriKeyList.begin() ; priKeyIt != m_tPriKeyList.end() ; ++priKeyIt )
- CryptDestroyKey( *priKeyIt ) ;
- }
-
-}
-
-/* XInitialization */
-void SAL_CALL SecurityEnvironment_MSCryptImpl :: initialize( const Sequence< Any >& /*aArguments*/ ) throw( Exception, RuntimeException ) {
- //TODO
-} ;
-
-/* XServiceInfo */
-OUString SAL_CALL SecurityEnvironment_MSCryptImpl :: getImplementationName() throw( RuntimeException ) {
- return impl_getImplementationName() ;
-}
-
-/* XServiceInfo */
-sal_Bool SAL_CALL SecurityEnvironment_MSCryptImpl :: supportsService( const OUString& serviceName) throw( RuntimeException ) {
- Sequence< OUString > seqServiceNames = getSupportedServiceNames() ;
- const OUString* pArray = seqServiceNames.getConstArray() ;
- for( sal_Int32 i = 0 ; i < seqServiceNames.getLength() ; i ++ ) {
- if( *( pArray + i ) == serviceName )
- return sal_True ;
- }
- return sal_False ;
-}
-
-/* XServiceInfo */
-Sequence< OUString > SAL_CALL SecurityEnvironment_MSCryptImpl :: getSupportedServiceNames() throw( RuntimeException ) {
- return impl_getSupportedServiceNames() ;
-}
-
-//Helper for XServiceInfo
-Sequence< OUString > SecurityEnvironment_MSCryptImpl :: impl_getSupportedServiceNames() {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() ) ;
- Sequence< OUString > seqServiceNames( 1 ) ;
- seqServiceNames.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.crypto.SecurityEnvironment")) ;
- return seqServiceNames ;
-}
-
-OUString SecurityEnvironment_MSCryptImpl :: impl_getImplementationName() throw( RuntimeException ) {
- return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_MSCryptImpl")) ;
-}
-
-//Helper for registry
-Reference< XInterface > SAL_CALL SecurityEnvironment_MSCryptImpl :: impl_createInstance( const Reference< XMultiServiceFactory >& aServiceManager ) throw( RuntimeException ) {
- 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 )
- throw( RuntimeException )
-{
- if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), aIdentifier.getConstArray(), 16 ) ) {
- return ( sal_Int64 )this ;
- }
- return 0 ;
-}
-
-/* XUnoTunnel extension */
-
-
-namespace
-{
- class theSecurityEnvironment_MSCryptImplUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theSecurityEnvironment_MSCryptImplUnoTunnelId > {};
-}
-
-const Sequence< sal_Int8>& SecurityEnvironment_MSCryptImpl :: getUnoTunnelId() {
- return theSecurityEnvironment_MSCryptImplUnoTunnelId::get().getSeq();
-}
-
-/* XUnoTunnel extension */
-SecurityEnvironment_MSCryptImpl* SecurityEnvironment_MSCryptImpl :: getImplementation( const Reference< XInterface > xObj ) {
- Reference< XUnoTunnel > xUT( xObj , UNO_QUERY ) ;
- if( xUT.is() ) {
- return ( SecurityEnvironment_MSCryptImpl* )xUT->getSomething( getUnoTunnelId() ) ;
- } else
- return NULL ;
-}
-
-/* Native methods */
-HCRYPTPROV SecurityEnvironment_MSCryptImpl :: getCryptoProvider() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) {
- return m_hProv ;
-}
-
-void SecurityEnvironment_MSCryptImpl :: setCryptoProvider( HCRYPTPROV aProv ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) {
- if( m_hProv != NULL ) {
- CryptReleaseContext( m_hProv, 0 ) ;
- m_hProv = NULL ;
- }
-
- if( aProv != NULL ) {
- m_hProv = aProv ;
- }
-}
-
-LPCTSTR SecurityEnvironment_MSCryptImpl :: getKeyContainer() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) {
- return m_pszContainer ;
-}
-
-void SecurityEnvironment_MSCryptImpl :: setKeyContainer( LPCTSTR aKeyContainer ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) {
- //TODO: Don't know whether or not it should be copied.
- m_pszContainer = aKeyContainer ;
-}
-
-
-HCERTSTORE SecurityEnvironment_MSCryptImpl :: getCryptoSlot() throw( Exception , RuntimeException ) {
- return m_hKeyStore ;
-}
-
-void SecurityEnvironment_MSCryptImpl :: setCryptoSlot( HCERTSTORE aSlot) throw( Exception , RuntimeException ) {
- if( m_hKeyStore != NULL ) {
- CertCloseStore( m_hKeyStore, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- m_hKeyStore = NULL ;
- }
-
- if( aSlot != NULL ) {
- m_hKeyStore = CertDuplicateStore( aSlot ) ;
- }
-}
-
-HCERTSTORE SecurityEnvironment_MSCryptImpl :: getCertDb() throw( Exception , RuntimeException ) {
- return m_hCertStore ;
-}
-
-void SecurityEnvironment_MSCryptImpl :: setCertDb( HCERTSTORE aCertDb ) throw( Exception , RuntimeException ) {
- if( m_hCertStore != NULL ) {
- CertCloseStore( m_hCertStore, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- m_hCertStore = NULL ;
- }
-
- if( aCertDb != NULL ) {
- m_hCertStore = CertDuplicateStore( aCertDb ) ;
- }
-}
-
-void SecurityEnvironment_MSCryptImpl :: adoptSymKey( HCRYPTKEY aSymKey ) throw( Exception , RuntimeException ) {
- HCRYPTKEY symkey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
-
- if( aSymKey != NULL ) {
- //First try to find the key in the list
- for( keyIt = m_tSymKeyList.begin() ; keyIt != m_tSymKeyList.end() ; ++keyIt ) {
- if( *keyIt == aSymKey )
- return ;
- }
-
- //If we do not find the key in the list, add a new node
- symkey = aSymKey ;
-
- try {
- m_tSymKeyList.push_back( symkey ) ;
- } catch ( Exception& ) {
- CryptDestroyKey( symkey ) ;
- }
- }
-}
-
-void SecurityEnvironment_MSCryptImpl :: rejectSymKey( HCRYPTKEY aSymKey ) throw( Exception , RuntimeException ) {
- HCRYPTKEY symkey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
-
- if( aSymKey != NULL ) {
- for( keyIt = m_tSymKeyList.begin() ; keyIt != m_tSymKeyList.end() ; ++keyIt ) {
- if( *keyIt == aSymKey ) {
- symkey = *keyIt ;
- CryptDestroyKey( symkey ) ;
- m_tSymKeyList.erase( keyIt ) ;
- break ;
- }
- }
- }
-}
-
-HCRYPTKEY SecurityEnvironment_MSCryptImpl :: getSymKey( unsigned int position ) throw( Exception , RuntimeException ) {
- HCRYPTKEY symkey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
- unsigned int pos ;
-
- symkey = NULL ;
- for( pos = 0, keyIt = m_tSymKeyList.begin() ; pos < position && keyIt != m_tSymKeyList.end() ; ++pos , ++keyIt ) ;
-
- if( pos == position && keyIt != m_tSymKeyList.end() )
- symkey = *keyIt ;
-
- return symkey ;
-}
-
-void SecurityEnvironment_MSCryptImpl :: adoptPubKey( HCRYPTKEY aPubKey ) throw( Exception , RuntimeException ) {
- HCRYPTKEY pubkey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
-
- if( aPubKey != NULL ) {
- //First try to find the key in the list
- for( keyIt = m_tPubKeyList.begin() ; keyIt != m_tPubKeyList.end() ; ++keyIt ) {
- if( *keyIt == aPubKey )
- return ;
- }
-
- //If we do not find the key in the list, add a new node
- pubkey = aPubKey ;
-
- try {
- m_tPubKeyList.push_back( pubkey ) ;
- } catch ( Exception& ) {
- CryptDestroyKey( pubkey ) ;
- }
- }
-}
-
-void SecurityEnvironment_MSCryptImpl :: rejectPubKey( HCRYPTKEY aPubKey ) throw( Exception , RuntimeException ) {
- HCRYPTKEY pubkey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
-
- if( aPubKey != NULL ) {
- for( keyIt = m_tPubKeyList.begin() ; keyIt != m_tPubKeyList.end() ; ++keyIt ) {
- if( *keyIt == aPubKey ) {
- pubkey = *keyIt ;
- CryptDestroyKey( pubkey ) ;
- m_tPubKeyList.erase( keyIt ) ;
- break ;
- }
- }
- }
-}
-
-HCRYPTKEY SecurityEnvironment_MSCryptImpl :: getPubKey( unsigned int position ) throw( Exception , RuntimeException ) {
- HCRYPTKEY pubkey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
- unsigned int pos ;
-
- pubkey = NULL ;
- for( pos = 0, keyIt = m_tPubKeyList.begin() ; pos < position && keyIt != m_tPubKeyList.end() ; ++pos , ++keyIt ) ;
-
- if( pos == position && keyIt != m_tPubKeyList.end() )
- pubkey = *keyIt ;
-
- return pubkey ;
-}
-
-void SecurityEnvironment_MSCryptImpl :: adoptPriKey( HCRYPTKEY aPriKey ) throw( Exception , RuntimeException ) {
- HCRYPTKEY prikey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
-
- if( aPriKey != NULL ) {
- //First try to find the key in the list
- for( keyIt = m_tPriKeyList.begin() ; keyIt != m_tPriKeyList.end() ; ++keyIt ) {
- if( *keyIt == aPriKey )
- return ;
- }
-
- //If we do not find the key in the list, add a new node
- prikey = aPriKey ;
-
- try {
- m_tPriKeyList.push_back( prikey ) ;
- } catch ( Exception& ) {
- CryptDestroyKey( prikey ) ;
- }
- }
-}
-
-void SecurityEnvironment_MSCryptImpl :: rejectPriKey( HCRYPTKEY aPriKey ) throw( Exception , RuntimeException ) {
- HCRYPTKEY prikey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
-
- if( aPriKey != NULL ) {
- for( keyIt = m_tPriKeyList.begin() ; keyIt != m_tPriKeyList.end() ; ++keyIt ) {
- if( *keyIt == aPriKey ) {
- prikey = *keyIt ;
- CryptDestroyKey( prikey ) ;
- m_tPriKeyList.erase( keyIt ) ;
- break ;
- }
- }
- }
-}
-
-HCRYPTKEY SecurityEnvironment_MSCryptImpl :: getPriKey( unsigned int position ) throw( Exception , RuntimeException ) {
- HCRYPTKEY prikey ;
- std::list< HCRYPTKEY >::iterator keyIt ;
- unsigned int pos ;
-
- prikey = NULL ;
- for( pos = 0, keyIt = m_tPriKeyList.begin() ; pos < position && keyIt != m_tPriKeyList.end() ; ++pos , ++keyIt ) ;
-
- if( pos == position && keyIt != m_tPriKeyList.end() )
- prikey = *keyIt ;
-
- return prikey ;
-}
-
-//Methods from XSecurityEnvironment
-Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl :: getPersonalCertificates() throw( SecurityException , RuntimeException )
-{
- sal_Int32 length ;
- X509Certificate_MSCryptImpl* xcert ;
- std::list< X509Certificate_MSCryptImpl* > certsList ;
- PCCERT_CONTEXT pCertContext = NULL;
-
- //firstly, we try to find private keys in given key store.
- if( m_hKeyStore != NULL ) {
- pCertContext = CertEnumCertificatesInStore( m_hKeyStore, pCertContext );
- while (pCertContext)
- {
- xcert = MswcryCertContextToXCert( pCertContext ) ;
- if( xcert != NULL )
- certsList.push_back( xcert ) ;
- pCertContext = CertEnumCertificatesInStore( m_hKeyStore, pCertContext );
- }
- }
-
- //secondly, we try to find certificate from registered private keys.
- if( !m_tPriKeyList.empty() ) {
- //TODO: Don't know whether or not it is necessary ans possible.
- }
-
- //Thirdly, we try to find certificate from system default key store.
- if( m_bEnableDefault ) {
- HCERTSTORE hSystemKeyStore ;
- DWORD dwKeySpec;
- HCRYPTPROV hCryptProv;
-
- hSystemKeyStore = CertOpenSystemStore( 0, "MY" ) ;
- if( hSystemKeyStore != NULL ) {
- pCertContext = CertEnumCertificatesInStore( hSystemKeyStore, pCertContext );
- while (pCertContext)
- {
- // for checking whether the certificate is a personal certificate or not.
- if(!(CryptAcquireCertificatePrivateKey(pCertContext,
- CRYPT_ACQUIRE_COMPARE_KEY_FLAG,
- NULL,
- &hCryptProv,
- &dwKeySpec,
- NULL)))
- {
- // Not Privatekey found. SKIP this one.
- pCertContext = CertEnumCertificatesInStore( hSystemKeyStore, pCertContext );
- continue;
- }
- // then TODO : Check the personal cert is valid or not.
-
- xcert = MswcryCertContextToXCert( pCertContext ) ;
- if( xcert != NULL )
- certsList.push_back( xcert ) ;
- pCertContext = CertEnumCertificatesInStore( hSystemKeyStore, pCertContext );
- }
- }
-
- CertCloseStore( hSystemKeyStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- }
-
- length = certsList.size() ;
- if( length != 0 ) {
- int i ;
- std::list< X509Certificate_MSCryptImpl* >::iterator xcertIt ;
- Sequence< Reference< XCertificate > > certSeq( length ) ;
-
- for( i = 0, xcertIt = certsList.begin(); xcertIt != certsList.end(); ++xcertIt, ++i ) {
- certSeq[i] = *xcertIt ;
- }
-
- return certSeq ;
- }
-
- return Sequence< Reference< XCertificate > >() ;
-}
-
-
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl :: getCertificate( const OUString& issuerName, const Sequence< sal_Int8 >& serialNumber ) throw( SecurityException , RuntimeException ) {
- unsigned int i ;
- LPSTR pszName ;
- X509Certificate_MSCryptImpl *xcert = NULL ;
- PCCERT_CONTEXT pCertContext = NULL ;
- HCERTSTORE hCertStore = NULL ;
- CRYPT_INTEGER_BLOB cryptSerialNumber ;
- CERT_INFO certInfo ;
-
- // for correct encoding
- sal_uInt16 encoding ;
- rtl_Locale *pLocale = NULL ;
- osl_getProcessLocale( &pLocale ) ;
- encoding = osl_getTextEncodingFromLocale( pLocale ) ;
-
- //Create cert info from issue and serial
- rtl::OString oissuer = rtl::OUStringToOString( issuerName , encoding ) ;
- pszName = ( char* )oissuer.getStr() ;
-
- if( ! ( CertStrToName(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- pszName ,
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG | CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG,
- NULL ,
- NULL ,
- &certInfo.Issuer.cbData, NULL ) )
- ) {
- return NULL ;
- }
-
- certInfo.Issuer.pbData = ( BYTE* )malloc( certInfo.Issuer.cbData );
- if(!certInfo.Issuer.pbData)
- throw RuntimeException() ;
-
- if( ! ( CertStrToName(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- pszName ,
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG | CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG,
- NULL ,
- ( BYTE* )certInfo.Issuer.pbData ,
- &certInfo.Issuer.cbData, NULL ) )
- ) {
- free( certInfo.Issuer.pbData ) ;
- return NULL ;
- }
-
- //Get the SerialNumber
- cryptSerialNumber.cbData = serialNumber.getLength() ;
- cryptSerialNumber.pbData = ( BYTE* )malloc( cryptSerialNumber.cbData);
- if (!cryptSerialNumber.pbData)
- {
- free( certInfo.Issuer.pbData ) ;
- throw RuntimeException() ;
- }
- for( i = 0; i < cryptSerialNumber.cbData; i ++ )
- cryptSerialNumber.pbData[i] = serialNumber[ cryptSerialNumber.cbData - i - 1 ] ;
-
- certInfo.SerialNumber.cbData = cryptSerialNumber.cbData ;
- certInfo.SerialNumber.pbData = cryptSerialNumber.pbData ;
-
- // Get the Cert from all store.
- for( i = 0 ; i < 6 ; i ++ )
- {
- switch(i)
- {
- case 0:
- if(m_hKeyStore == NULL) continue ;
- hCertStore = m_hKeyStore ;
- break;
- case 1:
- if(m_hCertStore == NULL) continue ;
- hCertStore = m_hCertStore ;
- break;
- case 2:
- hCertStore = CertOpenSystemStore( 0, "MY" ) ;
- if(hCertStore == NULL || !m_bEnableDefault) continue ;
- break;
- case 3:
- hCertStore = CertOpenSystemStore( 0, "Root" ) ;
- if(hCertStore == NULL || !m_bEnableDefault) continue ;
- break;
- case 4:
- hCertStore = CertOpenSystemStore( 0, "Trust" ) ;
- if(hCertStore == NULL || !m_bEnableDefault) continue ;
- break;
- case 5:
- hCertStore = CertOpenSystemStore( 0, "CA" ) ;
- if(hCertStore == NULL || !m_bEnableDefault) continue ;
- break;
- default:
- i=6;
- continue;
- }
-
-/*******************************************************************************
- * This code reserved for remind us there are another way to find one cert by
- * IssuerName&serialnumber. You can use the code to replaced the function
- * CertFindCertificateInStore IF and ONLY IF you must find one special cert in
- * certStore but can not be found by CertFindCertificateInStore , then , you
- * should also change the same part in libxmlsec/.../src/mscrypto/x509vfy.c#875.
- * By Chandler Peng(chandler.peng@sun.com)
- *****/
-/*******************************************************************************
- pCertContext = NULL ;
- found = 0;
- do{
- // 1. enum the certs has same string in the issuer string.
- pCertContext = CertEnumCertificatesInStore( hCertStore , pCertContext ) ;
- if( pCertContext != NULL )
- {
- // 2. check the cert's issuer name .
- char* issuer = NULL ;
- DWORD cbIssuer = 0 ;
-
- cbIssuer = CertNameToStr(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- &( pCertContext->pCertInfo->Issuer ),
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG ,
- NULL, 0
- ) ;
-
- if( cbIssuer == 0 ) continue ; // discard this cert;
-
- issuer = (char *)malloc( cbIssuer ) ;
- if( issuer == NULL ) // discard this cert;
- {
- free( cryptSerialNumber.pbData) ;
- free( certInfo.Issuer.pbData ) ;
- CertFreeCertificateContext( pCertContext ) ;
- if(i != 0 && i != 1) CertCloseStore( hCertStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- throw RuntimeException() ;
- }
-
- cbIssuer = CertNameToStr(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- &( pCertContext->pCertInfo->Issuer ),
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG ,
- issuer, cbIssuer
- ) ;
-
- if( cbIssuer <= 0 )
- {
- free( issuer ) ;
- continue ;// discard this cert;
- }
-
- if(strncmp(pszName , issuer , cbIssuer) != 0)
- {
- free( issuer ) ;
- continue ;// discard this cert;
- }
- free( issuer ) ;
-
- // 3. check the serial number.
- if( memcmp( cryptSerialNumber.pbData , pCertContext->pCertInfo->SerialNumber.pbData , cryptSerialNumber.cbData ) != 0 )
- {
- continue ;// discard this cert;
- }
-
- // 4. confirm and break;
- found = 1;
- break ;
- }
-
- }while(pCertContext);
-
- if(i != 0 && i != 1) CertCloseStore( hCertStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- if( found != 0 ) break; // Found the certificate.
-********************************************************************************/
-
- pCertContext = CertFindCertificateInStore(
- hCertStore,
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
- 0,
- CERT_FIND_SUBJECT_CERT,
- &certInfo,
- NULL
- ) ;
-
- if(i != 0 && i != 1) CertCloseStore( hCertStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- if( pCertContext != NULL ) break ; // Found the certificate.
-
- }
-
- if( cryptSerialNumber.pbData ) free( cryptSerialNumber.pbData ) ;
- if( certInfo.Issuer.pbData ) free( certInfo.Issuer.pbData ) ;
-
- if( pCertContext != NULL ) {
- xcert = MswcryCertContextToXCert( pCertContext ) ;
- if( pCertContext ) CertFreeCertificateContext( pCertContext ) ;
- } else {
- xcert = NULL ;
- }
-
- return xcert ;
-}
-
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl :: getCertificate( const OUString& issuerName, const OUString& serialNumber ) throw( SecurityException , RuntimeException ) {
- Sequence< sal_Int8 > serial = numericStringToBigInteger( serialNumber ) ;
- return getCertificate( issuerName, serial ) ;
-}
-
-Sequence< Reference < XCertificate > > SecurityEnvironment_MSCryptImpl :: buildCertificatePath( const Reference< XCertificate >& begin ) throw( SecurityException , RuntimeException ) {
- PCCERT_CHAIN_CONTEXT pChainContext ;
- PCCERT_CONTEXT pCertContext ;
- const X509Certificate_MSCryptImpl* xcert ;
-
- CERT_ENHKEY_USAGE enhKeyUsage ;
- CERT_USAGE_MATCH certUsage ;
- CERT_CHAIN_PARA chainPara ;
-
- enhKeyUsage.cUsageIdentifier = 0 ;
- enhKeyUsage.rgpszUsageIdentifier = NULL ;
- certUsage.dwType = USAGE_MATCH_TYPE_AND ;
- certUsage.Usage = enhKeyUsage ;
- chainPara.cbSize = sizeof( CERT_CHAIN_PARA ) ;
- chainPara.RequestedUsage = certUsage ;
-
- Reference< XUnoTunnel > xCertTunnel( begin, UNO_QUERY ) ;
- if( !xCertTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- xcert = ( X509Certificate_MSCryptImpl* )xCertTunnel->getSomething( X509Certificate_MSCryptImpl::getUnoTunnelId() ) ;
- if( xcert == NULL ) {
- throw RuntimeException() ;
- }
-
- pCertContext = xcert->getMswcryCert() ;
-
- pChainContext = NULL ;
-
- BOOL bChain = FALSE;
- if( pCertContext != NULL )
- {
- HCERTSTORE hAdditionalStore = NULL;
- HCERTSTORE hCollectionStore = NULL;
- if (m_hCertStore && m_hKeyStore)
- {
- //Merge m_hCertStore and m_hKeyStore into one store.
- hCollectionStore = CertOpenStore(
- CERT_STORE_PROV_COLLECTION ,
- 0 ,
- NULL ,
- 0 ,
- NULL
- ) ;
- if (hCollectionStore != NULL)
- {
- CertAddStoreToCollection (
- hCollectionStore ,
- m_hCertStore ,
- CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG ,
- 0) ;
- CertAddStoreToCollection (
- hCollectionStore ,
- m_hCertStore ,
- CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG ,
- 0) ;
- hAdditionalStore = hCollectionStore;
- }
-
- }
-
- //if the merge of both stores failed then we add only m_hCertStore
- if (hAdditionalStore == NULL && m_hCertStore)
- hAdditionalStore = m_hCertStore;
- else if (hAdditionalStore == NULL && m_hKeyStore)
- hAdditionalStore = m_hKeyStore;
- else
- hAdditionalStore = NULL;
-
- //CertGetCertificateChain searches by default in MY, CA, ROOT and TRUST
- bChain = CertGetCertificateChain(
- NULL ,
- pCertContext ,
- NULL , //use current system time
- hAdditionalStore,
- &chainPara ,
- CERT_CHAIN_REVOCATION_CHECK_CHAIN | CERT_CHAIN_TIMESTAMP_TIME ,
- NULL ,
- &pChainContext);
- if (!bChain)
- pChainContext = NULL;
-
- //Close the additional store
- CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_CHECK_FLAG);
- }
-
- if(bChain && pChainContext != NULL && pChainContext->cChain > 0 )
- {
- PCCERT_CONTEXT pCertInChain ;
- PCERT_SIMPLE_CHAIN pCertChain ;
- X509Certificate_MSCryptImpl* pCert ;
-
- pCertChain = pChainContext->rgpChain[0] ;
- if( pCertChain->cElement ) {
- Sequence< Reference< XCertificate > > xCertChain( pCertChain->cElement ) ;
-
- for( unsigned int i = 0 ; i < pCertChain->cElement ; i ++ ) {
- if( pCertChain->rgpElement[i] )
- pCertInChain = pCertChain->rgpElement[i]->pCertContext ;
- else
- pCertInChain = NULL ;
-
- if( pCertInChain != NULL ) {
- pCert = MswcryCertContextToXCert( pCertInChain ) ;
- if( pCert != NULL )
- xCertChain[i] = pCert ;
- }
- }
-
- CertFreeCertificateChain( pChainContext ) ;
- pChainContext = NULL ;
-
- return xCertChain ;
- }
- }
- if (pChainContext)
- CertFreeCertificateChain(pChainContext);
-
- return Sequence< Reference < XCertificate > >();
-}
-
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl :: createCertificateFromRaw( const Sequence< sal_Int8 >& rawCertificate ) throw( SecurityException , RuntimeException ) {
- X509Certificate_MSCryptImpl* xcert ;
-
- if( rawCertificate.getLength() > 0 ) {
- xcert = new X509Certificate_MSCryptImpl() ;
- if( xcert == NULL )
- throw RuntimeException() ;
-
- xcert->setRawCert( rawCertificate ) ;
- } else {
- xcert = NULL ;
- }
-
- return xcert ;
-}
-
-Reference< XCertificate > SecurityEnvironment_MSCryptImpl :: createCertificateFromAscii( const OUString& asciiCertificate ) throw( SecurityException , RuntimeException ) {
- xmlChar* chCert ;
- xmlSecSize certSize ;
-
- rtl::OString oscert = rtl::OUStringToOString( asciiCertificate , RTL_TEXTENCODING_ASCII_US ) ;
-
- chCert = xmlStrndup( ( const xmlChar* )oscert.getStr(), ( int )oscert.getLength() ) ;
-
- certSize = xmlSecBase64Decode( chCert, ( xmlSecByte* )chCert, xmlStrlen( chCert ) ) ;
-
- Sequence< sal_Int8 > rawCert( certSize ) ;
- for( unsigned int i = 0 ; i < certSize ; i ++ )
- rawCert[i] = *( chCert + i ) ;
-
- xmlFree( chCert ) ;
-
- return createCertificateFromRaw( rawCert ) ;
-}
-
-
-HCERTSTORE getCertStoreForIntermediatCerts(
- const Sequence< Reference< ::com::sun::star::security::XCertificate > >& seqCerts)
-{
- HCERTSTORE store = NULL;
- store = CertOpenStore(
- CERT_STORE_PROV_MEMORY, 0, NULL, 0, NULL);
- if (store == NULL)
- return NULL;
-
- for (int i = 0; i < seqCerts.getLength(); i++)
- {
- xmlsec_trace("Added temporary certificate: \n%s",
- OUStringToOString(seqCerts[i]->getSubjectName(),
- osl_getThreadTextEncoding()).getStr());
-
-
- Sequence<sal_Int8> data = seqCerts[i]->getEncoded();
- PCCERT_CONTEXT cert = CertCreateCertificateContext(
- X509_ASN_ENCODING, ( const BYTE* )&data[0], data.getLength());
- //Adding the certificate creates a copy and not just increases the ref count
- //Therefore we free later the certificate that we now add
- CertAddCertificateContextToStore(store, cert, CERT_STORE_ADD_ALWAYS, NULL);
- CertFreeCertificateContext(cert);
- }
- return store;
-}
-
-//We return only valid or invalid, as long as the API documentation expresses
-//explicitly that all validation steps are carried out even if one or several
-//errors occur. See also
-//http://wiki.services.openoffice.org/wiki/Certificate_Path_Validation#Validation_status
-sal_Int32 SecurityEnvironment_MSCryptImpl :: verifyCertificate(
- const Reference< ::com::sun::star::security::XCertificate >& aCert,
- const Sequence< Reference< ::com::sun::star::security::XCertificate > >& seqCerts)
- throw( ::com::sun::star::uno::SecurityException, ::com::sun::star::uno::RuntimeException )
-{
- sal_Int32 validity = 0;
- PCCERT_CHAIN_CONTEXT pChainContext = NULL;
- PCCERT_CONTEXT pCertContext = NULL;
- const X509Certificate_MSCryptImpl* xcert = NULL;
-
- Reference< XUnoTunnel > xCertTunnel( aCert, UNO_QUERY ) ;
- if( !xCertTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- xmlsec_trace("Start verification of certificate: \n %s",
- OUStringToOString(
- aCert->getSubjectName(), osl_getThreadTextEncoding()).getStr());
-
- xcert = ( X509Certificate_MSCryptImpl* )xCertTunnel->getSomething( X509Certificate_MSCryptImpl::getUnoTunnelId() ) ;
- if( xcert == NULL ) {
- throw RuntimeException() ;
- }
-
- pCertContext = xcert->getMswcryCert() ;
-
- CERT_ENHKEY_USAGE enhKeyUsage ;
- CERT_USAGE_MATCH certUsage ;
- CERT_CHAIN_PARA chainPara ;
- rtl_zeroMemory(&chainPara, sizeof(CERT_CHAIN_PARA));
-
- //Prepare parameter for CertGetCertificateChain
- enhKeyUsage.cUsageIdentifier = 0 ;
- enhKeyUsage.rgpszUsageIdentifier = NULL ;
- certUsage.dwType = USAGE_MATCH_TYPE_AND ;
- certUsage.Usage = enhKeyUsage ;
- chainPara.cbSize = sizeof( CERT_CHAIN_PARA ) ;
- chainPara.RequestedUsage = certUsage ;
-
-
- HCERTSTORE hCollectionStore = NULL;
- HCERTSTORE hIntermediateCertsStore = NULL;
- BOOL bChain = FALSE;
- if( pCertContext != NULL )
- {
- hIntermediateCertsStore =
- getCertStoreForIntermediatCerts(seqCerts);
-
- //Merge m_hCertStore and m_hKeyStore and the store of the intermediate
- //certificates into one store.
- hCollectionStore = CertOpenStore(
- CERT_STORE_PROV_COLLECTION ,
- 0 ,
- NULL ,
- 0 ,
- NULL
- ) ;
- if (hCollectionStore != NULL)
- {
- CertAddStoreToCollection (
- hCollectionStore ,
- m_hCertStore ,
- CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG ,
- 0) ;
- CertAddStoreToCollection (
- hCollectionStore ,
- m_hCertStore ,
- CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG ,
- 0) ;
- CertAddStoreToCollection (
- hCollectionStore,
- hIntermediateCertsStore,
- CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG,
- 0);
-
- }
-
- //CertGetCertificateChain searches by default in MY, CA, ROOT and TRUST
- //We do not check revocation of the root. In most cases there are none.
- //Then we would get CERT_TRUST_REVOCATION_STATUS_UNKNOWN
- xmlsec_trace("Verifying cert using revocation information.");
- bChain = CertGetCertificateChain(
- NULL ,
- pCertContext ,
- NULL , //use current system time
- hCollectionStore,
- &chainPara ,
- CERT_CHAIN_REVOCATION_CHECK_CHAIN | CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT,
- NULL ,
- &pChainContext);
-
- if (bChain && pChainContext->cChain > 0)
- {
- xmlsec_trace("Overall error status (all chains):");
- traceTrustStatus(pChainContext->TrustStatus.dwErrorStatus);
- //highest quality chains come first
- PCERT_SIMPLE_CHAIN pSimpleChain = pChainContext->rgpChain[0];
- xmlsec_trace("Error status of first chain: ");
- traceTrustStatus(pSimpleChain->TrustStatus.dwErrorStatus);
-
- //CERT_TRUST_REVOCATION_STATUS_UNKNOWN is also set if a certificate
- //has no AIA(OCSP) or CRLDP extension and there is no CRL locally installed.
- DWORD revocationFlags = CERT_TRUST_REVOCATION_STATUS_UNKNOWN |
- CERT_TRUST_IS_OFFLINE_REVOCATION;
- DWORD otherErrorsMask = ~revocationFlags;
- if( !(pSimpleChain->TrustStatus.dwErrorStatus & otherErrorsMask))
-
- {
- //No errors except maybe those caused by missing revocation information
- //Check if there are errors
- if ( pSimpleChain->TrustStatus.dwErrorStatus & revocationFlags)
- {
- //No revocation information. Because MSDN documentation is not
- //clear about if all other tests are performed if an error occurrs,
- //we test again, without requiring revocation checking.
- CertFreeCertificateChain(pChainContext);
- pChainContext = NULL;
- xmlsec_trace("Checking again but without requiring revocation information.");
- bChain = CertGetCertificateChain(
- NULL ,
- pCertContext ,
- NULL , //use current system time
- hCollectionStore,
- &chainPara ,
- 0,
- NULL ,
- &pChainContext);
- if (bChain
- && pChainContext->cChain > 0
- && pChainContext->rgpChain[0]->TrustStatus.dwErrorStatus == CERT_TRUST_NO_ERROR)
- {
- xmlsec_trace("Certificate is valid.\n");
- validity = ::com::sun::star::security::CertificateValidity::VALID;
- }
- else
- {
- xmlsec_trace("Certificate is invalid.\n");
- }
- }
- else
- {
- //valid and revocation information available
- xmlsec_trace("Certificate is valid.\n");
- validity = ::com::sun::star::security::CertificateValidity::VALID;
- }
- }
- else
- {
- //invalid
- xmlsec_trace("Certificate is invalid.\n");
- validity = ::com::sun::star::security::CertificateValidity::INVALID ;
- }
- }
- else
- {
- xmlsec_trace("CertGetCertificateChaine failed.\n");
- }
- }
-
- if (pChainContext)
- {
- CertFreeCertificateChain(pChainContext);
- pChainContext = NULL;
- }
-
- //Close the additional store, do not destroy the contained certs
- CertCloseStore(hCollectionStore, CERT_CLOSE_STORE_CHECK_FLAG);
- //Close the temporary store containing the intermediate certificates and make
- //sure all certificates are deleted.
- CertCloseStore(hIntermediateCertsStore, CERT_CLOSE_STORE_CHECK_FLAG);
-
- return validity ;
-}
-
-sal_Int32 SecurityEnvironment_MSCryptImpl :: getCertificateCharacters( const ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate >& aCert ) throw( ::com::sun::star::uno::SecurityException, ::com::sun::star::uno::RuntimeException ) {
- sal_Int32 characters ;
- PCCERT_CONTEXT pCertContext ;
- const X509Certificate_MSCryptImpl* xcert ;
-
- Reference< XUnoTunnel > xCertTunnel( aCert, UNO_QUERY ) ;
- if( !xCertTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- xcert = ( X509Certificate_MSCryptImpl* )xCertTunnel->getSomething( X509Certificate_MSCryptImpl::getUnoTunnelId() ) ;
- if( xcert == NULL ) {
- throw RuntimeException() ;
- }
-
- pCertContext = xcert->getMswcryCert() ;
-
- characters = 0x00000000 ;
-
- //Firstly, make sentence whether or not the cert is self-signed.
- if( CertCompareCertificateName( X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, &(pCertContext->pCertInfo->Subject), &(pCertContext->pCertInfo->Issuer) ) ) {
- characters |= ::com::sun::star::security::CertificateCharacters::SELF_SIGNED ;
- } else {
- characters &= ~ ::com::sun::star::security::CertificateCharacters::SELF_SIGNED ;
- }
-
- //Secondly, make sentence whether or not the cert has a private key.
- {
- BOOL fCallerFreeProv ;
- DWORD dwKeySpec ;
- HCRYPTPROV hProv ;
- if( CryptAcquireCertificatePrivateKey( pCertContext ,
- 0 ,
- NULL ,
- &( hProv ) ,
- &( dwKeySpec ) ,
- &( fCallerFreeProv ) )
- ) {
- characters |= ::com::sun::star::security::CertificateCharacters::HAS_PRIVATE_KEY ;
-
- if( hProv != NULL && fCallerFreeProv )
- CryptReleaseContext( hProv, 0 ) ;
- } else {
- characters &= ~ ::com::sun::star::security::CertificateCharacters::HAS_PRIVATE_KEY ;
- }
- }
- return characters ;
-}
-
-void SecurityEnvironment_MSCryptImpl :: enableDefaultCrypt( sal_Bool enable ) throw( Exception, RuntimeException ) {
- m_bEnableDefault = enable ;
-}
-
-sal_Bool SecurityEnvironment_MSCryptImpl :: defaultEnabled() throw( Exception, RuntimeException ) {
- return m_bEnableDefault ;
-}
-
-X509Certificate_MSCryptImpl* MswcryCertContextToXCert( PCCERT_CONTEXT cert )
-{
- X509Certificate_MSCryptImpl* xcert ;
-
- if( cert != NULL ) {
- xcert = new X509Certificate_MSCryptImpl() ;
- if( xcert != NULL ) {
- xcert->setMswcryCert( cert ) ;
- }
- } else {
- xcert = NULL ;
- }
-
- return xcert ;
-}
-
-::rtl::OUString SecurityEnvironment_MSCryptImpl::getSecurityEnvironmentInformation() throw( ::com::sun::star::uno::RuntimeException )
-{
- return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Microsoft Crypto API"));
-}
-
-/* Native methods */
-xmlSecKeysMngrPtr SecurityEnvironment_MSCryptImpl :: createKeysManager() throw( Exception, RuntimeException ) {
-
- unsigned int i ;
- HCRYPTKEY symKey ;
- HCRYPTKEY pubKey ;
- HCRYPTKEY priKey ;
- xmlSecKeysMngrPtr pKeysMngr = NULL ;
-
- /*-
- * The following lines is based on the of xmlsec-mscrypto crypto engine
- */
- pKeysMngr = xmlSecMSCryptoAppliedKeysMngrCreate( m_hKeyStore , m_hCertStore ) ;
- if( pKeysMngr == NULL )
- throw RuntimeException() ;
-
- /*-
- * Adopt symmetric key into keys manager
- */
- for( i = 0 ; ( symKey = getSymKey( i ) ) != NULL ; i ++ ) {
- if( xmlSecMSCryptoAppliedKeysMngrSymKeyLoad( pKeysMngr, symKey ) < 0 ) {
- throw RuntimeException() ;
- }
- }
-
- /*-
- * Adopt asymmetric public key into keys manager
- */
- for( i = 0 ; ( pubKey = getPubKey( i ) ) != NULL ; i ++ ) {
- if( xmlSecMSCryptoAppliedKeysMngrPubKeyLoad( pKeysMngr, pubKey ) < 0 ) {
- throw RuntimeException() ;
- }
- }
-
- /*-
- * Adopt asymmetric private key into keys manager
- */
- for( i = 0 ; ( priKey = getPriKey( i ) ) != NULL ; i ++ ) {
- if( xmlSecMSCryptoAppliedKeysMngrPriKeyLoad( pKeysMngr, priKey ) < 0 ) {
- throw RuntimeException() ;
- }
- }
-
- /*-
- * Adopt system default certificate store.
- */
- if( defaultEnabled() ) {
- HCERTSTORE hSystemStore ;
-
- //Add system key store into the keys manager.
- hSystemStore = CertOpenSystemStore( 0, "MY" ) ;
- if( hSystemStore != NULL ) {
- if( xmlSecMSCryptoAppliedKeysMngrAdoptKeyStore( pKeysMngr, hSystemStore ) < 0 ) {
- CertCloseStore( hSystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- throw RuntimeException() ;
- }
- }
-
- //Add system root store into the keys manager.
- hSystemStore = CertOpenSystemStore( 0, "Root" ) ;
- if( hSystemStore != NULL ) {
- if( xmlSecMSCryptoAppliedKeysMngrAdoptTrustedStore( pKeysMngr, hSystemStore ) < 0 ) {
- CertCloseStore( hSystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- throw RuntimeException() ;
- }
- }
-
- //Add system trusted store into the keys manager.
- hSystemStore = CertOpenSystemStore( 0, "Trust" ) ;
- if( hSystemStore != NULL ) {
- if( xmlSecMSCryptoAppliedKeysMngrAdoptUntrustedStore( pKeysMngr, hSystemStore ) < 0 ) {
- CertCloseStore( hSystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- throw RuntimeException() ;
- }
- }
-
- //Add system CA store into the keys manager.
- hSystemStore = CertOpenSystemStore( 0, "CA" ) ;
- if( hSystemStore != NULL ) {
- if( xmlSecMSCryptoAppliedKeysMngrAdoptUntrustedStore( pKeysMngr, hSystemStore ) < 0 ) {
- CertCloseStore( hSystemStore, CERT_CLOSE_STORE_CHECK_FLAG ) ;
- throw RuntimeException() ;
- }
- }
- }
-
- return pKeysMngr ;
-}
-void SecurityEnvironment_MSCryptImpl :: destroyKeysManager(xmlSecKeysMngrPtr pKeysMngr) throw( Exception, RuntimeException ) {
- if( pKeysMngr != NULL ) {
- xmlSecKeysMngrDestroy( pKeysMngr ) ;
- }
-}
-
-/* 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
deleted file mode 100644
index 4db220558..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XSECURITYENVIRONMENT_MSCRYPTIMPL_HXX_
-#define _XSECURITYENVIRONMENT_MSCRYPTIMPL_HXX_
-
-#ifdef _MSC_VER
-#pragma warning(push,1)
-#endif
-#include <windows.h>
-#include <wincrypt.h>
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <sal/config.h>
-#include <rtl/ustring.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase4.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/lang/XInitialization.hpp>
-#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp>
-#include <com/sun/star/security/XCertificate.hpp>
-#include <com/sun/star/security/CertificateCharacters.hpp>
-#include <com/sun/star/security/CertificateValidity.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-
-#include <list>
-#include "xmlsec/xmlsec.h"
-
-#include "sal/types.h"
-
-
-class SecurityEnvironment_MSCryptImpl : public ::cppu::WeakImplHelper4<
- ::com::sun::star::xml::crypto::XSecurityEnvironment ,
- ::com::sun::star::lang::XInitialization ,
- ::com::sun::star::lang::XServiceInfo ,
- ::com::sun::star::lang::XUnoTunnel >
-{
- private :
- //cyrpto provider and key container
- HCRYPTPROV m_hProv ;
- LPCTSTR m_pszContainer ;
-
- //Key store
- HCERTSTORE m_hKeyStore ;
-
- //Certiticate store
- HCERTSTORE m_hCertStore ;
-
- //Enable default system cryptography setting
- sal_Bool m_bEnableDefault ;
-
- //External keys
- std::list< HCRYPTKEY > m_tSymKeyList ;
- std::list< HCRYPTKEY > m_tPubKeyList ;
- std::list< HCRYPTKEY > m_tPriKeyList ;
-
- //Service manager
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager ;
-
- public :
- SecurityEnvironment_MSCryptImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aFactory ) ;
- virtual ~SecurityEnvironment_MSCryptImpl() ;
-
- //Methods from XSecurityEnvironment
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate > > SAL_CALL getPersonalCertificates()
- throw( ::com::sun::star::uno::SecurityException , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate > SAL_CALL getCertificate(
- const ::rtl::OUString& issuerName,
- const ::com::sun::star::uno::Sequence< sal_Int8 >& serialNumber )
- throw( ::com::sun::star::uno::SecurityException , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate > SAL_CALL getCertificate(
- const ::rtl::OUString& issuerName,
- const ::rtl::OUString& serialNumber )
- throw( ::com::sun::star::uno::SecurityException , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate > > SAL_CALL buildCertificatePath(
- const ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate >& beginCert )
- throw( ::com::sun::star::uno::SecurityException , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate > SAL_CALL createCertificateFromRaw(
- const ::com::sun::star::uno::Sequence< sal_Int8 >& rawCertificate )
- throw( ::com::sun::star::uno::SecurityException , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate > SAL_CALL createCertificateFromAscii(
- const ::rtl::OUString& asciiCertificate )
- throw( ::com::sun::star::uno::SecurityException , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::sal_Int32 SAL_CALL verifyCertificate(
- const ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate >& xCert,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference<
- ::com::sun::star::security::XCertificate > >& intermediateCertificates)
- throw (::com::sun::star::uno::SecurityException, ::com::sun::star::uno::RuntimeException) ;
-
- virtual ::sal_Int32 SAL_CALL getCertificateCharacters(
- const ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificate >& xCert )
- throw (::com::sun::star::uno::SecurityException, ::com::sun::star::uno::RuntimeException) ;
-
- virtual ::rtl::OUString SAL_CALL getSecurityEnvironmentInformation( )
- throw (::com::sun::star::uno::RuntimeException);
-
-
- //Methods from XInitialization
- virtual void SAL_CALL initialize(
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments
- ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- //Methods from XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual sal_Bool SAL_CALL supportsService(
- const ::rtl::OUString& ServiceName
- ) throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for XServiceInfo
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames() ;
-
- static ::rtl::OUString impl_getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for registry
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL impl_createInstance(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager )
- throw( ::com::sun::star::uno::RuntimeException ) ;
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > impl_createFactory(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager ) ;
-
- //Methods from XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier )
- throw (::com::sun::star::uno::RuntimeException);
-
- static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId() ;
- static SecurityEnvironment_MSCryptImpl* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xObj ) ;
-
- //Native mehtods
- virtual HCRYPTPROV getCryptoProvider() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual void setCryptoProvider( HCRYPTPROV aProv ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual LPCTSTR getKeyContainer() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual void setKeyContainer( LPCTSTR aKeyContainer ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual HCERTSTORE getCryptoSlot() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual void setCryptoSlot( HCERTSTORE aKeyStore ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual HCERTSTORE getCertDb() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual void setCertDb( HCERTSTORE aCertDb ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual void adoptSymKey( HCRYPTKEY aSymKey ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual void rejectSymKey( HCRYPTKEY aSymKey ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual HCRYPTKEY getSymKey( unsigned int position ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual void adoptPubKey( HCRYPTKEY aPubKey ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual void rejectPubKey( HCRYPTKEY aPubKey ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual HCRYPTKEY getPubKey( unsigned int position ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual void adoptPriKey( HCRYPTKEY aPriKey ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual void rejectPriKey( HCRYPTKEY aPriKey ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual HCRYPTKEY getPriKey( unsigned int position ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual void enableDefaultCrypt( sal_Bool enable ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- virtual sal_Bool defaultEnabled() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- //Native mehtods
- virtual xmlSecKeysMngrPtr createKeysManager() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- virtual void destroyKeysManager(xmlSecKeysMngrPtr pKeysMngr) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-} ;
-
-#endif // _XSECURITYENVIRONMENT_MSCRYPTIMPL_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.cxx
deleted file mode 100644
index 5f728c6b2..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.cxx
+++ /dev/null
@@ -1,240 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-
-#include "seinitializer_mscryptimpl.hxx"
-
-#include "securityenvironment_mscryptimpl.hxx"
-
-#include "xmlsec/strings.h"
-#include "xmlsec/mscrypto/app.h"
-
-namespace cssu = com::sun::star::uno;
-namespace cssl = com::sun::star::lang;
-namespace cssxc = com::sun::star::xml::crypto;
-
-#define SERVICE_NAME "com.sun.star.xml.crypto.SEInitializer"
-#define IMPLEMENTATION_NAME "com.sun.star.xml.security.bridge.xmlsec.SEInitializer_MSCryptImpl"
-#define SECURITY_ENVIRONMENT "com.sun.star.xml.crypto.SecurityEnvironment"
-#define SECURITY_CONTEXT "com.sun.star.xml.crypto.XMLSecurityContext"
-
-SEInitializer_MSCryptImpl::SEInitializer_MSCryptImpl(
- const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > &rxMSF)
- :mxMSF( rxMSF )
-{
-}
-
-SEInitializer_MSCryptImpl::~SEInitializer_MSCryptImpl()
-{
-}
-
-/* XSEInitializer */
-cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
- SEInitializer_MSCryptImpl::createSecurityContext(
- const rtl::OUString& sCertDB )
- throw (cssu::RuntimeException)
-{
- const char* n_pCertStore ;
- HCERTSTORE n_hStoreHandle ;
-
- //Initialize the crypto engine
- if( sCertDB.getLength() > 0 )
- {
- rtl::OString sCertDir(sCertDB, sCertDB.getLength(), RTL_TEXTENCODING_ASCII_US);
- n_pCertStore = sCertDir.getStr();
- n_hStoreHandle = CertOpenSystemStore( NULL, n_pCertStore ) ;
- if( n_hStoreHandle == NULL )
- {
- return NULL;
- }
- }
- else
- {
- n_pCertStore = NULL ;
- n_hStoreHandle = NULL ;
- }
-
- xmlSecMSCryptoAppInit( n_pCertStore ) ;
-
- try {
- /* Build Security Environment */
- const rtl::OUString sSecyrutyEnvironment ( RTL_CONSTASCII_USTRINGPARAM( SECURITY_ENVIRONMENT ) );
- cssu::Reference< cssxc::XSecurityEnvironment > xSecEnv( mxMSF->createInstance ( sSecyrutyEnvironment ), cssu::UNO_QUERY );
- if( !xSecEnv.is() )
- {
- if( n_hStoreHandle != NULL )
- {
- CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- }
-
- xmlSecMSCryptoAppShutdown() ;
- return NULL;
- }
-
- /* Setup key slot and certDb */
- cssu::Reference< cssl::XUnoTunnel > xEnvTunnel( xSecEnv , cssu::UNO_QUERY ) ;
- if( !xEnvTunnel.is() )
- {
- if( n_hStoreHandle != NULL )
- {
- CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- }
-
- xmlSecMSCryptoAppShutdown() ;
- return NULL;
- }
-
- SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xEnvTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
- if( pSecEnv == NULL )
- {
- if( n_hStoreHandle != NULL )
- {
- CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- }
-
- xmlSecMSCryptoAppShutdown() ;
- return NULL;
- }
-
- if( n_hStoreHandle != NULL )
- {
- pSecEnv->setCryptoSlot( n_hStoreHandle ) ;
- pSecEnv->setCertDb( n_hStoreHandle ) ;
- }
- else
- {
- pSecEnv->enableDefaultCrypt( sal_True ) ;
- }
-
- /* Build XML Security Context */
- const rtl::OUString sSecyrutyContext ( RTL_CONSTASCII_USTRINGPARAM( SECURITY_CONTEXT ) );
- cssu::Reference< cssxc::XXMLSecurityContext > xSecCtx( mxMSF->createInstance ( sSecyrutyContext ), cssu::UNO_QUERY );
- if( !xSecCtx.is() )
- {
- if( n_hStoreHandle != NULL )
- {
- CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- }
-
- xmlSecMSCryptoAppShutdown() ;
- return NULL;
- }
-
- xSecCtx->setDefaultSecurityEnvironmentIndex(xSecCtx->addSecurityEnvironment( xSecEnv )) ;
- return xSecCtx;
- }
- catch( cssu::Exception& )
- {
- if( n_hStoreHandle != NULL )
- {
- CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- }
-
- xmlSecMSCryptoAppShutdown() ;
- return NULL;
- }
-}
-
-void SAL_CALL SEInitializer_MSCryptImpl::freeSecurityContext( const cssu::Reference< cssxc::XXMLSecurityContext >&)
- throw (cssu::RuntimeException)
-{
- /*
- cssu::Reference< cssxc::XSecurityEnvironment > xSecEnv
- = securityContext->getSecurityEnvironment();
-
- if( xSecEnv.is() )
- {
- cssu::Reference< cssl::XUnoTunnel > xEnvTunnel( xSecEnv , cssu::UNO_QUERY ) ;
- if( xEnvTunnel.is() )
- {
- SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xEnvTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
- HCERTSTORE n_hStoreHandle = pSecEnv->getCryptoSlot();
-
- if( n_hStoreHandle != NULL )
- {
- CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
- pSecEnv->setCryptoSlot( NULL ) ;
- pSecEnv->setCertDb( NULL ) ;
- }
-
- xmlSecMSCryptoAppShutdown() ;
- }
- }
- */
-
- xmlSecMSCryptoAppShutdown() ;
-}
-
-rtl::OUString SEInitializer_MSCryptImpl_getImplementationName ()
- throw (cssu::RuntimeException)
-{
- return rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM ( IMPLEMENTATION_NAME ) );
-}
-
-sal_Bool SAL_CALL SEInitializer_MSCryptImpl_supportsService( const rtl::OUString& ServiceName )
- throw (cssu::RuntimeException)
-{
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ));
-}
-
-cssu::Sequence< rtl::OUString > SAL_CALL SEInitializer_MSCryptImpl_getSupportedServiceNames( )
- throw (cssu::RuntimeException)
-{
- cssu::Sequence < rtl::OUString > aRet(1);
- rtl::OUString* pArray = aRet.getArray();
- pArray[0] = rtl::OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
- return aRet;
-}
-#undef SERVICE_NAME
-
-cssu::Reference< cssu::XInterface > SAL_CALL SEInitializer_MSCryptImpl_createInstance( const cssu::Reference< cssl::XMultiServiceFactory > & rSMgr)
- throw( cssu::Exception )
-{
- return (cppu::OWeakObject*) new SEInitializer_MSCryptImpl(rSMgr);
-}
-
-/* XServiceInfo */
-rtl::OUString SAL_CALL SEInitializer_MSCryptImpl::getImplementationName( )
- throw (cssu::RuntimeException)
-{
- return SEInitializer_MSCryptImpl_getImplementationName();
-}
-sal_Bool SAL_CALL SEInitializer_MSCryptImpl::supportsService( const rtl::OUString& rServiceName )
- throw (cssu::RuntimeException)
-{
- return SEInitializer_MSCryptImpl_supportsService( rServiceName );
-}
-cssu::Sequence< rtl::OUString > SAL_CALL SEInitializer_MSCryptImpl::getSupportedServiceNames( )
- throw (cssu::RuntimeException)
-{
- return SEInitializer_MSCryptImpl_getSupportedServiceNames();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.hxx b/xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.hxx
deleted file mode 100644
index 6f95babac..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.hxx
+++ /dev/null
@@ -1,105 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SEINITIALIZERIMPL_HXX
-#define _SEINITIALIZERIMPL_HXX
-
-#include <com/sun/star/xml/crypto/XXMLSecurityContext.hpp>
-#include <com/sun/star/xml/crypto/XSEInitializer.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <cppuhelper/implbase2.hxx>
-
-#include <libxml/tree.h>
-
-class SEInitializer_MSCryptImpl : public cppu::WeakImplHelper2
-<
- com::sun::star::xml::crypto::XSEInitializer,
- com::sun::star::lang::XServiceInfo
->
-/****** SEInitializer_MSCryptImpl.hxx/CLASS SEInitializer_MSCryptImpl ***********
- *
- * NAME
- * SEInitializer_MSCryptImpl -- Class to initialize a Security Context
- * instance
- *
- * FUNCTION
- * Use this class to initialize a XmlSec based Security Context
- * instance. After this instance is used up, use this class to free this
- * instance.
- *
- * AUTHOR
- * Michael Mi
- * Email: michael.mi@sun.com
- ******************************************************************************/
-{
-private:
- com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > mxMSF;
-
-public:
- SEInitializer_MSCryptImpl(const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > &rxMSF);
- virtual ~SEInitializer_MSCryptImpl();
-
- /* XSEInitializer */
- virtual com::sun::star::uno::Reference<
- com::sun::star::xml::crypto::XXMLSecurityContext >
- SAL_CALL createSecurityContext( const rtl::OUString& certDB )
- throw (com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL freeSecurityContext( const com::sun::star::uno::Reference<
- com::sun::star::xml::crypto::XXMLSecurityContext >& securityContext )
- throw (com::sun::star::uno::RuntimeException);
-
- /* XServiceInfo */
- virtual rtl::OUString SAL_CALL getImplementationName( )
- throw (com::sun::star::uno::RuntimeException);
-
- virtual sal_Bool SAL_CALL supportsService( const rtl::OUString& ServiceName )
- throw (com::sun::star::uno::RuntimeException);
-
- virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames( )
- throw (com::sun::star::uno::RuntimeException);
-};
-
-rtl::OUString SEInitializer_MSCryptImpl_getImplementationName()
- throw ( com::sun::star::uno::RuntimeException );
-
-sal_Bool SAL_CALL SEInitializer_MSCryptImpl_supportsService( const rtl::OUString& ServiceName )
- throw ( com::sun::star::uno::RuntimeException );
-
-com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL SEInitializer_MSCryptImpl_getSupportedServiceNames( )
- throw ( com::sun::star::uno::RuntimeException );
-
-com::sun::star::uno::Reference< com::sun::star::uno::XInterface >
-SAL_CALL SEInitializer_MSCryptImpl_createInstance( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > & rSMgr)
- throw ( com::sun::star::uno::Exception );
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx
deleted file mode 100644
index 1c608af10..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx
+++ /dev/null
@@ -1,656 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-#include <sal/config.h>
-#include <comphelper/servicehelper.hxx>
-#include "x509certificate_mscryptimpl.hxx"
-#include "certificateextension_xmlsecimpl.hxx"
-#include "sanextension_mscryptimpl.hxx"
-
-#include "oid.hxx"
-
-#include <rtl/locale.h>
-#include <osl/nlsupport.h>
-#include <osl/process.h>
-#include <utility>
-
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::security ;
-using ::rtl::OUString ;
-
-using ::com::sun::star::security::XCertificate ;
-using ::com::sun::star::util::DateTime ;
-
-#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
-
-/*Resturns the index withing rRawString where sTypeName starts and where it ends.
- The starting index is pair.first. The ending index in pair.second points
- one char after the last character of the type.
- sTypeName can be
- "S" or "CN" (without ""). Do not use spaces at the beginning of the type name.
- If the type name is not found then pair.first and pair.second are -1.
-*/
-std::pair< sal_Int32, sal_Int32 >
-findTypeInDN(const OUString& rRawString, const OUString& sTypeName)
-{
- std::pair< sal_Int32, sal_Int32 > retVal;
- bool bInEscape = false;
- bool bInValue = false;
- bool bFound = false;
- sal_Int32 nTypeNameStart = 0;
- sal_Int32 length = rRawString.getLength();
-
- for (sal_Int32 i = 0; i < length; i++)
- {
- sal_Unicode c = rRawString[i];
-
- if (c == '=')
- {
- if (! bInValue)
- {
- OUString sType = rRawString.copy(nTypeNameStart, i - nTypeNameStart);
- sType = sType.trim();
- if (sType.equalsIgnoreAsciiCase(sTypeName))
- {
- bFound = true;
- break;
- }
- }
- }
- else if (c == '"')
- {
- if (!bInEscape)
- {
- //If this is the quote is the first of the couple which enclose the
- //whole value, because the value contains special characters
- //then we just drop it. That is, this character must be followed by
- //a character which is not '"'.
- if ( i + 1 < length && rRawString[i+1] == '"')
- bInEscape = true;
- else
- bInValue = !bInValue; //value is enclosed in " "
- }
- else
- {
- //This quote is escaped by a preceding quote and therefore is
- //part of the value
- bInEscape = false;
- }
- }
- else if (c == ',' || c == '+')
- {
- //The comma separate the attribute value pairs.
- //If the comma is not part of a value (the value would then be enclosed in '"'),
- //then we have reached the end of the value
- if (!bInValue)
- {
- //The next char is the start of the new type
- nTypeNameStart = i + 1;
- }
- }
- }
-
- //Found the Type Name, but there can still be spaces after the last comma
- //and the beginning of the type.
- if (bFound)
- {
- while (true)
- {
- sal_Unicode c = rRawString[nTypeNameStart];
- if (c != ' ' && c != '\t')
- //found
- break;
- nTypeNameStart ++;
- }
- // search end (one after last letter)
- sal_Int32 nTypeNameEnd = nTypeNameStart;
- nTypeNameEnd++;
- while (true)
- {
- sal_Unicode c = rRawString[nTypeNameEnd];
- if (c == ' ' || c == '\t' || c == '=')
- break;
- nTypeNameEnd++;
- }
- retVal = std::make_pair(nTypeNameStart, nTypeNameEnd);
- }
- else
- {
- retVal = std::make_pair(-1, -1);
- }
- return retVal;
-}
-
-
-/*
- MS Crypto uses the 'S' tag (equal to the 'ST' tag in NSS), but the NSS can't recognise
- it, so the 'S' tag should be changed to 'ST' tag. However I am not sure if this is necessary
- anymore, because we provide always the signers certificate when signing. So libmlsec can find
- the private key based on the provided certificate (X509Certificate element) and does not need
- the issuer name (X509IssuerName element). The issuer name in the xml signature has also no
- effect for the signature nor the certificate validation.
- In many RFCs, for example 4519, on speaks of 'ST'. However, the certificate does not contain
- strings for type names. Instead it uses OIDs.
- */
-
-OUString replaceTagSWithTagST(OUString oldDN)
-{
- std::pair<sal_Int32, sal_Int32 > pairIndex = findTypeInDN(oldDN, OUSTR("S"));
-
- if (pairIndex.first != -1)
- {
- OUString newDN = oldDN.copy(0, pairIndex.first);
- newDN += OUSTR("ST");
- newDN += oldDN.copy(pairIndex.second);
- return newDN;
- }
- return oldDN;
-}
-/* end */
-
-X509Certificate_MSCryptImpl :: X509Certificate_MSCryptImpl() :
- m_pCertContext( NULL )
-{
-}
-
-X509Certificate_MSCryptImpl :: ~X509Certificate_MSCryptImpl() {
- if( m_pCertContext != NULL ) {
- CertFreeCertificateContext( m_pCertContext ) ;
- }
-}
-
-//Methods from XCertificate
-sal_Int16 SAL_CALL X509Certificate_MSCryptImpl :: getVersion() throw ( ::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL ) {
- return ( char )m_pCertContext->pCertInfo->dwVersion ;
- } else {
- return -1 ;
- }
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL X509Certificate_MSCryptImpl :: getSerialNumber() throw ( ::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL ) {
- Sequence< sal_Int8 > serial( m_pCertContext->pCertInfo->SerialNumber.cbData ) ;
- for( unsigned int i = 0 ; i < m_pCertContext->pCertInfo->SerialNumber.cbData ; i ++ )
- serial[i] = *( m_pCertContext->pCertInfo->SerialNumber.pbData + m_pCertContext->pCertInfo->SerialNumber.cbData - i - 1 ) ;
-
- return serial ;
- } else {
- return Sequence< sal_Int8 >();
- }
-}
-
-::rtl::OUString SAL_CALL X509Certificate_MSCryptImpl :: getIssuerName() throw ( ::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL ) {
- char* issuer ;
- DWORD cbIssuer ;
-
- cbIssuer = CertNameToStr(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- &( m_pCertContext->pCertInfo->Issuer ),
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG ,
- NULL, 0
- ) ;
-
- // Here the cbIssuer count the last 0x00 , take care.
- if( cbIssuer != 0 ) {
- issuer = new char[ cbIssuer ] ;
- if( issuer == NULL )
- throw RuntimeException() ;
-
- cbIssuer = CertNameToStr(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- &( m_pCertContext->pCertInfo->Issuer ),
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG ,
- issuer, cbIssuer
- ) ;
-
- if( cbIssuer <= 0 ) {
- delete [] issuer ;
- throw RuntimeException() ;
- }
-
- // for correct encoding
- sal_uInt16 encoding ;
- rtl_Locale *pLocale = NULL ;
- osl_getProcessLocale( &pLocale ) ;
- encoding = osl_getTextEncodingFromLocale( pLocale ) ;
-
- if(issuer[cbIssuer-1] == 0) cbIssuer--; //delimit the last 0x00;
- OUString xIssuer(issuer , cbIssuer ,encoding ) ;
- delete [] issuer ;
-
- return replaceTagSWithTagST(xIssuer);
- } else {
- return OUString() ;
- }
- } else {
- return OUString() ;
- }
-}
-
-::rtl::OUString SAL_CALL X509Certificate_MSCryptImpl :: getSubjectName() throw ( ::com::sun::star::uno::RuntimeException)
-{
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL )
- {
- wchar_t* subject ;
- DWORD cbSubject ;
-
- cbSubject = CertNameToStrW(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- &( m_pCertContext->pCertInfo->Subject ),
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG ,
- NULL, 0
- ) ;
-
- if( cbSubject != 0 )
- {
- subject = new wchar_t[ cbSubject ] ;
- if( subject == NULL )
- throw RuntimeException() ;
-
- cbSubject = CertNameToStrW(
- X509_ASN_ENCODING | PKCS_7_ASN_ENCODING ,
- &( m_pCertContext->pCertInfo->Subject ),
- CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG ,
- subject, cbSubject
- ) ;
-
- if( cbSubject <= 0 ) {
- delete [] subject ;
- throw RuntimeException() ;
- }
-
- OUString xSubject(reinterpret_cast<const sal_Unicode*>(subject));
- delete [] subject ;
-
- return replaceTagSWithTagST(xSubject);
- } else
- {
- return OUString() ;
- }
- }
- else
- {
- return OUString() ;
- }
-}
-
-::com::sun::star::util::DateTime SAL_CALL X509Certificate_MSCryptImpl :: getNotValidBefore() throw ( ::com::sun::star::uno::RuntimeException ) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL ) {
- SYSTEMTIME explTime ;
- DateTime dateTime ;
- FILETIME localFileTime;
-
- if (FileTimeToLocalFileTime(&( m_pCertContext->pCertInfo->NotBefore ), &localFileTime))
- {
- if( FileTimeToSystemTime( &localFileTime, &explTime ) ) {
- //Convert the time to readable local time
- dateTime.HundredthSeconds = explTime.wMilliseconds / 100 ;
- dateTime.Seconds = explTime.wSecond ;
- dateTime.Minutes = explTime.wMinute ;
- dateTime.Hours = explTime.wHour ;
- dateTime.Day = explTime.wDay ;
- dateTime.Month = explTime.wMonth ;
- dateTime.Year = explTime.wYear ;
- }
- }
-
- return dateTime ;
- } else {
- return DateTime() ;
- }
-}
-
-::com::sun::star::util::DateTime SAL_CALL X509Certificate_MSCryptImpl :: getNotValidAfter() throw ( ::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL ) {
- SYSTEMTIME explTime ;
- DateTime dateTime ;
- FILETIME localFileTime;
-
- if (FileTimeToLocalFileTime(&( m_pCertContext->pCertInfo->NotAfter ), &localFileTime))
- {
- if( FileTimeToSystemTime( &localFileTime, &explTime ) ) {
- //Convert the time to readable local time
- dateTime.HundredthSeconds = explTime.wMilliseconds / 100 ;
- dateTime.Seconds = explTime.wSecond ;
- dateTime.Minutes = explTime.wMinute ;
- dateTime.Hours = explTime.wHour ;
- dateTime.Day = explTime.wDay ;
- dateTime.Month = explTime.wMonth ;
- dateTime.Year = explTime.wYear ;
- }
- }
-
- return dateTime ;
- } else {
- return DateTime() ;
- }
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL X509Certificate_MSCryptImpl :: getIssuerUniqueID() throw ( ::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL ) {
- Sequence< sal_Int8 > issuerUid( m_pCertContext->pCertInfo->IssuerUniqueId.cbData ) ;
- for( unsigned int i = 0 ; i < m_pCertContext->pCertInfo->IssuerUniqueId.cbData; i ++ )
- issuerUid[i] = *( m_pCertContext->pCertInfo->IssuerUniqueId.pbData + i ) ;
-
- return issuerUid ;
- } else {
- return Sequence< sal_Int8 >();
- }
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL X509Certificate_MSCryptImpl :: getSubjectUniqueID() throw ( ::com::sun::star::uno::RuntimeException ) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL ) {
- Sequence< sal_Int8 > subjectUid( m_pCertContext->pCertInfo->SubjectUniqueId.cbData ) ;
- for( unsigned int i = 0 ; i < m_pCertContext->pCertInfo->SubjectUniqueId.cbData; i ++ )
- subjectUid[i] = *( m_pCertContext->pCertInfo->SubjectUniqueId.pbData + i ) ;
-
- return subjectUid ;
- } else {
- return Sequence< sal_Int8 >();
- }
-}
-
-::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificateExtension > > SAL_CALL X509Certificate_MSCryptImpl :: getExtensions() throw ( ::com::sun::star::uno::RuntimeException ) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL && m_pCertContext->pCertInfo->cExtension != 0 ) {
- CertificateExtension_XmlSecImpl* xExtn ;
- CERT_EXTENSION* pExtn ;
- Sequence< Reference< XCertificateExtension > > xExtns( m_pCertContext->pCertInfo->cExtension ) ;
-
- for( unsigned int i = 0; i < m_pCertContext->pCertInfo->cExtension; i++ ) {
- pExtn = &(m_pCertContext->pCertInfo->rgExtension[i]) ;
-
-
- ::rtl::OUString objId = ::rtl::OUString::createFromAscii( pExtn->pszObjId );
-
- if ( objId.equalsAscii("2.5.29.17") )
- xExtn = (CertificateExtension_XmlSecImpl*) new SanExtensionImpl() ;
- else
- xExtn = new CertificateExtension_XmlSecImpl() ;
- if( xExtn == NULL )
- throw RuntimeException() ;
-
- xExtn->setCertExtn( pExtn->Value.pbData, pExtn->Value.cbData, ( unsigned char* )pExtn->pszObjId, strlen( pExtn->pszObjId ), sal::static_int_cast<sal_Bool>(pExtn->fCritical) ) ;
-
- xExtns[i] = xExtn ;
- }
-
- return xExtns ;
- } else {
- return Sequence< Reference< XCertificateExtension > >();
- }
-}
-
-::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificateExtension > SAL_CALL X509Certificate_MSCryptImpl :: findCertificateExtension( const ::com::sun::star::uno::Sequence< sal_Int8 >& /*oid*/ ) throw (::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL && m_pCertContext->pCertInfo->cExtension != 0 ) {
- CertificateExtension_XmlSecImpl* xExtn ;
- CERT_EXTENSION* pExtn ;
- Sequence< Reference< XCertificateExtension > > xExtns( m_pCertContext->pCertInfo->cExtension ) ;
-
- xExtn = NULL ;
- for( unsigned int i = 0; i < m_pCertContext->pCertInfo->cExtension; i++ ) {
- pExtn = &( m_pCertContext->pCertInfo->rgExtension[i] ) ;
-
- //TODO: Compare the oid
- if( 0 ) {
- xExtn = new CertificateExtension_XmlSecImpl() ;
- if( xExtn == NULL )
- throw RuntimeException() ;
-
- xExtn->setCertExtn( pExtn->Value.pbData, pExtn->Value.cbData, ( unsigned char* )pExtn->pszObjId, strlen( pExtn->pszObjId ), sal::static_int_cast<sal_Bool>(pExtn->fCritical) ) ;
- }
- }
-
- return xExtn ;
- } else {
- return NULL ;
- }
-}
-
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL X509Certificate_MSCryptImpl :: getEncoded() throw ( ::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL && m_pCertContext->cbCertEncoded > 0 ) {
- Sequence< sal_Int8 > rawCert( m_pCertContext->cbCertEncoded ) ;
-
- for( unsigned int i = 0 ; i < m_pCertContext->cbCertEncoded ; i ++ )
- rawCert[i] = *( m_pCertContext->pbCertEncoded + i ) ;
-
- return rawCert ;
- } else {
- return Sequence< sal_Int8 >();
- }
-}
-
-//Helper methods
-void X509Certificate_MSCryptImpl :: setMswcryCert( const CERT_CONTEXT* cert ) {
- if( m_pCertContext != NULL ) {
- CertFreeCertificateContext( m_pCertContext ) ;
- m_pCertContext = NULL ;
- }
-
- if( cert != NULL ) {
- m_pCertContext = CertDuplicateCertificateContext( cert ) ;
- }
-}
-
-const CERT_CONTEXT* X509Certificate_MSCryptImpl :: getMswcryCert() const {
- if( m_pCertContext != NULL ) {
- return m_pCertContext ;
- } else {
- return NULL ;
- }
-}
-
-void X509Certificate_MSCryptImpl :: setRawCert( Sequence< sal_Int8 > rawCert ) throw ( ::com::sun::star::uno::RuntimeException) {
- if( m_pCertContext != NULL ) {
- CertFreeCertificateContext( m_pCertContext ) ;
- m_pCertContext = NULL ;
- }
-
- if( rawCert.getLength() != 0 ) {
- m_pCertContext = CertCreateCertificateContext( X509_ASN_ENCODING, ( const sal_uInt8* )&rawCert[0], rawCert.getLength() ) ;
- }
-}
-
-/* XUnoTunnel */
-sal_Int64 SAL_CALL X509Certificate_MSCryptImpl :: getSomething( const Sequence< sal_Int8 >& aIdentifier ) throw( RuntimeException ) {
- if( aIdentifier.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), aIdentifier.getConstArray(), 16 ) ) {
- return ( sal_Int64 )this ;
- }
- return 0 ;
-}
-
-/* XUnoTunnel extension */
-
-namespace
-{
- class theX509Certificate_MSCryptImplUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theX509Certificate_MSCryptImplUnoTunnelId > {};
-}
-
-const Sequence< sal_Int8>& X509Certificate_MSCryptImpl :: getUnoTunnelId() {
- return theX509Certificate_MSCryptImplUnoTunnelId::get().getSeq();
-}
-
-/* XUnoTunnel extension */
-X509Certificate_MSCryptImpl* X509Certificate_MSCryptImpl :: getImplementation( const Reference< XInterface > xObj ) {
- Reference< XUnoTunnel > xUT( xObj , UNO_QUERY ) ;
- if( xUT.is() ) {
- return ( X509Certificate_MSCryptImpl* )xUT->getSomething( getUnoTunnelId() ) ;
- } else
- return NULL ;
-}
-
-::rtl::OUString findOIDDescription(char *oid)
-{
- OUString ouOID = OUString::createFromAscii( oid );
- for (int i=0; i<nOID; i++)
- {
- OUString item = OUString::createFromAscii( OIDs[i].oid );
- if (ouOID == item)
- {
- return OUString::createFromAscii( OIDs[i].desc );
- }
- }
-
- return OUString() ;
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > getThumbprint(const CERT_CONTEXT* pCertContext, DWORD dwPropId)
-{
- if( pCertContext != NULL )
- {
- DWORD cbData = 20;
- unsigned char fingerprint[20];
- if (CertGetCertificateContextProperty(pCertContext, dwPropId, (void*)fingerprint, &cbData))
- {
- Sequence< sal_Int8 > thumbprint( cbData ) ;
- for( unsigned int i = 0 ; i < cbData ; i ++ )
- {
- thumbprint[i] = fingerprint[i];
- }
-
- return thumbprint;
- }
- else
- {
- DWORD e = GetLastError();
- cbData = e;
- }
- }
-
- return Sequence< sal_Int8 >();
-}
-
-::rtl::OUString SAL_CALL X509Certificate_MSCryptImpl::getSubjectPublicKeyAlgorithm()
- throw ( ::com::sun::star::uno::RuntimeException)
-{
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL )
- {
- CRYPT_ALGORITHM_IDENTIFIER algorithm = m_pCertContext->pCertInfo->SubjectPublicKeyInfo.Algorithm;
- return findOIDDescription( algorithm.pszObjId ) ;
- }
- else
- {
- return OUString() ;
- }
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL X509Certificate_MSCryptImpl::getSubjectPublicKeyValue()
- throw ( ::com::sun::star::uno::RuntimeException)
-{
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL )
- {
- CRYPT_BIT_BLOB publicKey = m_pCertContext->pCertInfo->SubjectPublicKeyInfo.PublicKey;
-
- Sequence< sal_Int8 > key( publicKey.cbData ) ;
- for( unsigned int i = 0 ; i < publicKey.cbData ; i++ )
- {
- key[i] = *(publicKey.pbData + i) ;
- }
-
- return key;
- }
- else
- {
- return Sequence< sal_Int8 >();
- }
-}
-
-::rtl::OUString SAL_CALL X509Certificate_MSCryptImpl::getSignatureAlgorithm()
- throw ( ::com::sun::star::uno::RuntimeException)
-{
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL )
- {
- CRYPT_ALGORITHM_IDENTIFIER algorithm = m_pCertContext->pCertInfo->SignatureAlgorithm;
- return findOIDDescription( algorithm.pszObjId ) ;
- }
- else
- {
- return OUString() ;
- }
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL X509Certificate_MSCryptImpl::getSHA1Thumbprint()
- throw ( ::com::sun::star::uno::RuntimeException)
-{
- return getThumbprint(m_pCertContext, CERT_SHA1_HASH_PROP_ID);
-}
-
-::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL X509Certificate_MSCryptImpl::getMD5Thumbprint()
- throw ( ::com::sun::star::uno::RuntimeException)
-{
- return getThumbprint(m_pCertContext, CERT_MD5_HASH_PROP_ID);
-}
-
-sal_Int32 SAL_CALL X509Certificate_MSCryptImpl::getCertificateUsage( )
- throw ( ::com::sun::star::uno::RuntimeException)
-{
- sal_Int32 usage =
- CERT_DATA_ENCIPHERMENT_KEY_USAGE |
- CERT_DIGITAL_SIGNATURE_KEY_USAGE |
- CERT_KEY_AGREEMENT_KEY_USAGE |
- CERT_KEY_CERT_SIGN_KEY_USAGE |
- CERT_KEY_ENCIPHERMENT_KEY_USAGE |
- CERT_NON_REPUDIATION_KEY_USAGE |
- CERT_OFFLINE_CRL_SIGN_KEY_USAGE;
-
- if( m_pCertContext != NULL && m_pCertContext->pCertInfo != NULL && m_pCertContext->pCertInfo->cExtension != 0 )
- {
- CERT_EXTENSION* pExtn = CertFindExtension(
- szOID_KEY_USAGE,
- m_pCertContext->pCertInfo->cExtension,
- m_pCertContext->pCertInfo->rgExtension);
-
- if (pExtn != NULL)
- {
- CERT_KEY_USAGE_RESTRICTION_INFO keyUsage;
- DWORD length = sizeof(CERT_KEY_USAGE_RESTRICTION_INFO);
-
- bool rc = CryptDecodeObject(
- X509_ASN_ENCODING,
- X509_KEY_USAGE,
- pExtn->Value.pbData,
- pExtn->Value.cbData,
- CRYPT_DECODE_NOCOPY_FLAG,
- (void *)&keyUsage,
- &length);
-
- if (rc && keyUsage.RestrictedKeyUsage.cbData!=0)
- {
- usage = (sal_Int32)keyUsage.RestrictedKeyUsage.pbData;
- }
- }
- }
-
- return usage;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.hxx b/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.hxx
deleted file mode 100644
index 996b05f07..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _X509CERTIFICATE_MSCRYPTIMPL_HXX_
-#define _X509CERTIFICATE_MSCRYPTIMPL_HXX_
-
-#ifdef _MSC_VER
-#pragma warning(push,1)
-#endif
-#include "Windows.h"
-#include "WinCrypt.h"
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-#include <sal/config.h>
-#include <rtl/ustring.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <com/sun/star/uno/Exception.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <com/sun/star/uno/SecurityException.hpp>
-#include <com/sun/star/security/XCertificate.hpp>
-
-class X509Certificate_MSCryptImpl : public ::cppu::WeakImplHelper2<
- ::com::sun::star::security::XCertificate ,
- ::com::sun::star::lang::XUnoTunnel >
-{
- private :
- const CERT_CONTEXT* m_pCertContext ;
-
- public :
- X509Certificate_MSCryptImpl() ;
- virtual ~X509Certificate_MSCryptImpl() ;
-
- //Methods from XCertificate
- virtual sal_Int16 SAL_CALL getVersion() throw ( ::com::sun::star::uno::RuntimeException) ;
-
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getSerialNumber() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::rtl::OUString SAL_CALL getIssuerName() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::rtl::OUString SAL_CALL getSubjectName() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::util::DateTime SAL_CALL getNotValidBefore() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::util::DateTime SAL_CALL getNotValidAfter() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getIssuerUniqueID() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getSubjectUniqueID() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificateExtension > > SAL_CALL getExtensions() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::security::XCertificateExtension > SAL_CALL findCertificateExtension( const ::com::sun::star::uno::Sequence< sal_Int8 >& oid ) throw (::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getEncoded() throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::rtl::OUString SAL_CALL getSubjectPublicKeyAlgorithm()
- throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getSubjectPublicKeyValue()
- throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::rtl::OUString SAL_CALL getSignatureAlgorithm()
- throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getSHA1Thumbprint()
- throw ( ::com::sun::star::uno::RuntimeException) ;
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getMD5Thumbprint()
- throw ( ::com::sun::star::uno::RuntimeException) ;
-
- virtual sal_Int32 SAL_CALL getCertificateUsage( ) throw ( ::com::sun::star::uno::RuntimeException) ;
-
- //Methods from XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw (com::sun::star::uno::RuntimeException);
-
- static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId() ;
- static X509Certificate_MSCryptImpl* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xObj ) ;
-
- //Helper methods
- void setMswcryCert( const CERT_CONTEXT* cert ) ;
- const CERT_CONTEXT* getMswcryCert() const ;
- void setRawCert( ::com::sun::star::uno::Sequence< sal_Int8 > rawCert ) throw ( ::com::sun::star::uno::RuntimeException) ;
-} ;
-
-#endif // _X509CERTIFICATE_MSCRYPTIMPL_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
deleted file mode 100644
index 3d4f99c43..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx
+++ /dev/null
@@ -1,386 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-
-#include <sal/config.h>
-#include <rtl/uuid.h>
-#include "xmlencryption_mscryptimpl.hxx"
-
-#include "xmldocumentwrapper_xmlsecimpl.hxx"
-
-#include "xmlelementwrapper_xmlsecimpl.hxx"
-
-#include "securityenvironment_mscryptimpl.hxx"
-#include "errorcallback.hxx"
-
-#include "xmlsec/xmlsec.h"
-#include "xmlsec/xmltree.h"
-#include "xmlsec/xmlenc.h"
-#include "xmlsec/crypto.h"
-
-#ifdef UNX
-#define stricmp strcasecmp
-#endif
-
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::lang ;
-using ::com::sun::star::lang::XMultiServiceFactory ;
-using ::com::sun::star::lang::XSingleServiceFactory ;
-using ::rtl::OUString ;
-
-using ::com::sun::star::xml::wrapper::XXMLElementWrapper ;
-using ::com::sun::star::xml::wrapper::XXMLDocumentWrapper ;
-using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
-using ::com::sun::star::xml::crypto::XXMLEncryption ;
-using ::com::sun::star::xml::crypto::XXMLEncryptionTemplate ;
-using ::com::sun::star::xml::crypto::XXMLSecurityContext ;
-using ::com::sun::star::xml::crypto::XMLEncryptionException ;
-
-XMLEncryption_MSCryptImpl :: XMLEncryption_MSCryptImpl( const Reference< XMultiServiceFactory >& aFactory ) : m_xServiceManager( aFactory ) {
-}
-
-XMLEncryption_MSCryptImpl :: ~XMLEncryption_MSCryptImpl() {
-}
-
-/* XXMLEncryption */
-Reference< XXMLEncryptionTemplate >
-SAL_CALL XMLEncryption_MSCryptImpl :: encrypt(
- const Reference< XXMLEncryptionTemplate >& aTemplate ,
- const Reference< XSecurityEnvironment >& aEnvironment
-) throw( com::sun::star::xml::crypto::XMLEncryptionException,
- com::sun::star::uno::SecurityException )
-{
- xmlSecKeysMngrPtr pMngr = NULL ;
- xmlSecEncCtxPtr pEncCtx = NULL ;
- xmlNodePtr pEncryptedData = NULL ;
- xmlNodePtr pContent = NULL ;
-
- if( !aTemplate.is() )
- throw RuntimeException() ;
-
- if( !aEnvironment.is() )
- throw RuntimeException() ;
-
- //Get Keys Manager
- Reference< XUnoTunnel > xSecTunnel( aEnvironment , UNO_QUERY ) ;
- if( !xSecTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xSecTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
- if( pSecEnv == NULL )
- throw RuntimeException() ;
-
- //Get the encryption template
- Reference< XXMLElementWrapper > xTemplate = aTemplate->getTemplate() ;
- if( !xTemplate.is() ) {
- throw RuntimeException() ;
- }
-
- Reference< XUnoTunnel > xTplTunnel( xTemplate , UNO_QUERY ) ;
- if( !xTplTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- XMLElementWrapper_XmlSecImpl* pTemplate = ( XMLElementWrapper_XmlSecImpl* )xTplTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
- if( pTemplate == NULL ) {
- throw RuntimeException() ;
- }
-
- pEncryptedData = pTemplate->getNativeElement() ;
-
- //Find the element to be encrypted.
- //This element is wrapped in the CipherValue sub-element.
- xmlNodePtr pCipherData = pEncryptedData->children;
- while (pCipherData != NULL && stricmp((const char *)(pCipherData->name), "CipherData"))
- {
- pCipherData = pCipherData->next;
- }
-
- if( pCipherData == NULL ) {
- throw XMLEncryptionException() ;
- }
-
- xmlNodePtr pCipherValue = pCipherData->children;
- while (pCipherValue != NULL && stricmp((const char *)(pCipherValue->name), "CipherValue"))
- {
- pCipherValue = pCipherValue->next;
- }
-
- if( pCipherValue == NULL ) {
- throw XMLEncryptionException() ;
- }
-
- pContent = pCipherValue->children;
-
- if( pContent == NULL ) {
- throw XMLEncryptionException() ;
- }
-
- xmlUnlinkNode(pContent);
- xmlAddNextSibling(pEncryptedData, pContent);
-
- //remember the position of the element to be signed
- sal_Bool isParentRef = sal_True;
- xmlNodePtr pParent = pEncryptedData->parent;
- xmlNodePtr referenceNode;
-
- if (pEncryptedData == pParent->children)
- {
- referenceNode = pParent;
- }
- else
- {
- referenceNode = pEncryptedData->prev;
- isParentRef = sal_False;
- }
-
- setErrorRecorder( );
-
- pMngr = pSecEnv->createKeysManager() ; //i39448
- if( !pMngr ) {
- throw RuntimeException() ;
- }
-
- //Create Encryption context
- pEncCtx = xmlSecEncCtxCreate( pMngr ) ;
- if( pEncCtx == NULL )
- {
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
- //throw XMLEncryptionException() ;
- clearErrorRecorder();
- return aTemplate;
- }
-
- //Encrypt the template
- if( xmlSecEncCtxXmlEncrypt( pEncCtx , pEncryptedData , pContent ) < 0 ) {
- aTemplate->setStatus(::com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
- xmlSecEncCtxDestroy( pEncCtx ) ;
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
- clearErrorRecorder();
- return aTemplate;
- }
- aTemplate->setStatus(::com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED);
- xmlSecEncCtxDestroy( pEncCtx ) ;
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
-
- //get the new EncryptedData element
- if (isParentRef)
- {
- pTemplate->setNativeElement(referenceNode->children) ;
- }
- else
- {
- pTemplate->setNativeElement(referenceNode->next);
- }
-
- clearErrorRecorder();
- return aTemplate ;
-}
-
-/* XXMLEncryption */
-Reference< XXMLEncryptionTemplate > SAL_CALL
-XMLEncryption_MSCryptImpl :: decrypt(
- const Reference< XXMLEncryptionTemplate >& aTemplate ,
- const Reference< XXMLSecurityContext >& aSecurityCtx
-) throw( com::sun::star::xml::crypto::XMLEncryptionException ,
- com::sun::star::uno::SecurityException) {
- xmlSecKeysMngrPtr pMngr = NULL ;
- xmlSecEncCtxPtr pEncCtx = NULL ;
- xmlNodePtr pEncryptedData = NULL ;
-
- if( !aTemplate.is() )
- throw RuntimeException() ;
-
- if( !aSecurityCtx.is() )
- throw RuntimeException() ;
-
- //Get Keys Manager
- Reference< XSecurityEnvironment > xSecEnv
- = aSecurityCtx->getSecurityEnvironmentByIndex(
- aSecurityCtx->getDefaultSecurityEnvironmentIndex());
- Reference< XUnoTunnel > xSecTunnel( xSecEnv , UNO_QUERY ) ;
- if( !xSecTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xSecTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
- if( pSecEnv == NULL )
- throw RuntimeException() ;
-
- //Get the encryption template
- Reference< XXMLElementWrapper > xTemplate = aTemplate->getTemplate() ;
- if( !xTemplate.is() ) {
- throw RuntimeException() ;
- }
-
- Reference< XUnoTunnel > xTplTunnel( xTemplate , UNO_QUERY ) ;
- if( !xTplTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- XMLElementWrapper_XmlSecImpl* pTemplate = ( XMLElementWrapper_XmlSecImpl* )xTplTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
- if( pTemplate == NULL ) {
- throw RuntimeException() ;
- }
-
- pEncryptedData = pTemplate->getNativeElement() ;
-
- //remember the position of the element to be signed
- sal_Bool isParentRef = sal_True;
- xmlNodePtr pParent = pEncryptedData->parent;
- xmlNodePtr referenceNode;
-
- if (pEncryptedData == pParent->children)
- {
- referenceNode = pParent;
- }
- else
- {
- referenceNode = pEncryptedData->prev;
- isParentRef = sal_False;
- }
-
- setErrorRecorder( );
-
- pMngr = pSecEnv->createKeysManager() ; //i39448
- if( !pMngr ) {
- throw RuntimeException() ;
- }
-
- //Create Encryption context
- pEncCtx = xmlSecEncCtxCreate( pMngr ) ;
- if( pEncCtx == NULL )
- {
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
- //throw XMLEncryptionException() ;
- clearErrorRecorder();
- return aTemplate;
- }
-
- //Decrypt the template
- if( xmlSecEncCtxDecrypt( pEncCtx , pEncryptedData ) < 0 || pEncCtx->result == NULL ) {
- aTemplate->setStatus(::com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
- xmlSecEncCtxDestroy( pEncCtx ) ;
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
-
- //throw XMLEncryptionException() ;
- clearErrorRecorder();
- return aTemplate;
- }
- aTemplate->setStatus(::com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED);
- /*----------------------------------------
- if( pEncCtx->resultReplaced != 0 ) {
- pContent = pEncryptedData ;
-
- Reference< XUnoTunnel > xTunnel( ret , UNO_QUERY ) ;
- if( !xTunnel.is() ) {
- xmlSecEncCtxDestroy( pEncCtx ) ;
- throw RuntimeException() ;
- }
- XMLElementWrapper_XmlSecImpl* pNode = ( XMLElementWrapper_XmlSecImpl* )xTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
- if( pNode == NULL ) {
- xmlSecEncCtxDestroy( pEncCtx ) ;
- throw RuntimeException() ;
- }
-
- pNode->setNativeElement( pContent ) ;
- } else {
- xmlSecEncCtxDestroy( pEncCtx ) ;
- throw RuntimeException() ;
- }
- ----------------------------------------*/
-
- //Destroy the encryption context
- xmlSecEncCtxDestroy( pEncCtx ) ;
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
-
- //get the decrypted element
- XMLElementWrapper_XmlSecImpl * ret = new XMLElementWrapper_XmlSecImpl(isParentRef?
- (referenceNode->children):(referenceNode->next));
-
- //return ret;
- aTemplate->setTemplate(ret);
-
- clearErrorRecorder();
- return aTemplate;
-}
-
-/* XInitialization */
-void SAL_CALL XMLEncryption_MSCryptImpl :: initialize( const Sequence< Any >& /*aArguments*/ ) throw( Exception, RuntimeException ) {
- // TBD
-} ;
-
-/* XServiceInfo */
-OUString SAL_CALL XMLEncryption_MSCryptImpl :: getImplementationName() throw( RuntimeException ) {
- return impl_getImplementationName() ;
-}
-
-/* XServiceInfo */
-sal_Bool SAL_CALL XMLEncryption_MSCryptImpl :: supportsService( const OUString& serviceName) throw( RuntimeException ) {
- Sequence< OUString > seqServiceNames = getSupportedServiceNames() ;
- const OUString* pArray = seqServiceNames.getConstArray() ;
- for( sal_Int32 i = 0 ; i < seqServiceNames.getLength() ; i ++ ) {
- if( *( pArray + i ) == serviceName )
- return sal_True ;
- }
- return sal_False ;
-}
-
-/* XServiceInfo */
-Sequence< OUString > SAL_CALL XMLEncryption_MSCryptImpl :: getSupportedServiceNames() throw( RuntimeException ) {
- return impl_getSupportedServiceNames() ;
-}
-
-//Helper for XServiceInfo
-Sequence< OUString > XMLEncryption_MSCryptImpl :: impl_getSupportedServiceNames() {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() ) ;
- Sequence< OUString > seqServiceNames( 1 ) ;
- seqServiceNames.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.crypto.XMLEncryption")) ;
- return seqServiceNames ;
-}
-
-OUString XMLEncryption_MSCryptImpl :: impl_getImplementationName() throw( RuntimeException ) {
- return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.security.bridge.xmlsec.XMLEncryption_MSCryptImpl")) ;
-}
-
-//Helper for registry
-Reference< XInterface > SAL_CALL XMLEncryption_MSCryptImpl :: impl_createInstance( const Reference< XMultiServiceFactory >& aServiceManager ) throw( RuntimeException ) {
- return Reference< XInterface >( *new XMLEncryption_MSCryptImpl( aServiceManager ) ) ;
-}
-
-Reference< XSingleServiceFactory > XMLEncryption_MSCryptImpl :: impl_createFactory( const Reference< XMultiServiceFactory >& aServiceManager ) {
- //Reference< XSingleServiceFactory > xFactory ;
- //xFactory = ::cppu::createSingleFactory( aServiceManager , impl_getImplementationName , impl_createInstance , impl_getSupportedServiceNames ) ;
- //return xFactory ;
- return ::cppu::createSingleFactory( aServiceManager , impl_getImplementationName() , impl_createInstance , impl_getSupportedServiceNames() ) ;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.hxx b/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.hxx
deleted file mode 100644
index 47b621ea1..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLENCRYPTION_MSCRYPTIMPL_HXX_
-#define _XMLENCRYPTION_MSCRYPTIMPL_HXX_
-
-#include <sal/config.h>
-#include <rtl/ustring.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase3.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/lang/XInitialization.hpp>
-#include <com/sun/star/xml/crypto/XXMLEncryption.hpp>
-#include <com/sun/star/xml/crypto/XXMLEncryptionTemplate.hpp>
-#include <com/sun/star/xml/crypto/XXMLSecurityContext.hpp>
-
-class XMLEncryption_MSCryptImpl : public ::cppu::WeakImplHelper3<
- ::com::sun::star::xml::crypto::XXMLEncryption ,
- ::com::sun::star::lang::XInitialization ,
- ::com::sun::star::lang::XServiceInfo >
-{
- private :
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager ;
-
- public :
- XMLEncryption_MSCryptImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aFactory ) ;
- virtual ~XMLEncryption_MSCryptImpl() ;
-
- //Methods from XXMLEncryption
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLEncryptionTemplate > SAL_CALL encrypt(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLEncryptionTemplate >& aTemplate ,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment >& aEnvironment)
- // ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
- throw ( com::sun::star::xml::crypto::XMLEncryptionException ,
- com::sun::star::uno::SecurityException);
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLEncryptionTemplate > SAL_CALL decrypt(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLEncryptionTemplate >& aTemplate ,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLSecurityContext >& aContext
- ) throw( com::sun::star::xml::crypto::XMLEncryptionException ,
- com::sun::star::uno::SecurityException) ;
-
- //Methods from XInitialization
- virtual void SAL_CALL initialize(
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments
- ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- //Methods from XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual sal_Bool SAL_CALL supportsService(
- const ::rtl::OUString& ServiceName
- ) throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for XServiceInfo
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames() ;
-
- static ::rtl::OUString impl_getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for registry
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL impl_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager ) throw( ::com::sun::star::uno::RuntimeException ) ;
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > impl_createFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager ) ;
-} ;
-
-#endif // _XMLENCRYPTION_MSCRYPTIMPL_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.cxx
deleted file mode 100644
index 30cbc3a2c..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.cxx
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-#include <sal/config.h>
-#include "securityenvironment_mscryptimpl.hxx"
-
-#include "xmlsecuritycontext_mscryptimpl.hxx"
-#include "xmlstreamio.hxx"
-
-#include "xmlsec/xmlsec.h"
-#include "xmlsec/keysmngr.h"
-#include "xmlsec/crypto.h"
-#include "xmlsec/mscrypto/akmngr.h"
-
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::lang ;
-using ::com::sun::star::lang::XMultiServiceFactory ;
-using ::com::sun::star::lang::XSingleServiceFactory ;
-using ::rtl::OUString ;
-
-using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
-using ::com::sun::star::xml::crypto::XXMLSecurityContext ;
-
-XMLSecurityContext_MSCryptImpl :: XMLSecurityContext_MSCryptImpl( const Reference< XMultiServiceFactory >& aFactory )
- ://m_pKeysMngr( NULL ) ,
- m_xServiceManager( aFactory ),
- m_xSecurityEnvironment( NULL )
-{
- //Init xmlsec library
- if( xmlSecInit() < 0 ) {
- throw RuntimeException() ;
- }
-
- //Init xmlsec crypto engine library
- if( xmlSecCryptoInit() < 0 ) {
- xmlSecShutdown() ;
- throw RuntimeException() ;
- }
-
- //Enable external stream handlers
- if( xmlEnableStreamInputCallbacks() < 0 ) {
- xmlSecCryptoShutdown() ;
- xmlSecShutdown() ;
- throw RuntimeException() ;
- }
-}
-
-XMLSecurityContext_MSCryptImpl :: ~XMLSecurityContext_MSCryptImpl() {
- xmlDisableStreamInputCallbacks() ;
- xmlSecCryptoShutdown() ;
- xmlSecShutdown() ;
-}
-
-//i39448 : new methods
-sal_Int32 SAL_CALL XMLSecurityContext_MSCryptImpl::addSecurityEnvironment(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment >& aSecurityEnvironment)
- throw (::com::sun::star::security::SecurityInfrastructureException, ::com::sun::star::uno::RuntimeException)
-{
- if( !aSecurityEnvironment.is() )
- {
- throw RuntimeException() ;
- }
-
- m_xSecurityEnvironment = aSecurityEnvironment;
-
- return 0;
-}
-
-
-sal_Int32 SAL_CALL XMLSecurityContext_MSCryptImpl::getSecurityEnvironmentNumber( )
- throw (::com::sun::star::uno::RuntimeException)
-{
- return 1;
-}
-
-::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > SAL_CALL
- XMLSecurityContext_MSCryptImpl::getSecurityEnvironmentByIndex( sal_Int32 index )
- throw (::com::sun::star::uno::RuntimeException)
-{
- if (index == 0)
- {
- return m_xSecurityEnvironment;
- }
- else
- throw RuntimeException() ;
-}
-
-::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > SAL_CALL
- XMLSecurityContext_MSCryptImpl::getSecurityEnvironment( )
- throw (::com::sun::star::uno::RuntimeException)
-{
- return m_xSecurityEnvironment;
-}
-
-sal_Int32 SAL_CALL XMLSecurityContext_MSCryptImpl::getDefaultSecurityEnvironmentIndex( )
- throw (::com::sun::star::uno::RuntimeException)
-{
- return 0;
-}
-
-void SAL_CALL XMLSecurityContext_MSCryptImpl::setDefaultSecurityEnvironmentIndex( sal_Int32 /*nDefaultEnvIndex*/ )
- throw (::com::sun::star::uno::RuntimeException)
-{
- //dummy
-}
-
-/* XInitialization */
-void SAL_CALL XMLSecurityContext_MSCryptImpl :: initialize( const Sequence< Any >& /*aArguments*/ ) throw( Exception, RuntimeException ) {
- // TBD
-} ;
-
-/* XServiceInfo */
-OUString SAL_CALL XMLSecurityContext_MSCryptImpl :: getImplementationName() throw( RuntimeException ) {
- return impl_getImplementationName() ;
-}
-
-/* XServiceInfo */
-sal_Bool SAL_CALL XMLSecurityContext_MSCryptImpl :: supportsService( const OUString& serviceName) throw( RuntimeException ) {
- Sequence< OUString > seqServiceNames = getSupportedServiceNames() ;
- const OUString* pArray = seqServiceNames.getConstArray() ;
- for( sal_Int32 i = 0 ; i < seqServiceNames.getLength() ; i ++ ) {
- if( *( pArray + i ) == serviceName )
- return sal_True ;
- }
- return sal_False ;
-}
-
-/* XServiceInfo */
-Sequence< OUString > SAL_CALL XMLSecurityContext_MSCryptImpl :: getSupportedServiceNames() throw( RuntimeException ) {
- return impl_getSupportedServiceNames() ;
-}
-
-//Helper for XServiceInfo
-Sequence< OUString > XMLSecurityContext_MSCryptImpl :: impl_getSupportedServiceNames() {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() ) ;
- Sequence< OUString > seqServiceNames( 1 ) ;
- seqServiceNames.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.crypto.XMLSecurityContext")) ;
- return seqServiceNames ;
-}
-
-OUString XMLSecurityContext_MSCryptImpl :: impl_getImplementationName() throw( RuntimeException ) {
- return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.security.bridge.xmlsec.XMLSecurityContext_MSCryptImpl")) ;
-}
-
-//Helper for registry
-Reference< XInterface > SAL_CALL XMLSecurityContext_MSCryptImpl :: impl_createInstance( const Reference< XMultiServiceFactory >& aServiceManager ) throw( RuntimeException ) {
- return Reference< XInterface >( *new XMLSecurityContext_MSCryptImpl( aServiceManager ) ) ;
-}
-
-Reference< XSingleServiceFactory > XMLSecurityContext_MSCryptImpl :: impl_createFactory( const Reference< XMultiServiceFactory >& aServiceManager ) {
- //Reference< XSingleServiceFactory > xFactory ;
- //xFactory = ::cppu::createSingleFactory( aServiceManager , impl_getImplementationName , impl_createInstance , impl_getSupportedServiceNames ) ;
- //return xFactory ;
- return ::cppu::createSingleFactory( aServiceManager , impl_getImplementationName() , impl_createInstance , impl_getSupportedServiceNames() ) ;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.hxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.hxx
deleted file mode 100644
index 29ad6bc71..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.hxx
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLSIGNATURECONTEXT_MSCRYPTIMPL_HXX_
-#define _XMLSIGNATURECONTEXT_MSCRYPTIMPL_HXX_
-
-#include <sal/config.h>
-#include <rtl/ustring.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase3.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/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp>
-#include <com/sun/star/xml/crypto/XXMLSecurityContext.hpp>
-
-
-class XMLSecurityContext_MSCryptImpl : public ::cppu::WeakImplHelper3<
- ::com::sun::star::xml::crypto::XXMLSecurityContext ,
- ::com::sun::star::lang::XInitialization ,
- ::com::sun::star::lang::XServiceInfo >
-{
- private :
- //xmlSecKeysMngrPtr m_pKeysMngr ;
- ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > m_xSecurityEnvironment ;
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager ;
-
- public :
- XMLSecurityContext_MSCryptImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aFactory ) ;
- virtual ~XMLSecurityContext_MSCryptImpl() ;
-
- //Methods from XXMLSecurityContext
- virtual sal_Int32 SAL_CALL addSecurityEnvironment(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment >& aSecurityEnvironment
- ) throw (::com::sun::star::security::SecurityInfrastructureException, ::com::sun::star::uno::RuntimeException);
-
- virtual ::sal_Int32 SAL_CALL getSecurityEnvironmentNumber( )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::crypto::XSecurityEnvironment > SAL_CALL
- getSecurityEnvironmentByIndex( ::sal_Int32 index )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::xml::crypto::XSecurityEnvironment > SAL_CALL
- getSecurityEnvironment( )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual ::sal_Int32 SAL_CALL getDefaultSecurityEnvironmentIndex( )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL setDefaultSecurityEnvironmentIndex( sal_Int32 nDefaultEnvIndex )
- throw (::com::sun::star::uno::RuntimeException);
-
-#if 0
- virtual void SAL_CALL setSecurityEnvironment(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment >& aSecurityEnvironment
- ) throw( com::sun::star::security::SecurityInfrastructureException) ;
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > SAL_CALL getSecurityEnvironment()
- throw(::com::sun::star::uno::RuntimeException);
-#endif
-
- //Methods from XInitialization
- virtual void SAL_CALL initialize(
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments
- ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- //Methods from XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual sal_Bool SAL_CALL supportsService(
- const ::rtl::OUString& ServiceName
- ) throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for XServiceInfo
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames() ;
-
- static ::rtl::OUString impl_getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for registry
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL impl_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager ) throw( ::com::sun::star::uno::RuntimeException ) ;
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > impl_createFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager ) ;
-
-#if 0
- //Methods from XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier )
- throw (com::sun::star::uno::RuntimeException);
-
- static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId() ;
- static XMLSecurityContext_MSCryptImpl* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xObj ) ;
-#endif
-
- //Native mehtods
- //virtual xmlSecKeysMngrPtr keysManager() throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-} ;
-
-#endif // _XMLSIGNATURECONTEXT_MSCRYPTIMPL_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
deleted file mode 100644
index 6dd1ab135..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx
+++ /dev/null
@@ -1,312 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-#include <sal/config.h>
-#include <rtl/uuid.h>
-
-#include "com/sun/star/xml/crypto/SecurityOperationStatus.hdl"
-#include "xmlsignature_mscryptimpl.hxx"
-#include "xmldocumentwrapper_xmlsecimpl.hxx"
-#include "xmlelementwrapper_xmlsecimpl.hxx"
-#include "securityenvironment_mscryptimpl.hxx"
-#include "xmlstreamio.hxx"
-#include "errorcallback.hxx"
-#include "xmlsec/xmlsec.h"
-#include "xmlsec/xmldsig.h"
-#include "xmlsec/crypto.h"
-
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::lang ;
-using ::com::sun::star::lang::XMultiServiceFactory ;
-using ::com::sun::star::lang::XSingleServiceFactory ;
-using ::rtl::OUString ;
-
-using ::com::sun::star::xml::wrapper::XXMLElementWrapper ;
-using ::com::sun::star::xml::wrapper::XXMLDocumentWrapper ;
-using ::com::sun::star::xml::crypto::XSecurityEnvironment ;
-using ::com::sun::star::xml::crypto::XXMLSignature ;
-using ::com::sun::star::xml::crypto::XXMLSignatureTemplate ;
-using ::com::sun::star::xml::crypto::XXMLSecurityContext ;
-using ::com::sun::star::xml::crypto::XUriBinding ;
-using ::com::sun::star::xml::crypto::XMLSignatureException ;
-
-
-XMLSignature_MSCryptImpl :: XMLSignature_MSCryptImpl( const Reference< XMultiServiceFactory >& aFactory ) : m_xServiceManager( aFactory ) {
-}
-
-XMLSignature_MSCryptImpl :: ~XMLSignature_MSCryptImpl() {
-}
-
-/* XXMLSignature */
-Reference< XXMLSignatureTemplate >
-SAL_CALL XMLSignature_MSCryptImpl :: generate(
- const Reference< XXMLSignatureTemplate >& aTemplate ,
- const Reference< XSecurityEnvironment >& aEnvironment
-) throw( com::sun::star::xml::crypto::XMLSignatureException,
- com::sun::star::uno::SecurityException )
-{
- xmlSecKeysMngrPtr pMngr = NULL ;
- xmlSecDSigCtxPtr pDsigCtx = NULL ;
- xmlNodePtr pNode = NULL ;
-
- if( !aTemplate.is() )
- throw RuntimeException() ;
-
- if( !aEnvironment.is() )
- throw RuntimeException() ;
-
- //Get Keys Manager
- Reference< XUnoTunnel > xSecTunnel( aEnvironment , UNO_QUERY ) ;
- if( !xSecTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xSecTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
- if( pSecEnv == NULL )
- throw RuntimeException() ;
-
- //Get the xml node
- Reference< XXMLElementWrapper > xElement = aTemplate->getTemplate() ;
- if( !xElement.is() ) {
- throw RuntimeException() ;
- }
-
- Reference< XUnoTunnel > xNodTunnel( xElement , UNO_QUERY ) ;
- if( !xNodTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- XMLElementWrapper_XmlSecImpl* pElement = ( XMLElementWrapper_XmlSecImpl* )xNodTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
- if( pElement == NULL ) {
- throw RuntimeException() ;
- }
-
- pNode = pElement->getNativeElement() ;
-
- //Get the stream/URI binding
- Reference< XUriBinding > xUriBinding = aTemplate->getBinding() ;
- if( xUriBinding.is() ) {
- //Register the stream input callbacks into libxml2
- if( xmlRegisterStreamInputCallbacks( xUriBinding ) < 0 )
- throw RuntimeException() ;
- }
-
- setErrorRecorder( );
-
- pMngr = pSecEnv->createKeysManager() ; //i39448
- if( !pMngr ) {
- throw RuntimeException() ;
- }
-
- //Create Signature context
- pDsigCtx = xmlSecDSigCtxCreate( pMngr ) ;
- if( pDsigCtx == NULL )
- {
- //throw XMLSignatureException() ;
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
- clearErrorRecorder();
- return aTemplate;
- }
-
- //Sign the template
- if( xmlSecDSigCtxSign( pDsigCtx , pNode ) == 0 )
- {
- if (pDsigCtx->status == xmlSecDSigStatusSucceeded)
- aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED);
- else
- aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
- }
- else
- {
- aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
- }
-
-
- xmlSecDSigCtxDestroy( pDsigCtx ) ;
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
-
- //Unregistered the stream/URI binding
- if( xUriBinding.is() )
- xmlUnregisterStreamInputCallbacks() ;
-
- clearErrorRecorder();
- return aTemplate ;
-}
-
-/* XXMLSignature */
-Reference< XXMLSignatureTemplate >
-SAL_CALL XMLSignature_MSCryptImpl :: validate(
- const Reference< XXMLSignatureTemplate >& aTemplate ,
- const Reference< XXMLSecurityContext >& aSecurityCtx
-) throw( com::sun::star::uno::RuntimeException,
- com::sun::star::uno::SecurityException,
- com::sun::star::xml::crypto::XMLSignatureException ) {
- xmlSecKeysMngrPtr pMngr = NULL ;
- xmlSecDSigCtxPtr pDsigCtx = NULL ;
- xmlNodePtr pNode = NULL ;
-
- if( !aTemplate.is() )
- throw RuntimeException() ;
-
- if( !aSecurityCtx.is() )
- throw RuntimeException() ;
-
- //Get Keys Manager
- Reference< XSecurityEnvironment > xSecEnv
- = aSecurityCtx->getSecurityEnvironmentByIndex(
- aSecurityCtx->getDefaultSecurityEnvironmentIndex());
- Reference< XUnoTunnel > xSecTunnel( xSecEnv , UNO_QUERY ) ;
- if( !xSecTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- SecurityEnvironment_MSCryptImpl* pSecEnv = ( SecurityEnvironment_MSCryptImpl* )xSecTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ) ;
- if( pSecEnv == NULL )
- throw RuntimeException() ;
-
- //Get the xml node
- Reference< XXMLElementWrapper > xElement = aTemplate->getTemplate() ;
- if( !xElement.is() )
- throw RuntimeException() ;
-
- Reference< XUnoTunnel > xNodTunnel( xElement , UNO_QUERY ) ;
- if( !xNodTunnel.is() ) {
- throw RuntimeException() ;
- }
-
- XMLElementWrapper_XmlSecImpl* pElement = ( XMLElementWrapper_XmlSecImpl* )xNodTunnel->getSomething( XMLElementWrapper_XmlSecImpl::getUnoTunnelImplementationId() ) ;
- if( pElement == NULL )
- throw RuntimeException() ;
-
- pNode = pElement->getNativeElement() ;
-
- //Get the stream/URI binding
- Reference< XUriBinding > xUriBinding = aTemplate->getBinding() ;
- if( xUriBinding.is() ) {
- //Register the stream input callbacks into libxml2
- if( xmlRegisterStreamInputCallbacks( xUriBinding ) < 0 )
- throw RuntimeException() ;
- }
-
- setErrorRecorder( );
-
- pMngr = pSecEnv->createKeysManager() ; //i39448
- if( !pMngr ) {
- throw RuntimeException() ;
- }
-
- //Create Signature context
- pDsigCtx = xmlSecDSigCtxCreate( pMngr ) ;
- if( pDsigCtx == NULL )
- {
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
- clearErrorRecorder();
- return aTemplate;
- }
-
- //Verify signature
- //The documentation says that the signature is only valid if the return value is 0 (that is, not < 0)
- //AND pDsigCtx->status == xmlSecDSigStatusSucceeded. That is, we must not make any assumptions, if
- //the return value is < 0. Then we must regard the signature as INVALID. We cannot use the
- //error recorder feature to get the ONE error that made the verification fail, because there is no
- //documentation/specification as to how to interpret the number of recorded errors and what is the initial
- //error.
- if( xmlSecDSigCtxVerify( pDsigCtx , pNode ) == 0 )
- {
- if (pDsigCtx->status == xmlSecDSigStatusSucceeded)
- aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_OPERATION_SUCCEEDED);
- else
- aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
- }
- else
- {
- aTemplate->setStatus(com::sun::star::xml::crypto::SecurityOperationStatus_UNKNOWN);
- }
-
- xmlSecDSigCtxDestroy( pDsigCtx ) ;
- pSecEnv->destroyKeysManager( pMngr ) ; //i39448
-
- //Unregistered the stream/URI binding
- if( xUriBinding.is() )
- xmlUnregisterStreamInputCallbacks() ;
-
-
- clearErrorRecorder();
- return aTemplate;
-}
-
-/* XInitialization */
-void SAL_CALL XMLSignature_MSCryptImpl :: initialize( const Sequence< Any >& /*aArguments*/ ) throw( Exception, RuntimeException ) {
- // TBD
-} ;
-
-/* XServiceInfo */
-OUString SAL_CALL XMLSignature_MSCryptImpl :: getImplementationName() throw( RuntimeException ) {
- return impl_getImplementationName() ;
-}
-
-/* XServiceInfo */
-sal_Bool SAL_CALL XMLSignature_MSCryptImpl :: supportsService( const OUString& serviceName) throw( RuntimeException ) {
- Sequence< OUString > seqServiceNames = getSupportedServiceNames() ;
- const OUString* pArray = seqServiceNames.getConstArray() ;
- for( sal_Int32 i = 0 ; i < seqServiceNames.getLength() ; i ++ ) {
- if( *( pArray + i ) == serviceName )
- return sal_True ;
- }
- return sal_False ;
-}
-
-/* XServiceInfo */
-Sequence< OUString > SAL_CALL XMLSignature_MSCryptImpl :: getSupportedServiceNames() throw( RuntimeException ) {
- return impl_getSupportedServiceNames() ;
-}
-
-//Helper for XServiceInfo
-Sequence< OUString > XMLSignature_MSCryptImpl :: impl_getSupportedServiceNames() {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() ) ;
- Sequence< OUString > seqServiceNames( 1 ) ;
- seqServiceNames.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.crypto.XMLSignature")) ;
- return seqServiceNames ;
-}
-
-OUString XMLSignature_MSCryptImpl :: impl_getImplementationName() throw( RuntimeException ) {
- return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.security.bridge.xmlsec.XMLSignature_MSCryptImpl")) ;
-}
-
-//Helper for registry
-Reference< XInterface > SAL_CALL XMLSignature_MSCryptImpl :: impl_createInstance( const Reference< XMultiServiceFactory >& aServiceManager ) throw( RuntimeException ) {
- return Reference< XInterface >( *new XMLSignature_MSCryptImpl( aServiceManager ) ) ;
-}
-
-Reference< XSingleServiceFactory > XMLSignature_MSCryptImpl :: impl_createFactory( const Reference< XMultiServiceFactory >& aServiceManager ) {
- return ::cppu::createSingleFactory( aServiceManager , impl_getImplementationName() , impl_createInstance , impl_getSupportedServiceNames() ) ;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.hxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.hxx
deleted file mode 100644
index bc5af5ecf..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XMLSIGNATURE_MSCRYPTIMPL_HXX_
-#define _XMLSIGNATURE_MSCRYPTIMPL_HXX_
-
-#include <sal/config.h>
-#include <rtl/ustring.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase3.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/lang/XInitialization.hpp>
-#include <com/sun/star/xml/crypto/XXMLSignature.hpp>
-#include <com/sun/star/xml/crypto/XXMLSignatureTemplate.hpp>
-#include <com/sun/star/xml/crypto/XXMLSecurityContext.hpp>
-
-class XMLSignature_MSCryptImpl : public ::cppu::WeakImplHelper3<
- ::com::sun::star::xml::crypto::XXMLSignature ,
- ::com::sun::star::lang::XInitialization ,
- ::com::sun::star::lang::XServiceInfo >
-{
- private :
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager ;
-
- public :
- XMLSignature_MSCryptImpl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aFactory ) ;
- virtual ~XMLSignature_MSCryptImpl() ;
-
- //Methods from XXMLSignature
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLSignatureTemplate > SAL_CALL generate(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLSignatureTemplate >& aTemplate ,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment >& aEnvironment
- ) throw( com::sun::star::xml::crypto::XMLSignatureException,
- com::sun::star::uno::SecurityException) ;
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLSignatureTemplate > SAL_CALL validate(
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLSignatureTemplate >& aTemplate ,
- const ::com::sun::star::uno::Reference< ::com::sun::star::xml::crypto::XXMLSecurityContext >& aContext
- ) throw( com::sun::star::uno::RuntimeException,
- com::sun::star::uno::SecurityException,
- com::sun::star::xml::crypto::XMLSignatureException);
-
- //Methods from XInitialization
- virtual void SAL_CALL initialize(
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments
- ) throw( ::com::sun::star::uno::Exception , ::com::sun::star::uno::RuntimeException ) ;
-
- //Methods from XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual sal_Bool SAL_CALL supportsService(
- const ::rtl::OUString& ServiceName
- ) throw( ::com::sun::star::uno::RuntimeException ) ;
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for XServiceInfo
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames() ;
-
- static ::rtl::OUString impl_getImplementationName() throw( ::com::sun::star::uno::RuntimeException ) ;
-
- //Helper for registry
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL impl_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager ) throw( ::com::sun::star::uno::RuntimeException ) ;
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > impl_createFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& aServiceManager ) ;
-} ;
-
-#endif // _XMLSIGNATURE_MSCRYPTIMPL_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx b/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
deleted file mode 100644
index 71c8544a8..000000000
--- a/xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmlsecurity.hxx"
-
-#include <sal/config.h>
-#include <stdio.h>
-
-#include <osl/mutex.hxx>
-#include <osl/thread.h>
-#include <cppuhelper/factory.hxx>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-
-#include "seinitializer_mscryptimpl.hxx"
-#include "xmlsignature_mscryptimpl.hxx"
-#include "xmlencryption_mscryptimpl.hxx"
-#include "xmlsecuritycontext_mscryptimpl.hxx"
-#include "securityenvironment_mscryptimpl.hxx"
-
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-
-extern "C"
-{
-
-void* SAL_CALL mscrypt_component_getFactory( const sal_Char* pImplName , void* pServiceManager , void* /*pRegistryKey*/ )
-{
- void* pRet = 0;
- Reference< XSingleServiceFactory > xFactory ;
-
- if( pImplName != NULL && pServiceManager != NULL ) {
- if( XMLSignature_MSCryptImpl::impl_getImplementationName().equals( OUString::createFromAscii( pImplName ) ) ) {
- xFactory = XMLSignature_MSCryptImpl::impl_createFactory( reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- } else if( XMLSecurityContext_MSCryptImpl::impl_getImplementationName().equals( OUString::createFromAscii( pImplName ) ) ) {
- xFactory = XMLSecurityContext_MSCryptImpl::impl_createFactory( reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- } else if( SecurityEnvironment_MSCryptImpl::impl_getImplementationName().equals( OUString::createFromAscii( pImplName ) ) ) {
- xFactory = SecurityEnvironment_MSCryptImpl::impl_createFactory( reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- } else if( XMLEncryption_MSCryptImpl::impl_getImplementationName().equals( OUString::createFromAscii( pImplName ) ) ) {
- xFactory = XMLEncryption_MSCryptImpl::impl_createFactory( reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- } else if( SEInitializer_MSCryptImpl_getImplementationName().equals( OUString::createFromAscii( pImplName ) ) ) {
- xFactory = Reference< XSingleServiceFactory >( createSingleFactory(
- reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
- OUString::createFromAscii( pImplName ),
- SEInitializer_MSCryptImpl_createInstance, SEInitializer_MSCryptImpl_getSupportedServiceNames() ) );
- }
- }
-
- if( xFactory.is() ) {
- xFactory->acquire() ;
- pRet = xFactory.get() ;
- }
-
- return pRet ;
-}
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */