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

📄 securityhandler.h

📁 swf文件查看工具,能够看flash文件的格式
💻 H
字号:
//========================================================================//// SecurityHandler.h//// Copyright 2004 Glyph & Cog, LLC////========================================================================#ifndef SECURITYHANDLER_H#define SECURITYHANDLER_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "gtypes.h"#include "Object.h"class GString;class PDFDoc;struct XpdfSecurityHandler;//------------------------------------------------------------------------// SecurityHandler//------------------------------------------------------------------------class SecurityHandler {public:  static SecurityHandler *make(PDFDoc *docA, Object *encryptDictA);  SecurityHandler(PDFDoc *docA);  virtual ~SecurityHandler();  // Check the document's encryption.  If the document is encrypted,  // this will first try <ownerPassword> and <userPassword> (in  // "batch" mode), and if those fail, it will attempt to request a  // password from the user.  This is the high-level function that  // calls the lower level functions for the specific security handler  // (requesting a password three times, etc.).  Returns true if the  // document can be opened (if it's unencrypted, or if a correct  // password is obtained); false otherwise (encrypted and no correct  // password).  GBool checkEncryption(GString *ownerPassword,			GString *userPassword);  // Create authorization data for the specified owner and user  // passwords.  If the security handler doesn't support "batch" mode,  // this function should return NULL.  virtual void *makeAuthData(GString *ownerPassword,			     GString *userPassword) = 0;  // Construct authorization data, typically by prompting the user for  // a password.  Returns an authorization data object, or NULL to  // cancel.  virtual void *getAuthData() = 0;  // Free the authorization data returned by makeAuthData or  // getAuthData.  virtual void freeAuthData(void *authData) = 0;  // Attempt to authorize the document, using the supplied  // authorization data (which may be NULL).  Returns true if  // successful (i.e., if at least the right to open the document was  // granted).  virtual GBool authorize(void *authData) = 0;  // Return the various authorization parameters.  These are only  // valid after authorize has returned true.  virtual int getPermissionFlags() = 0;  virtual GBool getOwnerPasswordOk() = 0;  virtual Guchar *getFileKey() = 0;  virtual int getFileKeyLength() = 0;  virtual int getEncVersion() = 0;  virtual CryptAlgorithm getEncAlgorithm() = 0;protected:  PDFDoc *doc;};//------------------------------------------------------------------------// StandardSecurityHandler//------------------------------------------------------------------------class StandardSecurityHandler: public SecurityHandler {public:  StandardSecurityHandler(PDFDoc *docA, Object *encryptDictA);  virtual ~StandardSecurityHandler();  virtual void *makeAuthData(GString *ownerPassword,			     GString *userPassword);  virtual void *getAuthData();  virtual void freeAuthData(void *authData);  virtual GBool authorize(void *authData);  virtual int getPermissionFlags() { return permFlags; }  virtual GBool getOwnerPasswordOk() { return ownerPasswordOk; }  virtual Guchar *getFileKey() { return fileKey; }  virtual int getFileKeyLength() { return fileKeyLength; }  virtual int getEncVersion() { return encVersion; }  virtual CryptAlgorithm getEncAlgorithm() { return encAlgorithm; }private:  int permFlags;  GBool ownerPasswordOk;  Guchar fileKey[16];  int fileKeyLength;  int encVersion;  int encRevision;  CryptAlgorithm encAlgorithm;  GBool encryptMetadata;  GString *ownerKey, *userKey;  GString *fileID;  GBool ok;};#ifdef ENABLE_PLUGINS//------------------------------------------------------------------------// ExternalSecurityHandler//------------------------------------------------------------------------class ExternalSecurityHandler: public SecurityHandler {public:  ExternalSecurityHandler(PDFDoc *docA, Object *encryptDictA,			  XpdfSecurityHandler *xshA);  virtual ~ExternalSecurityHandler();  virtual void *makeAuthData(GString *ownerPassword,			     GString *userPassword);  virtual void *getAuthData();  virtual void freeAuthData(void *authData);  virtual GBool authorize(void *authData);  virtual int getPermissionFlags() { return permFlags; }  virtual GBool getOwnerPasswordOk() { return gFalse; }  virtual Guchar *getFileKey() { return fileKey; }  virtual int getFileKeyLength() { return fileKeyLength; }  virtual int getEncVersion() { return encVersion; }  virtual CryptAlgorithm getEncAlgorithm() { return encAlgorithm; }private:  Object encryptDict;  XpdfSecurityHandler *xsh;  void *docData;  int permFlags;  Guchar fileKey[16];  int fileKeyLength;  int encVersion;  CryptAlgorithm encAlgorithm;  GBool ok;};#endif // ENABLE_PLUGINS#endif

⌨️ 快捷键说明

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