summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-03-02 08:10:07 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-03-02 08:35:54 +0000
commit42460fd4eb4757dcdf3b3e533aafabda77751321 (patch)
tree17d2d1e061f99762b4eb51c55984a7c3e458b9f8
parent6af6a5fa3bf58e42bdaf693e8b5baf8961ce6311 (diff)
xmlsecurity: avoid using the SerialNumberAdapter wrapper
This service is only used in xmlsecurity and it's a wrapper around two free functions in the same module. Change-Id: Ibc5a026b51eda6c2b4b27b7254dedc220dbf909a Reviewed-on: https://gerrit.libreoffice.org/34772 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx3
-rw-r--r--xmlsecurity/inc/biginteger.hxx9
-rw-r--r--xmlsecurity/qa/unit/signing/signing.cxx1
-rw-r--r--xmlsecurity/source/component/documentdigitalsignatures.cxx16
-rw-r--r--xmlsecurity/source/dialogs/certificatechooser.cxx4
-rw-r--r--xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx9
-rw-r--r--xmlsecurity/source/dialogs/macrosecurity.cxx6
-rw-r--r--xmlsecurity/source/helper/documentsignaturemanager.cxx5
-rw-r--r--xmlsecurity/source/xmlsec/biginteger.cxx3
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx2
-rw-r--r--xmlsecurity/source/xmlsec/serialnumberadapter.cxx4
11 files changed, 23 insertions, 39 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 7286a83fc4b5..785d7975cbb7 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -211,7 +211,8 @@ const char* keywordToString(RTFKeyword nKeyword)
static util::DateTime lcl_getDateTime(RTFParserState& aState)
{
return {0 /*100sec*/, 0 /*sec*/, aState.nMinute, aState.nHour,
- aState.nDay, aState.nMonth, aState.nYear, false};
+ aState.nDay, aState.nMonth, aState.nYear, false
+ };
}
static void lcl_DestinationToMath(OUStringBuffer* pDestinationText, oox::formulaimport::XmlStreamBuilder& rMathBuffer, bool& rMathNor)
diff --git a/xmlsecurity/inc/biginteger.hxx b/xmlsecurity/inc/biginteger.hxx
index 73f6259c966b..2cd116d50763 100644
--- a/xmlsecurity/inc/biginteger.hxx
+++ b/xmlsecurity/inc/biginteger.hxx
@@ -25,8 +25,13 @@
#include <com/sun/star/uno/Sequence.h>
-OUString bigIntegerToNumericString( const css::uno::Sequence< sal_Int8 >& serial );
-css::uno::Sequence< sal_Int8 > numericStringToBigInteger ( const OUString& serialNumber );
+#include <xsecxmlsecdllapi.h>
+
+namespace xmlsecurity
+{
+XSECXMLSEC_DLLPUBLIC OUString bigIntegerToNumericString( const css::uno::Sequence< sal_Int8 >& serial );
+XSECXMLSEC_DLLPUBLIC css::uno::Sequence< sal_Int8 > numericStringToBigInteger ( const OUString& serialNumber );
+}
#endif
diff --git a/xmlsecurity/qa/unit/signing/signing.cxx b/xmlsecurity/qa/unit/signing/signing.cxx
index 03c7c961d996..f8fe7b55123d 100644
--- a/xmlsecurity/qa/unit/signing/signing.cxx
+++ b/xmlsecurity/qa/unit/signing/signing.cxx
@@ -22,7 +22,6 @@
#include <com/sun/star/embed/XTransactedObject.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/security/SerialNumberAdapter.hpp>
#include <com/sun/star/xml/crypto/SEInitializer.hpp>
#include <com/sun/star/io/TempFile.hpp>
#include <com/sun/star/packages/manifest/ManifestReader.hpp>
diff --git a/xmlsecurity/source/component/documentdigitalsignatures.cxx b/xmlsecurity/source/component/documentdigitalsignatures.cxx
index 81d6aeba0db6..54b084075fbc 100644
--- a/xmlsecurity/source/component/documentdigitalsignatures.cxx
+++ b/xmlsecurity/source/component/documentdigitalsignatures.cxx
@@ -42,7 +42,6 @@
#include <vcl/layout.hxx>
#include <unotools/securityoptions.hxx>
#include <com/sun/star/security/CertificateValidity.hpp>
-#include <com/sun/star/security/SerialNumberAdapter.hpp>
#include <comphelper/documentconstants.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
@@ -316,9 +315,6 @@ DocumentDigitalSignatures::ImplVerifySignatures(
if ( nInfos )
{
- Reference<security::XSerialNumberAdapter> xSerialNumberAdapter =
- css::security::SerialNumberAdapter::create(mxCtx);
-
for( int n = 0; n < nInfos; ++n )
{
DocumentSignatureAlgorithm mode = DocumentSignatureHelper::getDocumentAlgorithm(
@@ -333,7 +329,7 @@ DocumentDigitalSignatures::ImplVerifySignatures(
if (!rInfo.ouX509Certificate.isEmpty())
rSigInfo.Signer = xSecEnv->createCertificateFromAscii( rInfo.ouX509Certificate ) ;
if (!rSigInfo.Signer.is())
- rSigInfo.Signer = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xSerialNumberAdapter->toSequence( rInfo.ouX509SerialNumber ) );
+ rSigInfo.Signer = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xmlsecurity::numericStringToBigInteger( rInfo.ouX509SerialNumber ) );
// Time support again (#i38744#)
Date aDate( rInfo.stDateTime.Day, rInfo.stDateTime.Month, rInfo.stDateTime.Year );
@@ -431,10 +427,7 @@ sal_Bool DocumentDigitalSignatures::isAuthorTrusted(
{
bool bFound = false;
- Reference<security::XSerialNumberAdapter> xSerialNumberAdapter =
- css::security::SerialNumberAdapter::create(mxCtx);
-
- OUString sSerialNum = xSerialNumberAdapter->toString( Author->getSerialNumber() );
+ OUString sSerialNum = xmlsecurity::bigIntegerToNumericString( Author->getSerialNumber() );
Sequence< SvtSecurityOptions::Certificate > aTrustedAuthors = SvtSecurityOptions().GetTrustedAuthors();
const SvtSecurityOptions::Certificate* pAuthors = aTrustedAuthors.getConstArray();
@@ -486,12 +479,9 @@ void DocumentDigitalSignatures::addAuthorToTrustedSources(
{
SvtSecurityOptions aSecOpts;
- Reference<security::XSerialNumberAdapter> xSerialNumberAdapter =
- css::security::SerialNumberAdapter::create(mxCtx);
-
SvtSecurityOptions::Certificate aNewCert( 3 );
aNewCert[ 0 ] = Author->getIssuerName();
- aNewCert[ 1 ] = xSerialNumberAdapter->toString( Author->getSerialNumber() );
+ aNewCert[ 1 ] = xmlsecurity::bigIntegerToNumericString( Author->getSerialNumber() );
OUStringBuffer aStrBuffer;
::sax::Converter::encodeBase64(aStrBuffer, Author->getEncoded());
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx
index 53ceb0d55de2..292f41e8d9ae 100644
--- a/xmlsecurity/source/dialogs/certificatechooser.cxx
+++ b/xmlsecurity/source/dialogs/certificatechooser.cxx
@@ -27,7 +27,6 @@
#include <com/sun/star/security/NoPasswordException.hpp>
#include <com/sun/star/security/CertificateCharacters.hpp>
-#include <com/sun/star/security/SerialNumberAdapter.hpp>
#include "resourcemanager.hxx"
#include <vcl/msgbox.hxx>
@@ -168,9 +167,6 @@ void CertificateChooser::ImplInitialize()
{
}
- uno::Reference< css::security::XSerialNumberAdapter> xSerialNumberAdapter =
- css::security::SerialNumberAdapter::create(mxCtx);
-
sal_Int32 nCertificates = maCerts.getLength();
for( sal_Int32 nCert = nCertificates; nCert; )
{
diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
index 082e6316a69a..2373fb21a735 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
@@ -32,7 +32,6 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/security/CertificateValidity.hpp>
#include <com/sun/star/packages/WrongPasswordException.hpp>
-#include <com/sun/star/security/SerialNumberAdapter.hpp>
#include <com/sun/star/security/XDocumentDigitalSignatures.hpp>
#include <com/sun/star/xml/dom/XDocumentBuilder.hpp>
#include <com/sun/star/packages/manifest/ManifestReader.hpp>
@@ -458,8 +457,6 @@ void DigitalSignaturesDialog::ImplFillSignaturesBox()
m_pSignaturesLB->Clear();
uno::Reference<xml::crypto::XSecurityEnvironment> xSecEnv = maSignatureManager.getSecurityEnvironment();
- uno::Reference<css::security::XSerialNumberAdapter> xSerialNumberAdapter =
- css::security::SerialNumberAdapter::create(mxCtx);
uno::Reference< css::security::XCertificate > xCert;
@@ -494,7 +491,7 @@ void DigitalSignaturesDialog::ImplFillSignaturesBox()
//In case there is no embedded certificate we try to get it from a local store
//Todo: This probably could be removed, see above.
if (!xCert.is())
- xCert = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xSerialNumberAdapter->toSequence( rInfo.ouX509SerialNumber ) );
+ xCert = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xmlsecurity::numericStringToBigInteger( rInfo.ouX509SerialNumber ) );
SAL_WARN_IF( !xCert.is(), "xmlsecurity.dialogs", "Certificate not found and can't be created!" );
@@ -639,15 +636,13 @@ void DigitalSignaturesDialog::ImplShowSignaturesDetails()
sal_uInt16 nSelected = (sal_uInt16) reinterpret_cast<sal_uIntPtr>( m_pSignaturesLB->FirstSelected()->GetUserData() );
const SignatureInformation& rInfo = maSignatureManager.maCurrentSignatureInformations[ nSelected ];
uno::Reference<xml::crypto::XSecurityEnvironment> xSecEnv = maSignatureManager.getSecurityEnvironment();
- css::uno::Reference<com::sun::star::security::XSerialNumberAdapter> xSerialNumberAdapter =
- css::security::SerialNumberAdapter::create(mxCtx);
// Use Certificate from doc, not from key store
uno::Reference< css::security::XCertificate > xCert;
if (!rInfo.ouX509Certificate.isEmpty())
xCert = xSecEnv->createCertificateFromAscii(rInfo.ouX509Certificate);
//fallback if no certificate is embedded, get if from store
if (!xCert.is())
- xCert = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xSerialNumberAdapter->toSequence( rInfo.ouX509SerialNumber ) );
+ xCert = xSecEnv->getCertificate( rInfo.ouX509IssuerName, xmlsecurity::numericStringToBigInteger( rInfo.ouX509SerialNumber ) );
SAL_WARN_IF( !xCert.is(), "xmlsecurity.dialogs", "Error getting Certificate!" );
if ( xCert.is() )
diff --git a/xmlsecurity/source/dialogs/macrosecurity.cxx b/xmlsecurity/source/dialogs/macrosecurity.cxx
index c284ebabb51e..440ea3c894be 100644
--- a/xmlsecurity/source/dialogs/macrosecurity.cxx
+++ b/xmlsecurity/source/dialogs/macrosecurity.cxx
@@ -29,7 +29,6 @@
#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp>
-#include <com/sun/star/security/SerialNumberAdapter.hpp>
#include <comphelper/sequence.hxx>
#include <sfx2/filedlghelper.hxx>
#include <comphelper/processfactory.hxx>
@@ -221,10 +220,7 @@ IMPL_LINK_NOARG(MacroSecurityTrustedSourcesTP, ViewCertPBHdl, Button*, void)
{
sal_uInt16 nSelected = sal_uInt16( sal_uIntPtr( m_pTrustCertLB->FirstSelected()->GetUserData() ) );
- uno::Reference< css::security::XSerialNumberAdapter > xSerialNumberAdapter =
- css::security::SerialNumberAdapter::create(mpDlg->mxCtx);
-
- uno::Reference< css::security::XCertificate > xCert = mpDlg->mxSecurityEnvironment->getCertificate( maTrustedAuthors[nSelected][0], xSerialNumberAdapter->toSequence( maTrustedAuthors[nSelected][1] ) );
+ uno::Reference< css::security::XCertificate > xCert = mpDlg->mxSecurityEnvironment->getCertificate( maTrustedAuthors[nSelected][0], xmlsecurity::numericStringToBigInteger( maTrustedAuthors[nSelected][1] ) );
// If we don't get it, create it from signature data:
if ( !xCert.is() )
diff --git a/xmlsecurity/source/helper/documentsignaturemanager.cxx b/xmlsecurity/source/helper/documentsignaturemanager.cxx
index dcee8e4d1f77..d97b1d11e0e6 100644
--- a/xmlsecurity/source/helper/documentsignaturemanager.cxx
+++ b/xmlsecurity/source/helper/documentsignaturemanager.cxx
@@ -23,7 +23,6 @@
#include <com/sun/star/embed/ElementModes.hpp>
#include <com/sun/star/io/TempFile.hpp>
#include <com/sun/star/io/XTruncate.hpp>
-#include <com/sun/star/security/SerialNumberAdapter.hpp>
#include <com/sun/star/embed/XTransactedObject.hpp>
#include <com/sun/star/xml/crypto/SEInitializer.hpp>
@@ -35,6 +34,7 @@
#include <o3tl/make_unique.hxx>
#include <certificate.hxx>
+#include <biginteger.hxx>
using namespace com::sun::star;
@@ -239,8 +239,7 @@ bool DocumentSignatureManager::add(const uno::Reference<security::XCertificate>&
return false;
}
- uno::Reference<security::XSerialNumberAdapter> xSerialNumberAdapter = security::SerialNumberAdapter::create(mxContext);
- OUString aCertSerial = xSerialNumberAdapter->toString(xCert->getSerialNumber());
+ OUString aCertSerial = xmlsecurity::bigIntegerToNumericString(xCert->getSerialNumber());
if (aCertSerial.isEmpty())
{
SAL_WARN("xmlsecurity.helper", "Error in Certificate, problem with serial number!");
diff --git a/xmlsecurity/source/xmlsec/biginteger.cxx b/xmlsecurity/source/xmlsec/biginteger.cxx
index 331e853a7f9b..4f1004be1a97 100644
--- a/xmlsecurity/source/xmlsec/biginteger.cxx
+++ b/xmlsecurity/source/xmlsec/biginteger.cxx
@@ -25,6 +25,8 @@
using namespace ::com::sun::star::uno ;
+namespace xmlsecurity
+{
Sequence< sal_Int8 > numericStringToBigInteger ( const OUString& numeral )
{
if( numeral.getStr() != nullptr )
@@ -106,5 +108,6 @@ OUString bigIntegerToNumericString ( const Sequence< sal_Int8 >& integer )
return aRet ;
}
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
index 14fb71d85b95..97c253a8977b 100644
--- a/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
+++ b/xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx
@@ -618,7 +618,7 @@ Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const
}
Reference< XCertificate > SecurityEnvironment_MSCryptImpl::getCertificate( const OUString& issuerName, const OUString& serialNumber ) {
- Sequence< sal_Int8 > serial = numericStringToBigInteger( serialNumber ) ;
+ Sequence< sal_Int8 > serial = xmlsecurity::numericStringToBigInteger( serialNumber ) ;
return getCertificate( issuerName, serial ) ;
}
diff --git a/xmlsecurity/source/xmlsec/serialnumberadapter.cxx b/xmlsecurity/source/xmlsec/serialnumberadapter.cxx
index 2377654b086d..372b68330f83 100644
--- a/xmlsecurity/source/xmlsec/serialnumberadapter.cxx
+++ b/xmlsecurity/source/xmlsec/serialnumberadapter.cxx
@@ -60,11 +60,11 @@ private:
virtual OUString SAL_CALL toString(
css::uno::Sequence< sal_Int8 > const & SerialNumber) override
- { return bigIntegerToNumericString(SerialNumber); }
+ { return xmlsecurity::bigIntegerToNumericString(SerialNumber); }
virtual css::uno::Sequence< sal_Int8 > SAL_CALL toSequence(
OUString const & SerialNumber) override
- { return numericStringToBigInteger(SerialNumber); }
+ { return xmlsecurity::numericStringToBigInteger(SerialNumber); }
};
}