INTEGRATION: CWS xmlsec12 (1.20.2); FILE MERGED

2005/05/02 10:39:12 mt 1.20.2.1: small performance optimization - check for signature stream before initializing the security environment
This commit is contained in:
Rüdiger Timm
2005-05-18 08:56:59 +00:00
parent 1f531881de
commit 739ee68b65

View File

@@ -2,9 +2,9 @@
* *
* $RCSfile: documentdigitalsignatures.cxx,v $ * $RCSfile: documentdigitalsignatures.cxx,v $
* *
* $Revision: 1.20 $ * $Revision: 1.21 $
* *
* last change: $Author: hr $ $Date: 2005-04-08 16:19:50 $ * last change: $Author: rt $ $Date: 2005-05-18 09:56:59 $
* *
* The Contents of this file are made available subject to the terms of * The Contents of this file are made available subject to the terms of
* either of the following licenses * either of the following licenses
@@ -203,22 +203,7 @@ sal_Bool DocumentDigitalSignatures::ImplViewSignatures( const Reference< ::com::
Sequence< ::com::sun::star::security::DocumentSignaturesInformation > DocumentDigitalSignatures::ImplVerifySignatures( const Reference< ::com::sun::star::embed::XStorage >& rxStorage, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xSignStream, DocumentSignatureMode eMode ) throw (RuntimeException) Sequence< ::com::sun::star::security::DocumentSignaturesInformation > DocumentDigitalSignatures::ImplVerifySignatures( const Reference< ::com::sun::star::embed::XStorage >& rxStorage, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xSignStream, DocumentSignatureMode eMode ) throw (RuntimeException)
{ {
XMLSignatureHelper aSignatureHelper( mxMSF ); // First check for the InputStream, to avoid unnecessary initialization of the security environemnt...
bool bInit = aSignatureHelper.Init( rtl::OUString() );
DBG_ASSERT( bInit, "Error initializing security context!" );
if ( !bInit )
{
Sequence< ::com::sun::star::security::DocumentSignaturesInformation > aInfos(0);
return aInfos;
}
aSignatureHelper.SetStorage( rxStorage );
aSignatureHelper.StartMission();
SignatureStreamHelper aStreamHelper; SignatureStreamHelper aStreamHelper;
Reference< io::XInputStream > xInputStream = xSignStream; Reference< io::XInputStream > xInputStream = xSignStream;
@@ -229,10 +214,25 @@ Sequence< ::com::sun::star::security::DocumentSignaturesInformation > DocumentDi
xInputStream = Reference< io::XInputStream >( aStreamHelper.xSignatureStream, UNO_QUERY ); xInputStream = Reference< io::XInputStream >( aStreamHelper.xSignatureStream, UNO_QUERY );
} }
if ( xInputStream.is() ) if ( !xInputStream.is() )
aSignatureHelper.ReadAndVerifySignature( xInputStream ); return Sequence< ::com::sun::star::security::DocumentSignaturesInformation >(0);
XMLSignatureHelper aSignatureHelper( mxMSF );
bool bInit = aSignatureHelper.Init( rtl::OUString() );
DBG_ASSERT( bInit, "Error initializing security context!" );
if ( !bInit )
return Sequence< ::com::sun::star::security::DocumentSignaturesInformation >(0);
aSignatureHelper.SetStorage( rxStorage );
aSignatureHelper.StartMission();
aSignatureHelper.ReadAndVerifySignature( xInputStream );
aSignatureHelper.EndMission(); aSignatureHelper.EndMission();
Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > xSecEnv = aSignatureHelper.GetSecurityEnvironment(); Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > xSecEnv = aSignatureHelper.GetSecurityEnvironment();