mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-11 14:00:32 +08:00
31 lines
649 B
C++
31 lines
649 B
C++
#pragma once
|
|
|
|
#include "Crypt.h"
|
|
#include <XLS_logic/Biff_structures/RC4EncryptionHeader.h>
|
|
#include "BiffDecoder_RCF.h"
|
|
|
|
namespace CRYPT
|
|
{;
|
|
|
|
class RC4Crypt : public Crypt
|
|
{
|
|
public:
|
|
RC4Crypt(const CRYPTO::RC4EncryptionHeader& header);
|
|
|
|
virtual void Encrypt(char* data, const size_t size);
|
|
virtual void Decrypt(char* data, const size_t size, const ULONGLONG stream_pos);
|
|
|
|
private:
|
|
void CopyDWORDs2BYTEs(const DWORD b1, const DWORD b2, const DWORD b3, const DWORD b4, BYTE* byte_array);
|
|
|
|
private:
|
|
BYTE pnSalt[16];
|
|
BYTE pnVerifier[16];
|
|
BYTE pnVerifierHash[16];
|
|
|
|
BiffDecoderRef mxDecoder;
|
|
};
|
|
|
|
|
|
} // namespace CRYPT
|