Kaydet (Commit) e1ce7bad authored tarafından Tor Lillqvist's avatar Tor Lillqvist

[API CHANGE] createSecurityContext() was always called with an empty string

So drop the parameter then and propagate fallout in the Windows
implementation in xmlsecurity. The NSS implementation already ignored
the parameter completely.

This interface is not 'published' and the parameter was even marked as
'reserved for internal use' so I doubt any external code has used it.

Change-Id: I5915b941b79cfddadc8137c32ed07c20c9ccaa37
üst 0f00751a
...@@ -35,12 +35,9 @@ interface XSEInitializer : com::sun::star::uno::XInterface ...@@ -35,12 +35,9 @@ interface XSEInitializer : com::sun::star::uno::XInterface
/** /**
Creates a security context. Creates a security context.
@param aString
reserved for internal use.
@return the security context created @return the security context created
*/ */
::com::sun::star::xml::crypto::XXMLSecurityContext createSecurityContext( [in] string aString ); ::com::sun::star::xml::crypto::XXMLSecurityContext createSecurityContext();
/** /**
* Frees a security context. * Frees a security context.
......
...@@ -46,7 +46,7 @@ namespace cmis ...@@ -46,7 +46,7 @@ namespace cmis
if ( xSEInitializer.is() ) if ( xSEInitializer.is() )
{ {
uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext( uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext(
xSEInitializer->createSecurityContext( OUString() ) ); xSEInitializer->createSecurityContext() );
uno::Reference< xml::crypto::XSecurityEnvironment > xSecurityEnv( uno::Reference< xml::crypto::XSecurityEnvironment > xSecurityEnv(
xSecurityContext->getSecurityEnvironment() ); xSecurityContext->getSecurityEnvironment() );
......
...@@ -398,7 +398,7 @@ extern "C" int NeonSession_CertificationNotify( void *userdata, ...@@ -398,7 +398,7 @@ extern "C" int NeonSession_CertificationNotify( void *userdata,
return 1; return 1;
uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext( uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext(
xSEInitializer->createSecurityContext( OUString() ) ); xSEInitializer->createSecurityContext() );
uno::Reference< xml::crypto::XSecurityEnvironment > xSecurityEnv( uno::Reference< xml::crypto::XSecurityEnvironment > xSecurityEnv(
xSecurityContext->getSecurityEnvironment() ); xSecurityContext->getSecurityEnvironment() );
......
...@@ -373,7 +373,7 @@ apr_status_t SerfSession::verifySerfCertificateChain ( ...@@ -373,7 +373,7 @@ apr_status_t SerfSession::verifySerfCertificateChain (
css::uno::Reference< css::xml::crypto::XSEInitializer > xSEInitializer = css::uno::Reference< css::xml::crypto::XSEInitializer > xSEInitializer =
css::xml::crypto::SEInitializer::create( xContext ); css::xml::crypto::SEInitializer::create( xContext );
xSecurityContext = xSEInitializer->createSecurityContext( OUString() ); xSecurityContext = xSEInitializer->createSecurityContext();
if (xSecurityContext.is()) if (xSecurityContext.is())
xSecurityEnv = xSecurityContext->getSecurityEnvironment(); xSecurityEnv = xSecurityContext->getSecurityEnvironment();
......
...@@ -126,7 +126,7 @@ namespace { ...@@ -126,7 +126,7 @@ namespace {
uno::Reference< lang::XMultiServiceFactory > factory(context->getServiceManager(), uno::UNO_QUERY_THROW); uno::Reference< lang::XMultiServiceFactory > factory(context->getServiceManager(), uno::UNO_QUERY_THROW);
uno::Reference< xml::crypto::XSEInitializer > xSEInitializer = xml::crypto::SEInitializer::create(context); uno::Reference< xml::crypto::XSEInitializer > xSEInitializer = xml::crypto::SEInitializer::create(context);
uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext( uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext(
xSEInitializer->createSecurityContext(OUString())); xSEInitializer->createSecurityContext());
return xSecurityContext->getSecurityEnvironment(); return xSecurityContext->getSecurityEnvironment();
} }
......
...@@ -119,7 +119,7 @@ void PDFSigningTest::setUp() ...@@ -119,7 +119,7 @@ void PDFSigningTest::setUp()
std::vector<SignatureInformation> PDFSigningTest::verify(const OUString& rURL, size_t nCount, const OString& rExpectedSubFilter) std::vector<SignatureInformation> PDFSigningTest::verify(const OUString& rURL, size_t nCount, const OString& rExpectedSubFilter)
{ {
uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext); uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext);
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString()); uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
std::vector<SignatureInformation> aRet; std::vector<SignatureInformation> aRet;
SvFileStream aStream(rURL, StreamMode::READ); SvFileStream aStream(rURL, StreamMode::READ);
...@@ -151,7 +151,7 @@ bool PDFSigningTest::sign(const OUString& rInURL, const OUString& rOutURL, size_ ...@@ -151,7 +151,7 @@ bool PDFSigningTest::sign(const OUString& rInURL, const OUString& rOutURL, size_
{ {
// Make sure that input has nOriginalSignatureCount signatures. // Make sure that input has nOriginalSignatureCount signatures.
uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext); uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext);
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString()); uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
xmlsecurity::pdfio::PDFDocument aDocument; xmlsecurity::pdfio::PDFDocument aDocument;
{ {
SvFileStream aStream(rInURL, StreamMode::READ); SvFileStream aStream(rInURL, StreamMode::READ);
...@@ -223,7 +223,7 @@ void PDFSigningTest::testPDFRemove() ...@@ -223,7 +223,7 @@ void PDFSigningTest::testPDFRemove()
{ {
// Make sure that good.pdf has 1 valid signature. // Make sure that good.pdf has 1 valid signature.
uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext); uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext);
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString()); uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
xmlsecurity::pdfio::PDFDocument aDocument; xmlsecurity::pdfio::PDFDocument aDocument;
{ {
OUString aSourceDir = m_directories.getURLFromSrc(DATA_DIRECTORY); OUString aSourceDir = m_directories.getURLFromSrc(DATA_DIRECTORY);
...@@ -257,7 +257,7 @@ void PDFSigningTest::testPDFRemoveAll() ...@@ -257,7 +257,7 @@ void PDFSigningTest::testPDFRemoveAll()
// testPDFRemove(), here intentionally test DocumentSignatureManager and // testPDFRemove(), here intentionally test DocumentSignatureManager and
// PDFSignatureHelper code as well. // PDFSignatureHelper code as well.
uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext); uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext);
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString()); uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
// Copy the test document to a temporary file, as it'll be modified. // Copy the test document to a temporary file, as it'll be modified.
OUString aTargetDir = m_directories.getURLFromWorkdir("/CppunitTest/xmlsecurity_pdfsigning.test.user/"); OUString aTargetDir = m_directories.getURLFromWorkdir("/CppunitTest/xmlsecurity_pdfsigning.test.user/");
...@@ -410,7 +410,7 @@ void PDFSigningTest::testUnknownSubFilter() ...@@ -410,7 +410,7 @@ void PDFSigningTest::testUnknownSubFilter()
{ {
// Tokenize the bugdoc. // Tokenize the bugdoc.
uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext); uno::Reference<xml::crypto::XSEInitializer> xSEInitializer = xml::crypto::SEInitializer::create(mxComponentContext);
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString()); uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
SvStream* pStream = utl::UcbStreamHelper::CreateStream(m_directories.getURLFromSrc(DATA_DIRECTORY) + "cr-comment.pdf", StreamMode::READ | StreamMode::WRITE); SvStream* pStream = utl::UcbStreamHelper::CreateStream(m_directories.getURLFromSrc(DATA_DIRECTORY) + "cr-comment.pdf", StreamMode::READ | StreamMode::WRITE);
uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream)); uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
DocumentSignatureManager aManager(mxComponentContext, DocumentSignatureMode::Content); DocumentSignatureManager aManager(mxComponentContext, DocumentSignatureMode::Content);
......
...@@ -56,7 +56,7 @@ bool DocumentSignatureManager::init() ...@@ -56,7 +56,7 @@ bool DocumentSignatureManager::init()
mxSEInitializer = css::xml::crypto::SEInitializer::create(mxContext); mxSEInitializer = css::xml::crypto::SEInitializer::create(mxContext);
if (mxSEInitializer.is()) if (mxSEInitializer.is())
mxSecurityContext = mxSEInitializer->createSecurityContext(OUString()); mxSecurityContext = mxSEInitializer->createSecurityContext();
return mxSecurityContext.is(); return mxSecurityContext.is();
} }
......
...@@ -45,31 +45,12 @@ SEInitializer_MSCryptImpl::~SEInitializer_MSCryptImpl() ...@@ -45,31 +45,12 @@ SEInitializer_MSCryptImpl::~SEInitializer_MSCryptImpl()
/* XSEInitializer */ /* XSEInitializer */
cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
SEInitializer_MSCryptImpl::createSecurityContext( SEInitializer_MSCryptImpl::createSecurityContext()
const OUString& sCertDB )
throw (cssu::RuntimeException) throw (cssu::RuntimeException)
{ {
const char* n_pCertStore ;
HCERTSTORE n_hStoreHandle ;
//Initialize the crypto engine //Initialize the crypto engine
if( sCertDB.getLength() > 0 )
{
OString sCertDir(sCertDB.getStr(), sCertDB.getLength(), RTL_TEXTENCODING_ASCII_US);
n_pCertStore = sCertDir.getStr();
n_hStoreHandle = CertOpenSystemStore( NULL, n_pCertStore ) ;
if( n_hStoreHandle == nullptr )
{
return nullptr;
}
}
else
{
n_pCertStore = nullptr ;
n_hStoreHandle = nullptr ;
}
xmlSecMSCryptoAppInit( n_pCertStore ) ; xmlSecMSCryptoAppInit( nullptr ) ;
try { try {
/* Build Security Environment */ /* Build Security Environment */
...@@ -80,24 +61,11 @@ cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL ...@@ -80,24 +61,11 @@ cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
SecurityEnvironment_MSCryptImpl* pSecEnv = reinterpret_cast<SecurityEnvironment_MSCryptImpl*>(xSecEnvTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() )); SecurityEnvironment_MSCryptImpl* pSecEnv = reinterpret_cast<SecurityEnvironment_MSCryptImpl*>(xSecEnvTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ));
if( pSecEnv == nullptr ) if( pSecEnv == nullptr )
{ {
if( n_hStoreHandle != nullptr )
{
CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
}
xmlSecMSCryptoAppShutdown() ; xmlSecMSCryptoAppShutdown() ;
return nullptr; return nullptr;
} }
if( n_hStoreHandle != nullptr )
{
pSecEnv->setCryptoSlot( n_hStoreHandle ) ;
pSecEnv->setCertDb( n_hStoreHandle ) ;
}
else
{
pSecEnv->enableDefaultCrypt( true ) ; pSecEnv->enableDefaultCrypt( true ) ;
}
/* Build XML Security Context */ /* Build XML Security Context */
cssu::Reference< cssxc::XXMLSecurityContext > xSecCtx = cssxc::XMLSecurityContext::create( mxContext ); cssu::Reference< cssxc::XXMLSecurityContext > xSecCtx = cssxc::XMLSecurityContext::create( mxContext );
...@@ -107,11 +75,6 @@ cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL ...@@ -107,11 +75,6 @@ cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
} }
catch( cssu::Exception& ) catch( cssu::Exception& )
{ {
if( n_hStoreHandle != nullptr )
{
CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
}
xmlSecMSCryptoAppShutdown() ; xmlSecMSCryptoAppShutdown() ;
return nullptr; return nullptr;
} }
......
...@@ -56,7 +56,7 @@ public: ...@@ -56,7 +56,7 @@ public:
/* XSEInitializer */ /* XSEInitializer */
virtual css::uno::Reference< css::xml::crypto::XXMLSecurityContext > virtual css::uno::Reference< css::xml::crypto::XXMLSecurityContext >
SAL_CALL createSecurityContext( const OUString& certDB ) SAL_CALL createSecurityContext()
throw (css::uno::RuntimeException) override; throw (css::uno::RuntimeException) override;
virtual void SAL_CALL freeSecurityContext( const css::uno::Reference< virtual void SAL_CALL freeSecurityContext( const css::uno::Reference<
......
...@@ -63,7 +63,7 @@ SEInitializer_NssImpl::~SEInitializer_NssImpl() ...@@ -63,7 +63,7 @@ SEInitializer_NssImpl::~SEInitializer_NssImpl()
/* XSEInitializer */ /* XSEInitializer */
uno::Reference< cssxc::XXMLSecurityContext > SAL_CALL uno::Reference< cssxc::XXMLSecurityContext > SAL_CALL
SEInitializer_NssImpl::createSecurityContext( const OUString& ) SEInitializer_NssImpl::createSecurityContext()
throw (uno::RuntimeException, std::exception) throw (uno::RuntimeException, std::exception)
{ {
CERTCertDBHandle *pCertHandle = nullptr ; CERTCertDBHandle *pCertHandle = nullptr ;
......
...@@ -41,7 +41,7 @@ public: ...@@ -41,7 +41,7 @@ public:
/* XSEInitializer */ /* XSEInitializer */
virtual css::uno::Reference< css::xml::crypto::XXMLSecurityContext > virtual css::uno::Reference< css::xml::crypto::XXMLSecurityContext >
SAL_CALL createSecurityContext( const OUString& ) SAL_CALL createSecurityContext()
throw (css::uno::RuntimeException, std::exception) override; throw (css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL freeSecurityContext( const css::uno::Reference< virtual void SAL_CALL freeSecurityContext( const css::uno::Reference<
......
...@@ -56,7 +56,7 @@ int pdfVerify(int nArgc, char** pArgv) ...@@ -56,7 +56,7 @@ int pdfVerify(int nArgc, char** pArgv)
SAL_WARN("xmlsecurity.pdfio", "DeploymentException while creating SEInitializer: " << rException.Message); SAL_WARN("xmlsecurity.pdfio", "DeploymentException while creating SEInitializer: " << rException.Message);
return 1; return 1;
} }
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString()); uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
OUString aInURL; OUString aInURL;
osl::FileBase::getFileURLFromSystemPath(OUString::fromUtf8(pArgv[1]), aInURL); osl::FileBase::getFileURLFromSystemPath(OUString::fromUtf8(pArgv[1]), aInURL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment