📄 pgpdiskoldformat.h
字号:
/*____________________________________________________________________________
Copyright (C) 2002 PGP Corporation
All rights reserved.
$Id: PGPdiskOldFormat.h,v 1.3 2002/08/06 20:09:36 dallen Exp $
____________________________________________________________________________*/
#ifndef Included_PGPdiskOldFormat_h // [
#define Included_PGPdiskOldFormat_h
#include "PGPdiskOldCrypto.h"
_PGP_BEGIN
// Align to 1.
#if PGP_WIN32
#pragma pack(push, 1)
#endif
namespace PGPdiskOldFormat
{
// Constants
enum
{
kReservedHeaderBlocks = 12,
kAlternateHeaderBlocks = 1,
kAlternateHeaderSize = kAlternateHeaderBlocks * kPGPdiskBlockSize
};
// Types
struct FileHeaderInfo
{
char headerMagic[4];
char headerType[4];
PGPUInt32 headerSize;
PGPUInt32 headerCRC;
PGPUInt64 nextHeaderOffset;
PGPUInt32 reserved[2];
};
struct MainHeader
{
enum
{
kMajorVersion = 4,
kMinorVersion = 0,
kBadCASTMajorVersion = 2,
kConvertInProgressMajorVersion = 3,
kMaxAlternatePassphrases = 7,
kInvalidSessionId = 0xFFFFFFFFFFFFFFFF
};
FileHeaderInfo headerInfo;
PGPUInt8 majorVersion;
PGPUInt8 minorVersion;
PGPUInt16 reserved;
PGPUInt32 numFileBlocks; // Size of the file, in blocks
PGPUInt32 numHeaderBlocks; // Size of header data
PGPUInt32 numDataBlocks; // Size of the encrypted data
PGPdiskEncryptionAlgorithm algorithm; // encryption method (4 bytes)
PGPUInt8 drive; // preferred drive letter
PGPBoolean mountedFlag; // set while disk is mounted
PGPUInt64 uniqueSessionId; // random session ID
PGPUInt8 reservedBytes[54]; // reserved for future use
PGPdiskOldCrypto::PassphraseSalt salt; // salt for passphrase
PGPdiskOldCrypto::PassphraseKeyInfo passphrases[
kMaxAlternatePassphrases + 1];
};
struct PublicKeyHeader
{
enum
{
kMajorVersion = 1,
kMinorVersion = 0
};
FileHeaderInfo headerInfo;
PGPUInt8 majorVersion;
PGPUInt8 minorVersion;
PGPUInt16 reserved;
PGPUInt32 readOnly : 1;
PGPUInt32 locked : 1;
PGPUInt32 unused : 30;
PGPdiskOldCrypto::CheckBytes checkBytes;
PGPUInt32 keyIDOffset;
PGPUInt32 keyIDSize;
PGPUInt32 encryptedKeyOffset;
PGPUInt32 encryptedKeySize;
PGPPublicKeyAlgorithm algorithm;
PGPUInt32 reserved2[10];
// Exported key ID here...
// Encrypted key here...
};
}
// Restore alignment.
#if PGP_WIN32
#pragma pack(pop)
#endif
_PGP_END
#endif // ] Included_PGPdiskOldFormat_h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -