15 #ifndef FS_SECURITY_H_ 16 #define FS_SECURITY_H_ 32 class CustomSecurityCallback;
33 class RMSSecurityCallback;
63 typedef enum _CipherType {
77 #ifndef __EMSCRIPTEN_RENDER__ 296 typedef enum _ModifyFlag {
487 #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_) 489 class Envelope :
public Base {
497 Envelope(
const void* buffer,
size_t size);
503 Envelope(
const char* certFilePath);
508 Envelope(
const Envelope& other);
522 String GetDecryptionKey(
const char* p12FilePath,
const String& password);
547 #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_) 561 #endif // (_FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_ANDROID_ || defined(SWIG)) && !defined(_SWIG_JAVA_) && !defined(_SWIG_DOTNET_) && !defined(_OC_) && !defined(_SWIG_MACOC_) 1293 virtual bool IsOwner(
const PDFDoc& document,
const char* sub_filter) = 0;
1388 virtual void*
CreateContext(
const char* filter,
const char* sub_filter,
const char* encrypt_info) = 0;
1424 virtual bool IsOwner(
const void* context) = 0;
1472 virtual void*
StartDecryptor(
const void* context,
int obj_num,
int gen_num) = 0;
1512 const void* src_data,
uint32 src_data_len) = 0;
1529 virtual bool EncryptData(
const void* context,
int obj_num,
int gen_num,
1530 const void* src_data,
uint32 src_data_len,
1531 void* out_dst_buffer,
uint32* out_dst_buffer_len) = 0;
1578 #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:298
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:917
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:393
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:913
bool operator !=(const CertificateEncryptData &other) const
Not equal operator.
Definition: fs_security.h:439
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of current security callback.
Definition: fs_security.h:1248
SecurityHandler::CipherType cipher
Cipher type. Please refer to values starting from SecurityHandler::e_CipherRC4 and this should be one...
Definition: fs_security.h:270
String filter
The filter name of a custom security callback object. It should not be an empty string.
Definition: fs_security.h:915
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.
bool operator==(const RMSEncryptData &other) const
Equal operator.
Definition: fs_security.h:1042
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:723
Header file for PDF document related definitions and classes.
If set, only owner password will be modified during encryption process.
Definition: fs_security.h:302
int key_length
The key length, in bytes.
Definition: fs_security.h:280
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:991
Definition: fs_security.h:1239
Definition: fs_security.h:1273
DRMSecurityHandler()
Constructor function.
Definition: fs_security.h:748
virtual SecurityHandler::CipherType GetCipher(const void *context)=0
A callback function used to get the cipher type.
virtual ~SecurityHandler()
Destructor.
Definition: fs_security.h:536
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:1132
ModifyFlag
(Only for AES-256) Enumeration for modify flag used to decide which security data or password will be...
Definition: fs_security.h:296
CertificateSecurityHandler()
Constructor.
Encryption type: customized encryption.
Definition: fs_pdfdoc.h:683
WIDE STRING CLASS.
Definition: fx_string.h:1461
bool operator !=(const RMSEncryptData &other) const
Not equal operator.
Definition: fs_security.h:1062
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:735
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:1027
Definition: fs_pdfdoc.h:648
bool IsEmpty() const
Check whether current object is empty or not.
Definition: fs_security.h:580
Not use encryption algorithm.
Definition: fs_security.h:65
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of security callback.
Definition: fs_security.h:1571
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:641
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of security callback.
Definition: fs_security.h:1225
void Set(bool is_encrypt_metadata, const String &filter, const String &sub_filter)
Set value.
Definition: fs_security.h:903
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:1548
bool operator==(const StdEncryptData &other) const
Equal operator.
Definition: fs_security.h:207
RMSEncryptData(const RMSEncryptData &other)
Constructor, with another RMS encrypt data object.
Definition: fs_security.h:1013
Definition: fs_security.h:961
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:851
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:484
CipherType
Enumeration for Encryption Algorithm.
Definition: fs_security.h:63
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:601
If set, user password and owner password will be modified during encryption process.
Definition: fs_security.h:300
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:702
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:474
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:479
CustomEncryptData(bool is_encrypt_metadata, const String &filter, const String &sub_filter)
Constructor, with parameters.
Definition: fs_security.h:834
DRMEncryptData(const DRMEncryptData &other)
Constructor, with another DRM encrypt data object.
Definition: fs_security.h:625
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:249
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:196
Encryption type: digital certificate encryption.
Definition: fs_pdfdoc.h:679
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:1282
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:1151
StdSecurityHandler()
Constructor.
virtual void Release()=0
A callback function used to release current callback object itself.
Definition: fs_security.h:1367
Definition: fs_security.h:1562
CertificateEncryptData(bool is_encrypt_metadata, SecurityHandler::CipherType cipher, const StringArray &envelopes)
Constructor, with parameters.
Definition: fs_security.h:377
DRMEncryptData()
Constructor.
Definition: fs_security.h:612
Definition: fs_security.h:824
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:685
bool is_encrypt_metadata
A boolean value to decide whether to encrypt metadata or not. true means to encrypt metadata,...
Definition: fs_security.h:260
Definition: fs_basictypes.h:443
Definition: fs_basictypes.h:230
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:178
Definition: fs_security.h:1211
bool operator !=(const StdEncryptData &other) const
Not equal operator.
Definition: fs_security.h:221
CertificateEncryptData()
Constructor.
Definition: fs_security.h:384
CustomEncryptData & operator=(const CustomEncryptData &other)
Assign operator.
Definition: fs_security.h:863
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:889
bool operator !=(const DRMEncryptData &other) const
Not equal operator.
Definition: fs_security.h:673
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:1146
void Set(bool is_encrypt_metadata, SecurityHandler::CipherType cipher, const StringArray &envelopes)
Set value.
Definition: fs_security.h:464
Definition: fs_security.h:925
Definition: fs_security.h:56
bool VerifyEncryptionParams()
Verify encryption parameters.
RMSEncryptData()
Constructor.
Definition: fs_security.h:1003
Foxit namespace.
Definition: fs_taggedpdf.h:27
Definition: fs_security.h:1164
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:673
EncryptType
Enumeration for encryption type.
Definition: fs_pdfdoc.h:671
virtual PDFDoc::EncryptType GetSecurityType()
Get the encryption type of security callback.
Definition: fs_security.h:1376
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:1121
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:740
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
int key_length
The key length, in bytes. For SecurityHandler::e_CipherRC4 cipher, this value should be between 5 an...
Definition: fs_security.h:730
uint32 user_permissions
The user permissions. Please refer to values starting from PDFDoc::e_PermPrint and this should be one...
Definition: fs_security.h:265
Encryption type: Foxit DRM encryption.
Definition: fs_pdfdoc.h:681
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:192
bool operator==(const DRMEncryptData &other) const
Equal operator.
Definition: fs_security.h:658
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:1106
CertificateEncryptData & operator=(const CertificateEncryptData &other)
Assign operator.
Definition: fs_security.h:406
Definition: fs_security.h:288
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:716
Definition: fs_security.h:365
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:877
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:841
bool operator==(const CertificateEncryptData &other) const
Equal operator.
Definition: fs_security.h:420
String sub_filter
The sub filter name that specifies the syntax of the encryption dictionary contents.
Definition: fs_security.h:718