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

📄 decrypt.h

📁 这是一个做pdf阅读器的源代码文件,是大家学习阅读器资料的很好参考
💻 H
字号:
//========================================================================//// Decrypt.h//// Copyright 1996-2003 Glyph & Cog, LLC////========================================================================#ifndef DECRYPT_H#define DECRYPT_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "gtypes.h"#include "GString.h"#include "Object.h"#include "Stream.h"//------------------------------------------------------------------------// Decrypt//------------------------------------------------------------------------class Decrypt {public:  // Generate a file key.  The <fileKey> buffer must have space for at  // least 16 bytes.  Checks <ownerPassword> and then <userPassword>  // and returns true if either is correct.  Sets <ownerPasswordOk> if  // the owner password was correct.  Either or both of the passwords  // may be NULL, which is treated as an empty string.  static GBool makeFileKey(int encVersion, int encRevision, int keyLength,			   GString *ownerKey, GString *userKey,			   int permissions, GString *fileID,			   GString *ownerPassword, GString *userPassword,			   Guchar *fileKey, GBool encryptMetadata,			   GBool *ownerPasswordOk);private:  static GBool makeFileKey2(int encVersion, int encRevision, int keyLength,			    GString *ownerKey, GString *userKey,			    int permissions, GString *fileID,			    GString *userPassword, Guchar *fileKey,			    GBool encryptMetadata);};//------------------------------------------------------------------------// DecryptStream//------------------------------------------------------------------------struct DecryptRC4State {  Guchar state[256];  Guchar x, y;  int buf;};struct DecryptAESState {  Guint w[44];  Guchar state[16];  Guchar cbc[16];  Guchar buf[16];  int bufIdx;};class DecryptStream: public FilterStream {public:  DecryptStream(Stream *strA, Guchar *fileKey,		CryptAlgorithm algoA, int keyLength,		int objNum, int objGen);  virtual ~DecryptStream();  virtual StreamKind getKind() { return strWeird; }  virtual void reset();  virtual int getChar();  virtual int lookChar();  virtual GBool isBinary(GBool last);  virtual Stream *getUndecodedStream() { return this; }private:  CryptAlgorithm algo;  int objKeyLength;  Guchar objKey[16 + 9];  union {    DecryptRC4State rc4;    DecryptAESState aes;  } state;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -