![]() |
#include <SecurityHandler.h>
Public Types | |
enum | Permission { e_owner = 1, e_doc_open, e_doc_modify, e_print, e_print_high, e_extract_content, e_mod_annot, e_fill_forms, e_access_support, e_assemble_doc } |
enum | AlgorithmType { e_RC4_40 = 1, e_RC4_128, e_AES } |
The algorithm to be used in encrypting and decrypting the document. More... | |
enum | { has_CloneProc = 0x01, has_AuthProc = 0x02, has_AuthFailedProc = 0x04, has_GetAuthDataProc = 0x08, has_EditSecurDataProc = 0x10, has_FillEncDictProc = 0x20 } |
Public Member Functions | |
bool | GetPermission (Permission p) |
int | GetKeyLength () const |
int | GetEncryptionAlgorithmID () const |
const char * | GetHandlerDocName () const |
bool | IsModified () const |
void | SetModified (bool is_modified=true) |
The method allows derived classes to set SecurityHandler is modified flag. | |
SecurityHandler (AlgorithmType crypt_type) | |
Create a Standard Security Handler. | |
SecurityHandler (const char *name, int key_len, int enc_code) | |
Create a Standard Security Handler. | |
SecurityHandler () | |
SecurityHandler (const SecurityHandler &s) | |
SecurityHandler & | operator= (const SecurityHandler &) |
virtual | ~SecurityHandler () |
void | ChangeUserPassword (const char *password) |
Modify the user password. | |
const char * | GetUserPassword () |
void | ChangeMasterPassword (const char *password) |
Modify the master password. | |
const char * | GetMasterPassword () |
void | SetPermission (Permission perm, bool value) |
Set the permission setting of the StdSecurityHandler. | |
void | ChangeRevisionNumber (int rev_num) |
Change the revision number and the encryption algorithm of the standard security handler. | |
void | SetEncryptMetadata (bool encrypt_metadata) |
Indicates whether the document-level metadata stream is to be encrypted. | |
int | GetRevisionNumber () |
bool | IsUserPasswordRequired () |
bool | IsMasterPasswordRequired () |
bool | IsAES () const |
bool | IsAES (Obj stream) const |
The following function can be used to verify whether a given stream is encrypted using AES. | |
bool | IsRC4 () const |
operator bool () | |
virtual void | AuthorizeFailed () |
A callback method indicating repeated failed authorization. | |
virtual bool | Authorize (Permission p) |
The method is called when a user tries to set security for an encrypted document and when a user tries to open a file. | |
virtual bool | GetAuthorizationData (Permission req_opr) |
This method is invoked in case Authorize() failed. | |
virtual bool | EditSecurityData (SDFDoc &doc) |
Called when the security handler should activate a dialog box with the current security settings that may be modified. | |
virtual Obj | FillEncryptDict (class SDFDoc &doc) |
Called when an encrypted document is saved. | |
virtual SecurityHandler * | Clone (TRN_SecurityHandler base) const |
void | InitPassword (const char *password) |
The method can be called in GetAuthorizationData() callback to specify user supplied password. | |
void | SetDerived (UInt32 overloaded_funct) |
This method informs base security handler which methods are overridden in the derived class. | |
SecurityHandler * | GetDerived () const |
anonymous enum |
pdftron::SDF::SecurityHandler::SecurityHandler | ( | AlgorithmType | crypt_type | ) |
Create a Standard Security Handler.
crypt_type | The encryption algorithm identifier. |
pdftron::SDF::SecurityHandler::SecurityHandler | ( | const char * | name, | |
int | key_len, | |||
int | enc_code | |||
) |
Create a Standard Security Handler.
key_len | The bit length of the encryption key (40 or 128 bit). | |
enc_code | The encryption algorithm identifier. The number corresponds to the V entry in encryption dictionary. Currently allowed values are (see Table 3.18 in PDF Reference Manual v1.6 for more details):
|
pdftron::SDF::SecurityHandler::SecurityHandler | ( | ) |
pdftron::SDF::SecurityHandler::SecurityHandler | ( | const SecurityHandler & | s | ) |
virtual pdftron::SDF::SecurityHandler::~SecurityHandler | ( | ) | [virtual] |
bool pdftron::SDF::SecurityHandler::GetPermission | ( | Permission | p | ) |
p | A Permission to be granted. |
int pdftron::SDF::SecurityHandler::GetKeyLength | ( | ) | const |
int pdftron::SDF::SecurityHandler::GetEncryptionAlgorithmID | ( | ) | const |
const char* pdftron::SDF::SecurityHandler::GetHandlerDocName | ( | ) | const |
bool pdftron::SDF::SecurityHandler::IsModified | ( | ) | const |
void pdftron::SDF::SecurityHandler::SetModified | ( | bool | is_modified = true |
) |
The method allows derived classes to set SecurityHandler is modified flag.
This method should be called whenever there are changes (e.g. a password change) to the SecurityHandler
SecurityHandler& pdftron::SDF::SecurityHandler::operator= | ( | const SecurityHandler & | ) |
void pdftron::SDF::SecurityHandler::ChangeUserPassword | ( | const char * | password | ) |
Modify the user password.
password | the new user password |
const char* pdftron::SDF::SecurityHandler::GetUserPassword | ( | ) |
void pdftron::SDF::SecurityHandler::ChangeMasterPassword | ( | const char * | password | ) |
Modify the master password.
password | the new master/owner password |
const char* pdftron::SDF::SecurityHandler::GetMasterPassword | ( | ) |
void pdftron::SDF::SecurityHandler::SetPermission | ( | Permission | perm, | |
bool | value | |||
) |
Set the permission setting of the StdSecurityHandler.
perm | indicates a permission to set or clear. It can be any of the following values: |
value | true if the permission/s should be granted, false otherwise. |
void pdftron::SDF::SecurityHandler::ChangeRevisionNumber | ( | int | rev_num | ) |
Change the revision number and the encryption algorithm of the standard security handler.
rev_num | the new revision number of the standard security algorithm. Currently allowed values for the revision number are (see Table 3.18 in PDF Reference Manual v1.6 for more details): |
void pdftron::SDF::SecurityHandler::SetEncryptMetadata | ( | bool | encrypt_metadata | ) |
Indicates whether the document-level metadata stream is to be encrypted.
encrypt_metadata | true if metadata stream should be encrypted, false otherwise. |
int pdftron::SDF::SecurityHandler::GetRevisionNumber | ( | ) |
bool pdftron::SDF::SecurityHandler::IsUserPasswordRequired | ( | ) |
bool pdftron::SDF::SecurityHandler::IsMasterPasswordRequired | ( | ) |
bool pdftron::SDF::SecurityHandler::IsAES | ( | ) | const |
bool pdftron::SDF::SecurityHandler::IsAES | ( | Obj | stream | ) | const |
The following function can be used to verify whether a given stream is encrypted using AES.
stream | A pointer to an SDF::Stream object |
bool pdftron::SDF::SecurityHandler::IsRC4 | ( | ) | const |
pdftron::SDF::SecurityHandler::operator bool | ( | ) | [inline] |
virtual void pdftron::SDF::SecurityHandler::AuthorizeFailed | ( | ) | [virtual] |
A callback method indicating repeated failed authorization.
Override this callback in order to provide a UI feedback for failed authorization. Default implementation returns immediately.
virtual bool pdftron::SDF::SecurityHandler::Authorize | ( | Permission | p | ) | [virtual] |
The method is called when a user tries to set security for an encrypted document and when a user tries to open a file.
It must decide, based on the contents of the authorization data structure, whether or not the user is permitted to open the file, and what permissions the user has for this file.
p | - permission to authorize |
virtual bool pdftron::SDF::SecurityHandler::GetAuthorizationData | ( | Permission | req_opr | ) | [virtual] |
This method is invoked in case Authorize() failed.
The callback must determine the user’s authorization properties for the document by obtaining authorization data (e.g. a password through a GUI dialog).
The authorization data is subsequently used by the security handler’s Authorize() to determine whether or not the user is authorized to open the file.
req_opr | - the permission for which authorization data is requested. |
virtual bool pdftron::SDF::SecurityHandler::EditSecurityData | ( | SDFDoc & | doc | ) | [virtual] |
Called when the security handler should activate a dialog box with the current security settings that may be modified.
Called when an encrypted document is saved.
Fills the document's Encryption dictionary with whatever information the security handler wants to store in the document.
The sequence of events during creation of the encrypt_dict is as follows:
doc | - The document to save. |
virtual SecurityHandler* pdftron::SDF::SecurityHandler::Clone | ( | TRN_SecurityHandler | base | ) | const [virtual] |
void pdftron::SDF::SecurityHandler::InitPassword | ( | const char * | password | ) |
The method can be called in GetAuthorizationData() callback to specify user supplied password.
void pdftron::SDF::SecurityHandler::SetDerived | ( | UInt32 | overloaded_funct | ) |
This method informs base security handler which methods are overridden in the derived class.
The only place this method needs to be invoked is in Create(name, key_len, enc_code) static factory method in the derived class.
overloaded_funct | A flag that specifies which functions are overloaded in the derived class. For example: SetDerived(SecurityHandler::has_Clone + SecurityHandler::has_FillEncDictProc); |
SecurityHandler* pdftron::SDF::SecurityHandler::GetDerived | ( | ) | const |