15 #ifndef FS_SECURITY_H_ 16 #define FS_SECURITY_H_ 32 class CustomSecurityCallback;
33 class RMSSecurityCallback;
63 typedef enum _CipherType {
77 #ifndef __EMSCRIPTEN_RENDER__ 276 typedef enum _ModifyFlag {
443 #if (_FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_ANDROID_ || defined(SWIG)) && !defined(_SWIG_JAVA_) && !defined(_SWIG_DOTNET_) && !defined(_SWIG_PYTHON_) && !defined(_OC_) && !defined(_SWIG_MACOC_) && !defined(_SWIG_NODEJS_) && !defined(_SWIG_GO_) 445 class Envelope :
public Base {
453 Envelope(
const void* buffer,
size_t size);
459 Envelope(
const char* cert_file_path);
464 Envelope(
const Envelope& other);
478 String GetDecryptionKey(
const char* p12_file_path,
const String& password);
502 #if (_FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_ANDROID_ || defined(SWIG)) && !defined(_SWIG_JAVA_) && !defined(_SWIG_DOTNET_) && !defined(_SWIG_PYTHON_) && !defined(_OC_) && !defined(_SWIG_MACOC_) && !defined(_SWIG_NODEJS_) && !defined(_SWIG_GO_) 513 #endif // (_FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_ANDROID_ || defined(SWIG)) && !defined(_SWIG_JAVA_) && !defined(_SWIG_DOTNET_) && !defined(_OC_) && !defined(_SWIG_MACOC_) && !defined(_SWIG_GO_) 1125 virtual bool IsOwner(
const PDFDoc& document,
const char* sub_filter) = 0;
1220 virtual void*
CreateContext(
const char* filter,
const char* sub_filter,
const char* encrypt_info) = 0;
1256 virtual bool IsOwner(
const void* context) = 0;
1304 virtual void*
StartDecryptor(
const void* context,
int obj_num,
int gen_num) = 0;
1344 const void* src_data,
uint32 src_data_len) = 0;
1361 virtual bool EncryptData(
const void* context,
int obj_num,
int gen_num,
1362 const void* src_data,
uint32 src_data_len,
1363 void* out_dst_buffer,
uint32* out_dst_buffer_len) = 0;
1405 #endif // FS_SECURITY_H_ void SetAES256ModifyFlags(uint32 modify_flags)
(仅适用于AES-256)设置修改标志以决定在加密过程中哪些安全数据或密码将被修改。
如果设置,在加密过程中将修改用户权限和"是否加密元数据"值(在 StdEncryptData 中定义)。
Definition: fs_security.h:278
StdEncryptData()
构造函数。
Definition: fs_security.h:160
String sub_filter
指定加密字典内容语法的子过滤器名称。不应为空字符串。
Definition: fs_security.h:829
bool InitializeW(const StdEncryptData &encrypt_data, const WString &user_password, const WString &owner_password)
(仅适用于AES-256)初始化当前标准安全处理器。
bool Initialize(const CustomEncryptData &encrypt_data, const CustomSecurityCallback *callback, const char *encrypt_info="")
初始化当前自定义安全处理器。
bool SetDRMValue(const char *key, const WString &value)
设置指定参数的DRM值。
CertificateEncryptData(const CertificateEncryptData &other)
构造函数,使用另一个证书加密数据对象。
Definition: fs_security.h:355
bool is_encrypt_metadata
决定是否加密元数据的布尔值。true 表示加密元数据,false 表示不加密元数据。
Definition: fs_security.h:825
bool operator !=(const CertificateEncryptData &other) const
不等于操作符。
Definition: fs_security.h:401
virtual PDFDoc::EncryptType GetSecurityType()
获取当前安全回调的加密类型。
Definition: fs_security.h:1080
SecurityHandler::CipherType cipher
加密算法类型。请参考从 SecurityHandler::e_CipherRC4 开始的值,应该是这些值中的一个,除了 SecurityHandler::e_CipherNone。
Definition: fs_security.h:253
String filter
自定义安全回调对象的过滤器名称。不应为空字符串。
Definition: fs_security.h:827
bool operator !=(const SecurityHandler &other)
不等于操作符。
virtual String GetEncryptKey(const void *context)=0
用于获取加密密钥的回调函数。
bool Initialize(const CertificateEncryptData &encrypt_data, const String &encrypt_key)
初始化当前证书安全处理器。
RMSSecurityHandler()
构造函数。
bool operator==(const RMSEncryptData &other) const
等于操作符。
Definition: fs_security.h:925
virtual String GetInitialKey(const PDFDoc &document, const char *sub_filter)=0
用于获取解密DRM保护文档的初始密钥的回调函数。
virtual bool ReleaseContext(void *context)=0
用于释放加密和解密上下文的回调函数。
virtual bool EncryptData(const void *context, int obj_num, int gen_num, const void *src_data, uint32 src_data_len, void *out_dst_buffer, uint32 *out_dst_buffer_len)=0
用于获取加密数据的回调函数。
SecurityHandler::CipherType cipher
加密算法类型。请参考从 SecurityHandler::e_CipherRC4 开始的值,应该是这些值中的一个,除了 SecurityHandler::e_CipherNone。
Definition: fs_security.h:650
如果设置,在加密过程中将仅修改所有者密码。
Definition: fs_security.h:282
int key_length
密钥长度,以字节为单位。
Definition: fs_security.h:261
RMSEncryptData(bool is_encrypt_metadata, const char *publish_license, const StringArray &server_eul_list, float irm_version=1.0)
构造函数,带参数。
Definition: fs_security.h:874
Definition: fs_security.h:1071
Definition: fs_security.h:1105
DRMSecurityHandler()
构造函数。
Definition: fs_security.h:669
virtual SecurityHandler::CipherType GetCipher(const void *context)=0
用于获取密码类型的回调函数。
virtual ~SecurityHandler()
析构函数。
Definition: fs_security.h:491
virtual uint32 GetEncryptedSize(const void *context, int obj_num, int gen_num, const void *src_data, uint32 src_data_len)=0
用于获取估计的加密大小的回调函数。
String publish_license
从服务器发放给内容发布者的编码发布许可证,采用ASCII编码。不应为空字符串。
Definition: fs_security.h:989
ModifyFlag
(仅适用于AES-256)修改标志的枚举,用于决定在加密过程中哪些安全数据或密码将被修改
Definition: fs_security.h:276
CertificateSecurityHandler()
构造函数。
加密类型:自定义加密。
Definition: fs_pdfdoc.h:806
宽字符串类
Definition: fx_string.h:1457
bool operator !=(const RMSEncryptData &other) const
不等于操作符。
Definition: fs_security.h:945
WString GetDRMValue(const char *key)
获取指定参数的DRM值。
virtual void * CreateContext(const char *filter, const char *sub_filter, const char *encrypt_info)=0
用于创建加密和解密上下文的回调函数。
bool is_owner
决定当前用户是否为所有者的布尔值。true 表示当前用户是所有者,false 表示当前用户不是所有者。
Definition: fs_security.h:657
virtual String GetDecryptionKey(const void *envelope_buffer, uint32 envelope_length)=0
用于获取解密证书保护的PDF文档的密钥的回调函数。
RMSEncryptData & operator=(const RMSEncryptData &other)
赋值操作符。
Definition: fs_security.h:910
Definition: fs_pdfdoc.h:771
bool IsEmpty() const
检查当前对象是否为空。
Definition: fs_security.h:527
不使用加密算法。
Definition: fs_security.h:65
virtual PDFDoc::EncryptType GetSecurityType()
获取安全回调的加密类型。
Definition: fs_security.h:1398
virtual uint32 GetUserPermissions(const void *context, uint32 user_permission)=0
用于获取用户权限的回调函数。
DRMEncryptData & operator=(const DRMEncryptData &other)
赋值操作符。
Definition: fs_security.h:579
virtual PDFDoc::EncryptType GetSecurityType()
获取安全回调的加密类型。
Definition: fs_security.h:1057
void Set(bool is_encrypt_metadata, const String &filter, const String &sub_filter)
设置值。
Definition: fs_security.h:816
virtual bool UseStandardCryptoMethod(const void *context)
用于检查是否使用标准加密方法或自定义加密方法的回调函数。
Definition: fs_security.h:1380
bool operator==(const StdEncryptData &other) const
等于操作符。
Definition: fs_security.h:200
RMSEncryptData(const RMSEncryptData &other)
构造函数,使用另一个RMS加密数据对象。
Definition: fs_security.h:896
Definition: fs_security.h:864
Definition: fs_security.h:137
bool operator==(const char *str1, const CFX_ByteString &str2)
检查两个字节字符串是否相等。
Definition: fs_basictypes.h:128
CustomEncryptData(const CustomEncryptData &other)
构造函数,使用另一个自定义加密数据对象。
Definition: fs_security.h:765
bool Initialize(const RMSEncryptData &encrypt_data, const RMSSecurityCallback *callback)
初始化当前Microsoft RMS安全处理器。
使用AES加密算法,密钥长度为16字节(AES-128)或 32字节(AES-256,仅在PDF 2.0中支持)。
Definition: fs_security.h:72
StringArray envelopes
指定证书信封数组的字符串数组。此数组应包含一个或多个信封。
Definition: fs_security.h:440
CipherType
加密算法的枚举。
Definition: fs_security.h:63
SecurityHandler & operator=(const SecurityHandler &other)
赋值操作符。
DRMEncryptData(bool is_encrypt_metadata, const String &sub_filter, SecurityHandler::CipherType cipher, int key_length, bool is_owner, uint32 user_permissions)
构造函数,带参数。
Definition: fs_security.h:539
如果设置,在加密过程中将修改用户密码和所有者密码。
Definition: fs_security.h:280
void Set(bool is_encrypt_metadata, const String &sub_filter, SecurityHandler::CipherType cipher, int key_length, bool is_owner, uint32 user_permissions)
设置值。
Definition: fs_security.h:631
bool is_encrypt_metadata
决定是否加密元数据的布尔值。true 表示加密元数据,false 表示不加密元数据。
Definition: fs_security.h:432
virtual bool IsOwner(const void *context)=0
用于检查当前用户是否是PDF文档所有者的回调函数。
virtual bool IsOwner(const PDFDoc &document, const char *sub_filter)=0
用于检查当前用户是否是PDF文档所有者的回调函数。
bool Initialize(const StdEncryptData &encrypt_data, const String &user_password, const String &owner_password)
(不支持AES-256)初始化当前标准安全处理器。
virtual void * StartDecryptor(const void *context, int obj_num, int gen_num)=0
用于开始解密的回调函数。
SecurityHandler::CipherType cipher
加密算法类型。请参考从 SecurityHandler::e_CipherRC4 开始的值,应该是这些值中的一个,除了 SecurityHandler::e_CipherNone。
Definition: fs_security.h:436
CustomEncryptData(bool is_encrypt_metadata, const String &filter, const String &sub_filter)
构造函数,带参数。
Definition: fs_security.h:748
DRMEncryptData(const DRMEncryptData &other)
构造函数,使用另一个DRM加密数据对象。
Definition: fs_security.h:563
Definition: fx_basic.h:1278
StdEncryptData(bool is_encrypt_metadata, uint32 user_permissions, SecurityHandler::CipherType cipher, int key_length)
构造函数,带参数。
Definition: fs_security.h:151
virtual uint32 GetUserPermissions(const PDFDoc &document, const char *sub_filter)=0
用于获取当前用户权限的回调函数。
void Set(bool is_encrypt_metadata, uint32 user_permissions, SecurityHandler::CipherType cipher, int key_length)
设置值。
Definition: fs_security.h:235
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:196
加密类型:数字证书加密。
Definition: fs_pdfdoc.h:802
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:214
virtual PDFDoc::EncryptType GetSecurityType()
获取安全回调的加密类型。
Definition: fs_security.h:1114
float irm_version
Microsoft IRM版本。应大于1。如果输入版本小于1,Foxit PDF SDK将默认使用1作为版本。默认值:1.0。
Definition: fs_security.h:999
StdSecurityHandler()
构造函数。
virtual void Release()=0
用于释放当前回调对象自身的回调函数。
Definition: fs_security.h:1199
Definition: fs_security.h:1389
CertificateEncryptData(bool is_encrypt_metadata, SecurityHandler::CipherType cipher, const StringArray &envelopes)
构造函数,带参数。
Definition: fs_security.h:339
DRMEncryptData()
构造函数。
Definition: fs_security.h:550
Definition: fs_security.h:739
virtual uint32 GetDecryptedSize(const void *context, uint32 src_data_size)=0
用于获取估计的解密数据大小的回调函数。
bool Initialize(const DRMEncryptData &encrypt_data, const char *file_id, const String &initial_key)
初始化当前DRM安全处理器。
加密类型:微软RMS加密。
Definition: fs_pdfdoc.h:808
bool is_encrypt_metadata
决定是否加密元数据的布尔值。true 表示加密元数据,false 表示不加密元数据。
Definition: fs_security.h:245
Definition: fs_basictypes.h:449
Definition: fs_basictypes.h:230
size_t GetSize() const
获取当前数组中元素的大小。
StdEncryptData(const StdEncryptData &other)
构造函数,使用另一个标准加密数据对象。
Definition: fs_security.h:171
Definition: fs_security.h:1043
bool operator !=(const StdEncryptData &other) const
不等于操作符。
Definition: fs_security.h:214
CertificateEncryptData()
构造函数。
Definition: fs_security.h:346
CustomEncryptData & operator=(const CustomEncryptData &other)
赋值操作符。
Definition: fs_security.h:777
virtual uint32 GetKeyLength(const PDFDoc &document, const char *sub_filter)=0
用于获取密码密钥长度的回调函数。
bool operator !=(const CustomEncryptData &other) const
不等于操作符。
Definition: fs_security.h:803
bool operator !=(const DRMEncryptData &other) const
不等于操作符。
Definition: fs_security.h:611
StringArray server_eul_list
包含字符串对的字符串数组,用于表示编码服务器EUL的字典对象的内容。
Definition: fs_security.h:995
void Set(bool is_encrypt_metadata, SecurityHandler::CipherType cipher, const StringArray &envelopes)
设置值。
Definition: fs_security.h:423
Definition: fs_security.h:837
Definition: fs_security.h:56
bool VerifyEncryptionParams()
验证加密参数。
RMSEncryptData()
构造函数。
Definition: fs_security.h:886
Foxit命名空间。
Definition: fs_taggedpdf.h:27
Definition: fs_security.h:1009
virtual PDFDoc::EncryptType GetSecurityType()
获取当前安全处理器的加密类型。
字节字符串类
Definition: fx_string.h:317
未知加密类型。
Definition: fs_pdfdoc.h:796
EncryptType
加密类型的枚举。
Definition: fs_pdfdoc.h:794
virtual PDFDoc::EncryptType GetSecurityType()
获取安全回调的加密类型。
Definition: fs_security.h:1208
virtual String DecryptData(const void *decryptor, const void *encrypted_data, uint32 encrypted_data_len)=0
用于解密加密数据的回调函数。
bool is_encrypt_metadata
决定是否加密元数据的布尔值。true 表示加密元数据,false 表示不加密元数据。
Definition: fs_security.h:983
uint32 user_permissions
用户权限。请参考从 PDFDoc::e_PermPrint 开始的值,可以是这些值中的一个或多个的组合。
Definition: fs_security.h:661
virtual String FinishDecryptor(void *decryptor)=0
用于完成解密的回调函数。
bool operator!=(const char *str1, const CFX_ByteString &str2)
检查两个字节字符串是否不相等。
Definition: fs_basictypes.h:140
int key_length
密钥长度,以字节为单位。 对于 SecurityHandler::e_CipherRC4 加密算法,此值应该在5到16之间。 对于 SecurityHandler::e_CipherAES 加密算法,此...
Definition: fs_security.h:653
uint32 user_permissions
用户权限。请参考从 PDFDoc::e_PermPrint 开始的值,应该是这些值中的一个或多个的组合。
Definition: fs_security.h:249
加密类型:福昕DRM加密。
Definition: fs_pdfdoc.h:804
virtual SecurityHandler::CipherType GetCipherType(const PDFDoc &document, const char *sub_filter)=0
用于获取加密算法的密码类型的回调函数。
StdEncryptData & operator=(const StdEncryptData &other)
赋值操作符。
Definition: fs_security.h:185
bool operator==(const DRMEncryptData &other) const
等于操作符。
Definition: fs_security.h:596
void Set(bool is_encrypt_metadata, const char *publish_license, const StringArray &server_eul_list, float irm_version=1.0)
设置值。
Definition: fs_security.h:969
CertificateEncryptData & operator=(const CertificateEncryptData &other)
赋值操作符。
Definition: fs_security.h:368
Definition: fs_security.h:269
CustomSecurityHandler()
构造函数。
bool is_encrypt_metadata
决定是否加密元数据的布尔值。true 表示加密元数据,false 表示不加密元数据。
Definition: fs_security.h:644
Definition: fs_security.h:330
virtual String GetFileID(const PDFDoc &document, const char *sub_filter)=0
用于获取文件标识字符串的回调函数。
bool operator==(const CustomEncryptData &other) const
等于操作符。
Definition: fs_security.h:791
bool operator==(const SecurityHandler &other)
等于操作符。
使用RC4加密算法,密钥长度在5字节到16字节之间。
Definition: fs_security.h:67
CustomEncryptData()
构造函数。
Definition: fs_security.h:755
bool operator==(const CertificateEncryptData &other) const
等于操作符。
Definition: fs_security.h:382
String sub_filter
指定加密字典内容语法的子过滤器名称。
Definition: fs_security.h:646