📄 cpgpdiskheaders.h
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: CPGPdiskHeaders.h,v 1.5 2002/08/06 20:09:36 dallen Exp $
____________________________________________________________________________*/
#ifndef Included_CPGPdiskHeaders_h // [
#define Included_CPGPdiskHeaders_h
#include "CList.h"
#include "Crypto.h"
_PGP_BEGIN
// Types
class CFile;
class CPGPdiskContext;
class CPGPdiskUser;
class CPGPdiskUserSet;
class CPGPKey;
class CCipherContext;
class CPGPdiskHeader;
class CPGPdiskMainHeader;
namespace PGPdiskOldFormat
{
struct MainHeader;
}
// Class CPGPdiskHeaders
class CPGPdiskHeaders
{
NOT_COPYABLE(CPGPdiskHeaders)
public:
CPGPdiskHeaders() : mPContext(NULL), mHeadersRead(FALSE) { }
~CPGPdiskHeaders();
const CPGPdiskContext * Context() const {return mPContext;}
PGPBoolean HeadersRead() const {return mHeadersRead;}
PGPBoolean HasOldHeaders() const;
PGPUInt64 NumFileBlocks() const;
PGPUInt64 NumHeaderBlocks() const;
PGPUInt64 NumDataBlocks() const;
PGPdiskEncryptionAlgorithm Algorithm() const;
PGPBoolean IsBeingReEncrypted() const;
PGPBoolean AreUsersWiped() const;
PGPBoolean UsesCustomTimeout() const;
const char * DefaultRoot() const;
PGPUInt32 CustomTimeout() const;
PGPUInt64 BlocksDisk() const;
void SetUsesCustomTimeout(PGPBoolean usesCustom);
void SetCustomTimeout(PGPUInt32 customTimeout);
void SetDefaultRoot(const char *root);
void ExportUserSet(CPGPdiskUserSet& userSet) const;
void ImportUserSet(const CPGPdiskUserSet& userSet);
void EnableCipheringOnUser(CPGPdiskUser& user, const char *passphrase, int passkeylen);
void WipeUsers(CFile& diskFile);
void BeginReEncryption(CFile& diskFile, const char *adminPassphrase,
PGPdiskEncryptionAlgorithm newAlgorithm);
void GetReEncryptionInfo(const char *adminPassphrase,
CCipherContext& oldCipher, CCipherContext& newCipher,
PGPUInt64& numBlocksReEncrypted) const;
void WriteReEncryptionProgress(CFile& diskFile,
PGPUInt64 numBlocksReEncrypted);
void FinishReEncryption(CFile& diskFile);
void ReadHeaders(const CPGPdiskContext *pContext,
const CFile& diskFile);
void WriteHeaders(CFile& diskFile);
void ClearHeaders();
void CreateHeaders(const CPGPdiskContext *pContext,
const CFile& diskFile, PGPUInt64 blocksDisk,
PGPdiskEncryptionAlgorithm algorithm, const char *adminPassphrase,
const char *userName, const char *defaultRoot,
CCipherContext &cipher);
void CreateHeaders(const CPGPdiskContext *pContext,
const CFile& diskFile, PGPUInt64 blocksDisk,
PGPdiskEncryptionAlgorithm algorithm, const CPGPKey& pubKey,
const char *defaultRoot, CCipherContext &cipher);
private:
const CPGPdiskContext *mPContext;
CList<CPGPdiskHeader> mHeaders;
PGPBoolean mHeadersRead;
CPGPdiskMainHeader * MainHeader() const
{
return reinterpret_cast<CPGPdiskMainHeader *>(mHeaders.Head());
}
void NukeAllUserHeaders();
void CopyAndAddTypedHeader(const CPGPdiskHeader *pHeader);
void CreateHeadersFromOldMainHeader(
const PGPdiskOldFormat::MainHeader *pOldHeader);
void GenerateNewKeyAndSalt(CCipherContext& cipher) const;
void CreateHeadersCommon(const CPGPdiskContext *pContext,
const CFile& diskFile, PGPUInt64 blocksDisk,
PGPdiskEncryptionAlgorithm algorithm, const char *adminPass,
const char *userName, const CPGPKey *pPubKey,
const char *defaultRoot, CCipherContext &cipher);
};
_PGP_END
#endif // ] Included_CPGPdiskHeaders_h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -