15 #ifndef FS_SECURITY_H_ 16 #define FS_SECURITY_H_ 32 class CustomSecurityCallback;
33 class RMSSecurityCallback;
63 typedef enum _CipherType {
77 #ifndef __EMSCRIPTEN_RENDER__ 299 typedef enum _ModifyFlag {
493 #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_) 495 class Envelope :
public Base {
503 Envelope(
const void* buffer,
size_t size);
509 Envelope(
const char* certFilePath);
514 Envelope(
const Envelope& other);
528 String GetDecryptionKey(
const char* p12FilePath,
const String& password);
553 #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_) 567 #endif // (_FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_ANDROID_ || defined(SWIG)) && !defined(_SWIG_JAVA_) && !defined(_SWIG_DOTNET_) && !defined(_OC_) && !defined(_SWIG_MACOC_) 1308 virtual bool IsOwner(
const PDFDoc& document,
const char* sub_filter) = 0;
1403 virtual void*
CreateContext(
const char* filter,
const char* sub_filter,
const char* encrypt_info) = 0;
1439 virtual bool IsOwner(
const void* context) = 0;
1487 virtual void*
StartDecryptor(
const void* context,
int obj_num,
int gen_num) = 0;
1527 const void* src_data,
uint32 src_data_len) = 0;
1544 virtual bool EncryptData(
const void* context,
int obj_num,
int gen_num,
1545 const void* src_data,
uint32 src_data_len,
1546 void* out_dst_buffer,
uint32* out_dst_buffer_len) = 0;
1593 #endif // FS_SECURITY_H_ void SetAES256ModifyFlags(uint32 modify_flags)
(Only for AES-256) Set modify flags to decide which security data or password will be modified during...
If set, user permissions and "is encrypt metadata" values (which are defined in StdEncryptData) will ...
Definition: fs_security.h:301
StdEncryptData()
Constructor.
Definition: fs_security.h:167
String sub_filter
The sub filter name that specifies the syntax of the encryption dictionary contents....
Definition: fs_security.h:929
bool InitializeW(const StdEncryptData &encrypt_data, const WString &user_password, const WString &owner_password)
(Only for AES-256) Initialize current standard security handler.
bool Initialize(const CustomEncryptData &encrypt_data, const CustomSecurityCallback *callback, const char *encrypt_info="")
Initialize current custom security handler.
bool SetDRMValue(const char *key, const WString &value)
Set the DRM value for a specified parameter.
CertificateEncryptData(const CertificateEncryptData &other)
Constructor, with another certificate encrypt data object.
Definition: fs_security.h:399
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:925
bool operator !=(const CertificateEncryptData &other) const
Not equal operator.
Definition: fs_security.h:445
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of current security callback.
Definition: fs_security.h:1263
SecurityHandler::CipherType cipher
Cipher type. Please refer to values starting from SecurityHandler::e_CipherRC4 and this should be one...
Definition: fs_security.h:273
String filter
The filter name of a custom security callback object. It should not be an empty string.
Definition: fs_security.h:927
bool operator !=(const SecurityHandler &other)
Not equal operator.
virtual String GetEncryptKey(const void *context)=0
A callback function used to get the encryption key.
bool Initialize(const CertificateEncryptData &encrypt_data, const String &encrypt_key)
Initialize current certificate security handler.
RMSSecurityHandler()
Constructor.
SecurityHandler()
Constructor.
~StdEncryptData()
Destructor.
Definition: fs_security.h:174
bool operator==(const RMSEncryptData &other) const
Equal operator.
Definition: fs_security.h:1057
virtual String GetInitialKey(const PDFDoc &document, const char *sub_filter)=0
A callback function used to get the initial key to decrypt the DRM protected document.
virtual bool ReleaseContext(void *context)=0
A callback function used to release the context for encryption and decryption.
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
A callback function used to get encrypted data.
SecurityHandler::CipherType cipher
Cipher type. Please refer to values starting from SecurityHandler::e_CipherRC4 and this should be one...
Definition: fs_security.h:732
Header file for PDF document related definitions and classes.
If set, only owner password will be modified during encryption process.
Definition: fs_security.h:305
int key_length
The key length, in bytes.
Definition: fs_security.h:283
RMSEncryptData(bool is_encrypt_metadata, const char *publish_license, const StringArray &server_eul_list, float irm_version=1.0)
Constructor, with parameters.
Definition: fs_security.h:1003
Definition: fs_security.h:1254
Definition: fs_security.h:1288
DRMSecurityHandler()
Constructor function.
Definition: fs_security.h:757
virtual SecurityHandler::CipherType GetCipher(const void *context)=0
A callback function used to get the cipher type.
virtual ~SecurityHandler()
Destructor.
Definition: fs_security.h:542
virtual uint32 GetEncryptedSize(const void *context, int obj_num, int gen_num, const void *src_data, uint32 src_data_len)=0
A callback function used to get the estimated encrypted size.
String publish_license
The Encoded Publishing License issued from server to the Content publisher, in ASCII encoding....
Definition: fs_security.h:1147
ModifyFlag
(Only for AES-256) Enumeration for modify flag used to decide which security data or password will be...
Definition: fs_security.h:299
CertificateSecurityHandler()
Constructor.
Encryption type: customized encryption.
Definition: fs_pdfdoc.h:543
WIDE STRING CLASS.
Definition: fx_string.h:1452
bool operator !=(const RMSEncryptData &other) const
Not equal operator.
Definition: fs_security.h:1077
WString GetDRMValue(const char *key)
Get the DRM value for a specified parameter.
virtual void * CreateContext(const char *filter, const char *sub_filter, const char *encrypt_info)=0
A callback function used to create context for encryption and decryption.
bool is_owner
A boolean value to decide whether current user is owner or not. true means current user is owner,...
Definition: fs_security.h:744
virtual String GetDecryptionKey(const void *envelope_buffer, uint32 envelope_length)=0
A callback function used to get the key for decrypting certificate protected PDF document.
RMSEncryptData & operator=(const RMSEncryptData &other)
Assign operator.
Definition: fs_security.h:1042
Definition: fs_pdfdoc.h:508
bool IsEmpty() const
Check whether current object is empty or not.
Definition: fs_security.h:586
~DRMEncryptData()
Destructor.
Definition: fs_security.h:627
Not use encryption algorithm.
Definition: fs_security.h:65
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of security callback.
Definition: fs_security.h:1586
virtual uint32 GetUserPermissions(const void *context, uint32 user_permission)=0
A callback function used to get the user permissions.
DRMEncryptData & operator=(const DRMEncryptData &other)
Assign operator.
Definition: fs_security.h:650
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of security callback.
Definition: fs_security.h:1240
void Set(bool is_encrypt_metadata, const String &filter, const String &sub_filter)
Set value.
Definition: fs_security.h:915
virtual bool UseStandardCryptoMethod(const void *context)
A callback function to check if to use standard crypto method or custom crypto method.
Definition: fs_security.h:1563
bool operator==(const StdEncryptData &other) const
Equal operator.
Definition: fs_security.h:210
RMSEncryptData(const RMSEncryptData &other)
Constructor, with another RMS encrypt data object.
Definition: fs_security.h:1028
Definition: fs_security.h:973
Definition: fs_security.h:137
bool operator==(const char *str1, const CFX_ByteString &str2)
Check if two byte strings are equal.
Definition: fs_basictypes.h:128
CustomEncryptData(const CustomEncryptData &other)
Constructor, with another custom encrypt data object.
Definition: fs_security.h:863
bool Initialize(const RMSEncryptData &encrypt_data, const RMSSecurityCallback *callback)
Initialize current Microsoft RMS security handler.
Use AES encryption algorithm, with the key length be 16 bytes (as AES-128) or 32 bytes (as AES-256,...
Definition: fs_security.h:72
StringArray envelopes
A string array which specifies an array of certificate envelopes. This array should contains one or m...
Definition: fs_security.h:490
CipherType
Enumeration for Encryption Algorithm.
Definition: fs_security.h:63
~CertificateEncryptData()
Destructor.
Definition: fs_security.h:392
SecurityHandler & operator=(const SecurityHandler &other)
Assign operator.
DRMEncryptData(bool is_encrypt_metadata, const String &sub_filter, SecurityHandler::CipherType cipher, int key_length, bool is_owner, uint32 user_permissions)
Constructor, with parameters.
Definition: fs_security.h:607
If set, user password and owner password will be modified during encryption process.
Definition: fs_security.h:303
void Set(bool is_encrypt_metadata, const String &sub_filter, SecurityHandler::CipherType cipher, int key_length, bool is_owner, uint32 user_permissions)
Set value.
Definition: fs_security.h:711
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:480
virtual bool IsOwner(const void *context)=0
A callback function used to check if current user is the owner of the PDF document.
virtual bool IsOwner(const PDFDoc &document, const char *sub_filter)=0
A callback function used to check if current user is the owner of the PDF document.
bool Initialize(const StdEncryptData &encrypt_data, const String &user_password, const String &owner_password)
(Not support AES-256) Initialize current standard security handler.
virtual void * StartDecryptor(const void *context, int obj_num, int gen_num)=0
A callback function used to start a decryption.
SecurityHandler::CipherType cipher
Cipher type. Please refer to values starting from SecurityHandler::e_CipherRC4 and this should be one...
Definition: fs_security.h:485
~CustomEncryptData()
Destructor.
Definition: fs_security.h:856
CustomEncryptData(bool is_encrypt_metadata, const String &filter, const String &sub_filter)
Constructor, with parameters.
Definition: fs_security.h:843
DRMEncryptData(const DRMEncryptData &other)
Constructor, with another DRM encrypt data object.
Definition: fs_security.h:634
Definition: fx_basic.h:1297
StdEncryptData(bool is_encrypt_metadata, uint32 user_permissions, SecurityHandler::CipherType cipher, int key_length)
Constructor, with parameters.
Definition: fs_security.h:158
virtual uint32 GetUserPermissions(const PDFDoc &document, const char *sub_filter)=0
A callback function used to get the current user permissions.
void Set(bool is_encrypt_metadata, uint32 user_permissions, SecurityHandler::CipherType cipher, int key_length)
Set value.
Definition: fs_security.h:252
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:196
Encryption type: digital certificate encryption.
Definition: fs_pdfdoc.h:539
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:214
Header file for common definitions and classes.
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of security callback.
Definition: fs_security.h:1297
float irm_version
Microsoft IRM version. It should be above 1. If input version is below 1, Foxit PDF SDK will use 1 as...
Definition: fs_security.h:1166
StdSecurityHandler()
Constructor.
virtual void Release()=0
A callback function used to release current callback object itself.
Definition: fs_security.h:1382
Definition: fs_security.h:1577
CertificateEncryptData(bool is_encrypt_metadata, SecurityHandler::CipherType cipher, const StringArray &envelopes)
Constructor, with parameters.
Definition: fs_security.h:380
DRMEncryptData()
Constructor.
Definition: fs_security.h:618
Definition: fs_security.h:833
virtual uint32 GetDecryptedSize(const void *context, uint32 src_data_size)=0
A callback function used to get the estimated decrypted data size.
bool Initialize(const DRMEncryptData &encrypt_data, const char *file_id, const String &initial_key)
Initialize current DRM security handler.
Encryption type: Microsoft RMS encryption.
Definition: fs_pdfdoc.h:545
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:263
Definition: fs_basictypes.h:407
Definition: fs_basictypes.h:226
size_t GetSize() const
Get the size of elements in current array.
StdEncryptData(const StdEncryptData &other)
Constructor, with another standard encrypt data object.
Definition: fs_security.h:181
Definition: fs_security.h:1226
bool operator !=(const StdEncryptData &other) const
Not equal operator.
Definition: fs_security.h:224
CertificateEncryptData()
Constructor.
Definition: fs_security.h:387
CustomEncryptData & operator=(const CustomEncryptData &other)
Assign operator.
Definition: fs_security.h:875
virtual uint32 GetKeyLength(const PDFDoc &document, const char *sub_filter)=0
A callback function used to get the length of cipher key.
bool operator !=(const CustomEncryptData &other) const
Not equal operator.
Definition: fs_security.h:901
bool operator !=(const DRMEncryptData &other) const
Not equal operator.
Definition: fs_security.h:682
StringArray server_eul_list
A string array that contains pairs of strings to represent content of a dictionary object which is en...
Definition: fs_security.h:1161
void Set(bool is_encrypt_metadata, SecurityHandler::CipherType cipher, const StringArray &envelopes)
Set value.
Definition: fs_security.h:470
Definition: fs_security.h:937
Definition: fs_security.h:56
bool VerifyEncryptionParams()
Verify encryption parameters.
RMSEncryptData()
Constructor.
Definition: fs_security.h:1015
Foxit namespace.
Definition: fs_taggedpdf.h:27
Definition: fs_security.h:1179
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of current security handler.
BYTE STRING CLASS.
Definition: fx_string.h:317
Unknown encryption type.
Definition: fs_pdfdoc.h:533
EncryptType
Enumeration for encryption type.
Definition: fs_pdfdoc.h:531
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of security callback.
Definition: fs_security.h:1391
virtual String DecryptData(const void *decryptor, const void *encrypted_data, uint32 encrypted_data_len)=0
A callback function used to decrypt the encrypted data.
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:1136
uint32 user_permissions
The user permissions. Please refer to values starting from PDFDoc::e_PermPrint and this can be one or...
Definition: fs_security.h:749
virtual String FinishDecryptor(void *decryptor)=0
A callback function used to finish the decryption.
bool operator!=(const char *str1, const CFX_ByteString &str2)
Check if two byte strings are not equal.
Definition: fs_basictypes.h:140
~RMSEncryptData()
Destructor.
Definition: fs_security.h:1021
int key_length
The key length, in bytes. For SecurityHandler::e_CipherRC4 cipher, this value should be between 5 an...
Definition: fs_security.h:739
uint32 user_permissions
The user permissions. Please refer to values starting from PDFDoc::e_PermPrint and this should be one...
Definition: fs_security.h:268
Encryption type: Foxit DRM encryption.
Definition: fs_pdfdoc.h:541
virtual SecurityHandler::CipherType GetCipherType(const PDFDoc &document, const char *sub_filter)=0
A callback function used to get the cipher type for encryption algorithm.
StdEncryptData & operator=(const StdEncryptData &other)
Assign operator.
Definition: fs_security.h:195
bool operator==(const DRMEncryptData &other) const
Equal operator.
Definition: fs_security.h:667
void Set(bool is_encrypt_metadata, const char *publish_license, const StringArray &server_eul_list, float irm_version=1.0)
Set value.
Definition: fs_security.h:1121
CertificateEncryptData & operator=(const CertificateEncryptData &other)
Assign operator.
Definition: fs_security.h:412
Definition: fs_security.h:291
CustomSecurityHandler()
Constructor.
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:725
Definition: fs_security.h:368
virtual String GetFileID(const PDFDoc &document, const char *sub_filter)=0
A callback function used to get the file identity string.
bool operator==(const CustomEncryptData &other) const
Equal operator.
Definition: fs_security.h:889
bool operator==(const SecurityHandler &other)
Equal operator.
Use RC4 encryption algorithm, with the key length between 5 bytes and 16 bytes.
Definition: fs_security.h:67
CustomEncryptData()
Constructor.
Definition: fs_security.h:850
bool operator==(const CertificateEncryptData &other) const
Equal operator.
Definition: fs_security.h:426
String sub_filter
The sub filter name that specifies the syntax of the encryption dictionary contents.
Definition: fs_security.h:727