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
/**
Creates a security context.
@param aString
reserved for internal use.
@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.
......
......@@ -46,7 +46,7 @@ namespace cmis
if ( xSEInitializer.is() )
{
uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext(
xSEInitializer->createSecurityContext( OUString() ) );
xSEInitializer->createSecurityContext() );
uno::Reference< xml::crypto::XSecurityEnvironment > xSecurityEnv(
xSecurityContext->getSecurityEnvironment() );
......
......@@ -398,7 +398,7 @@ extern "C" int NeonSession_CertificationNotify( void *userdata,
return 1;
uno::Reference< xml::crypto::XXMLSecurityContext > xSecurityContext(
xSEInitializer->createSecurityContext( OUString() ) );
xSEInitializer->createSecurityContext() );
uno::Reference< xml::crypto::XSecurityEnvironment > xSecurityEnv(
xSecurityContext->getSecurityEnvironment() );
......
......@@ -373,7 +373,7 @@ apr_status_t SerfSession::verifySerfCertificateChain (
css::uno::Reference< css::xml::crypto::XSEInitializer > xSEInitializer =
css::xml::crypto::SEInitializer::create( xContext );
xSecurityContext = xSEInitializer->createSecurityContext( OUString() );
xSecurityContext = xSEInitializer->createSecurityContext();
if (xSecurityContext.is())
xSecurityEnv = xSecurityContext->getSecurityEnvironment();
......
......@@ -126,7 +126,7 @@ namespace {
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::XXMLSecurityContext > xSecurityContext(
xSEInitializer->createSecurityContext(OUString()));
xSEInitializer->createSecurityContext());
return xSecurityContext->getSecurityEnvironment();
}
......
......@@ -119,7 +119,7 @@ void PDFSigningTest::setUp()
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::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString());
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
std::vector<SignatureInformation> aRet;
SvFileStream aStream(rURL, StreamMode::READ);
......@@ -151,7 +151,7 @@ bool PDFSigningTest::sign(const OUString& rInURL, const OUString& rOutURL, size_
{
// Make sure that input has nOriginalSignatureCount signatures.
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;
{
SvFileStream aStream(rInURL, StreamMode::READ);
......@@ -223,7 +223,7 @@ void PDFSigningTest::testPDFRemove()
{
// Make sure that good.pdf has 1 valid signature.
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;
{
OUString aSourceDir = m_directories.getURLFromSrc(DATA_DIRECTORY);
......@@ -257,7 +257,7 @@ void PDFSigningTest::testPDFRemoveAll()
// testPDFRemove(), here intentionally test DocumentSignatureManager and
// PDFSignatureHelper code as well.
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.
OUString aTargetDir = m_directories.getURLFromWorkdir("/CppunitTest/xmlsecurity_pdfsigning.test.user/");
......@@ -410,7 +410,7 @@ void PDFSigningTest::testUnknownSubFilter()
{
// Tokenize the bugdoc.
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);
uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
DocumentSignatureManager aManager(mxComponentContext, DocumentSignatureMode::Content);
......
......@@ -56,7 +56,7 @@ bool DocumentSignatureManager::init()
mxSEInitializer = css::xml::crypto::SEInitializer::create(mxContext);
if (mxSEInitializer.is())
mxSecurityContext = mxSEInitializer->createSecurityContext(OUString());
mxSecurityContext = mxSEInitializer->createSecurityContext();
return mxSecurityContext.is();
}
......
......@@ -45,31 +45,12 @@ SEInitializer_MSCryptImpl::~SEInitializer_MSCryptImpl()
/* XSEInitializer */
cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
SEInitializer_MSCryptImpl::createSecurityContext(
const OUString& sCertDB )
SEInitializer_MSCryptImpl::createSecurityContext()
throw (cssu::RuntimeException)
{
const char* n_pCertStore ;
HCERTSTORE n_hStoreHandle ;
//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 {
/* Build Security Environment */
......@@ -80,24 +61,11 @@ cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
SecurityEnvironment_MSCryptImpl* pSecEnv = reinterpret_cast<SecurityEnvironment_MSCryptImpl*>(xSecEnvTunnel->getSomething( SecurityEnvironment_MSCryptImpl::getUnoTunnelId() ));
if( pSecEnv == nullptr )
{
if( n_hStoreHandle != nullptr )
{
CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
}
xmlSecMSCryptoAppShutdown() ;
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 */
cssu::Reference< cssxc::XXMLSecurityContext > xSecCtx = cssxc::XMLSecurityContext::create( mxContext );
......@@ -107,11 +75,6 @@ cssu::Reference< cssxc::XXMLSecurityContext > SAL_CALL
}
catch( cssu::Exception& )
{
if( n_hStoreHandle != nullptr )
{
CertCloseStore( n_hStoreHandle, CERT_CLOSE_STORE_FORCE_FLAG ) ;
}
xmlSecMSCryptoAppShutdown() ;
return nullptr;
}
......
......@@ -56,7 +56,7 @@ public:
/* XSEInitializer */
virtual css::uno::Reference< css::xml::crypto::XXMLSecurityContext >
SAL_CALL createSecurityContext( const OUString& certDB )
SAL_CALL createSecurityContext()
throw (css::uno::RuntimeException) override;
virtual void SAL_CALL freeSecurityContext( const css::uno::Reference<
......
......@@ -63,7 +63,7 @@ SEInitializer_NssImpl::~SEInitializer_NssImpl()
/* XSEInitializer */
uno::Reference< cssxc::XXMLSecurityContext > SAL_CALL
SEInitializer_NssImpl::createSecurityContext( const OUString& )
SEInitializer_NssImpl::createSecurityContext()
throw (uno::RuntimeException, std::exception)
{
CERTCertDBHandle *pCertHandle = nullptr ;
......
......@@ -41,7 +41,7 @@ public:
/* XSEInitializer */
virtual css::uno::Reference< css::xml::crypto::XXMLSecurityContext >
SAL_CALL createSecurityContext( const OUString& )
SAL_CALL createSecurityContext()
throw (css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL freeSecurityContext( const css::uno::Reference<
......
......@@ -56,7 +56,7 @@ int pdfVerify(int nArgc, char** pArgv)
SAL_WARN("xmlsecurity.pdfio", "DeploymentException while creating SEInitializer: " << rException.Message);
return 1;
}
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext(OUString());
uno::Reference<xml::crypto::XXMLSecurityContext> xSecurityContext = xSEInitializer->createSecurityContext();
OUString 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