⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgpdiskoldformat.h

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 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 + -