Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : */
10 :
11 : #ifndef INCLUDED_OOX_CRYPTO_CRYPTOENGINE_HXX
12 : #define INCLUDED_OOX_CRYPTO_CRYPTOENGINE_HXX
13 :
14 : #include <vector>
15 :
16 : #include <oox/helper/binaryinputstream.hxx>
17 : #include <oox/helper/binaryoutputstream.hxx>
18 :
19 : namespace oox {
20 : namespace core {
21 :
22 : class CryptoEngine
23 : {
24 : protected:
25 : std::vector<sal_uInt8> mKey;
26 :
27 : public:
28 0 : CryptoEngine()
29 0 : {}
30 :
31 0 : virtual ~CryptoEngine()
32 0 : {}
33 :
34 0 : virtual std::vector<sal_uInt8>& getKey()
35 : {
36 0 : return mKey;
37 : }
38 :
39 : virtual bool writeEncryptionInfo(
40 : const OUString& rPassword,
41 : BinaryXOutputStream& rStream) = 0;
42 :
43 : virtual bool generateEncryptionKey(const OUString& rPassword) = 0;
44 :
45 : virtual bool decrypt(
46 : BinaryXInputStream& aInputStream,
47 : BinaryXOutputStream& aOutputStream) = 0;
48 :
49 : virtual bool encrypt(
50 : BinaryXInputStream& aInputStream,
51 : BinaryXOutputStream& aOutputStream) = 0;
52 : };
53 :
54 : } // namespace core
55 : } // namespace oox
56 :
57 : #endif
58 :
59 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|