summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <Thorsten.Behrens@CIB.de>2018-01-11 23:38:35 +0100
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2018-01-13 14:35:01 +0100
commit6df0c7bc230a424f5aefe583b591df70c6273b6f (patch)
tree20fbc447d4486c5938b471c6135f414fe6e25b0d
parenteea58228eabec225cfec49932ae0c7b0d79fdc7f (diff)
tdf#114550 recognize sym key & init vec as valid f/ decrypt
Otherwise package code would _only_ try to decrypt for salt and iteration count present, which does not make sense for gpg. Change-Id: Ie366f086a3c14d6b54b91b4edee8cfef1a42c44b Reviewed-on: https://gerrit.libreoffice.org/47782 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rw-r--r--package/source/zipapi/XUnbufferedStream.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/package/source/zipapi/XUnbufferedStream.cxx b/package/source/zipapi/XUnbufferedStream.cxx
index 162bab6d7580..d20b46195c3a 100644
--- a/package/source/zipapi/XUnbufferedStream.cxx
+++ b/package/source/zipapi/XUnbufferedStream.cxx
@@ -78,7 +78,10 @@ XUnbufferedStream::XUnbufferedStream(
if (mnZipSize < 0)
throw ZipIOException("The stream seems to be broken!");
- bool bHaveEncryptData = rData.is() && rData->m_aSalt.getLength() && rData->m_aInitVector.getLength() && rData->m_nIterationCount != 0;
+ bool bHaveEncryptData = rData.is() && rData->m_aInitVector.getLength() &&
+ ((rData->m_aSalt.getLength() && rData->m_nIterationCount != 0)
+ ||
+ rData->m_aKey.getLength());
bool bMustDecrypt = nStreamMode == UNBUFF_STREAM_DATA && bHaveEncryptData && bIsEncrypted;
if ( bMustDecrypt )