19#ifndef INCLUDED_PACKAGE_INC_ZIPPACKAGESTREAM_HXX
20#define INCLUDED_PACKAGE_INC_ZIPPACKAGESTREAM_HXX
22#include <com/sun/star/io/XActiveDataSink.hpp>
23#include <com/sun/star/beans/NamedValue.hpp>
24#include <com/sun/star/packages/XDataSinkEncrSupport.hpp>
25#include <com/sun/star/uno/XComponentContext.hpp>
32#define PACKAGE_STREAM_NOTSET 0
33#define PACKAGE_STREAM_PACKAGEMEMBER 1
34#define PACKAGE_STREAM_DETECT 2
35#define PACKAGE_STREAM_DATA 3
36#define PACKAGE_STREAM_RAW 4
43 css::io::XActiveDataSink,
44 css::packages::XDataSinkEncrSupport
48 css::uno::Reference < css::io::XInputStream >
m_xStream;
76 css::uno::Reference< css::io::XInputStream >
getRawData();
84 enum class Bugs {
None, WinEncodingWrongSHA1, WrongSHA1 };
112 void setSalt (
const css::uno::Sequence < sal_Int8 >& rNewSalt )
114 void setDigest (
const css::uno::Sequence < sal_Int8 >& rNewDigest )
118 void setSize (
const sal_Int64 nNewSize);
121 const css::uno::Reference < css::uno::XComponentContext >& xContext,
123 bool bAllowRemoveOnInsert );
130 virtual bool saveChild(
const OUString &rPath,
131 std::vector < css::uno::Sequence < css::beans::PropertyValue > > &rManList,
133 const css::uno::Sequence < sal_Int8 >& rEncryptionKey,
134 sal_Int32 nPBKDF2IterationCount,
141 virtual void SAL_CALL
setInputStream(
const css::uno::Reference< css::io::XInputStream >& aStream )
override;
142 virtual css::uno::Reference< css::io::XInputStream > SAL_CALL
getInputStream( )
override;
145 virtual css::uno::Reference< css::io::XInputStream > SAL_CALL
getDataStream()
override;
146 virtual css::uno::Reference< css::io::XInputStream > SAL_CALL
getRawStream()
override;
148 const css::uno::Reference< css::io::XInputStream >& aStream )
override;
150 const css::uno::Reference< css::io::XInputStream >& aStream )
override;
151 virtual css::uno::Reference< css::io::XInputStream > SAL_CALL
getPlainRawStream()
override;
154 virtual void SAL_CALL
setPropertyValue(
const OUString& aPropertyName,
const css::uno::Any& aValue )
override;
155 virtual css::uno::Any SAL_CALL
getPropertyValue(
const OUString& PropertyName )
override;
#define PACKAGE_STREAM_PACKAGEMEMBER
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
void setDigest(const css::uno::Sequence< sal_Int8 > &rNewDigest)
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getPlainRawStream() override
void SetImportedDerivedKeySize(sal_Int32 nSize)
sal_Int32 m_nImportedChecksumAlgorithm
void SetImportedChecksumAlgorithm(sal_Int32 nAlgorithm)
sal_Int32 GetBlockSize() const
void successfullyWritten(ZipEntry const *pEntry)
void SetToBeCompressed(bool bNewValue)
::rtl::Reference< BaseEncryptionData > m_xBaseEncryptionData
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getDataStream() override
css::uno::Reference< css::io::XInputStream > GetRawEncrStreamNoHeaderCopy()
css::uno::Sequence< sal_Int8 > m_aEncryptionKey
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getRawStream() override
css::uno::Reference< css::io::XInputStream > getRawData()
get raw data using unbuffered stream
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getInputStream() override
void SetPackageMember(bool bNewValue)
void SetImportedEncryptionAlgorithm(sal_Int32 nAlgorithm)
css::uno::Reference< css::io::XInputStream > TryToGetRawFromDataStream(bool bAddHeaderForEncr)
virtual void SAL_CALL setInputStream(const css::uno::Reference< css::io::XInputStream > &aStream) override
void SetFromManifest(bool bValue)
sal_Int64 m_nOwnStreamOrigSize
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
sal_Int32 m_nImportedStartKeyAlgorithm
ZipPackageStream(ZipPackage &rNewPackage, const css::uno::Reference< css::uno::XComponentContext > &xContext, sal_Int32 nFormat, bool bAllowRemoveOnInsert)
::rtl::Reference< EncryptionData > GetEncryptionData(Bugs bugs=Bugs::None)
void SetToBeEncrypted(bool bNewValue)
ZipPackage & m_rZipPackage
sal_uInt32 m_nMagicalHackPos
void SetIsEncrypted(bool bNewValue)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
void SetImportedStartKeyAlgorithm(sal_Int32 nAlgorithm)
sal_Int32 m_nImportedDerivedKeySize
virtual void SAL_CALL setDataStream(const css::uno::Reference< css::io::XInputStream > &aStream) override
bool ParsePackageRawStream()
sal_Int32 GetStartKeyGenID() const
bool IsPackageMember() const
virtual bool saveChild(const OUString &rPath, std::vector< css::uno::Sequence< css::beans::PropertyValue > > &rManList, ZipOutputStream &rZipOut, const css::uno::Sequence< sal_Int8 > &rEncryptionKey, sal_Int32 nPBKDF2IterationCount, const rtlRandomPool &rRandomPool) override
sal_Int32 GetEncryptionAlgorithm() const
virtual ~ZipPackageStream() override
void setInitialisationVector(const css::uno::Sequence< sal_Int8 > &rNewVector)
void setSalt(const css::uno::Sequence< sal_Int8 > &rNewSalt)
virtual OUString SAL_CALL getImplementationName() override
bool m_bCompressedIsSetFromOutside
css::uno::Sequence< css::beans::NamedValue > m_aStorageEncryptionKeys
css::uno::Reference< css::io::XInputStream > const & GetOwnSeekStream()
Check that m_xStream implements io::XSeekable and return it.
bool IsFromManifest() const
sal_uInt32 m_nMagicalHackSize
sal_Int32 m_nImportedEncryptionAlgorithm
void setSize(const sal_Int64 nNewSize)
virtual void SAL_CALL setRawStream(const css::uno::Reference< css::io::XInputStream > &aStream) override
css::uno::Reference< css::io::XInputStream > m_xStream
void setZipEntryOnLoading(const ZipEntry &rInEntry)
void setIterationCount(const sal_Int32 nNewCount)
css::uno::Sequence< sal_Int8 > GetEncryptionKey(Bugs bugs=Bugs::None)