Foxit PDF SDK

Public Member Functions | List of all members
foxit.pdf.CustomSecurityCallback Class Reference
Inheritance diagram for foxit.pdf.CustomSecurityCallback:

## Public Member Functions
virtual global::System.IntPtr | CreateContext (string filter, string sub_filter, string encrypt_info)
| A callback function used to create context for encryption and decryption. More...
virtual System.IntPtr | DecryptData (global::System.IntPtr decryptor, global::System.IntPtr encrypted_data, int encrypted_data_len)
| A callback function used to decrypt the encrypted data. More...
virtual bool | EncryptData (global::System.IntPtr context, int obj_num, int gen_num, global::System.IntPtr src_data, int src_data_len, global::System.IntPtr out_dst_buffer, out int out_dst_buffer_len)
| A callback function used to get encrypted data. More...
virtual string | FinishDecryptor (global::System.IntPtr decryptor)
| A callback function used to finish the decryption. More...
virtual SecurityHandler.CipherType | GetCipher (global::System.IntPtr context)
| A callback function used to get the cipher type. More...
virtual int | GetDecryptedSize (global::System.IntPtr context, int src_data_size)
| A callback function used to get the estimated decrypted data size. More...
virtual int | GetEncryptedSize (global::System.IntPtr context, int obj_num, int gen_num, global::System.IntPtr src_data, int src_data_len)
| A callback function used to get the estimated encrypted size. More...
virtual string | GetEncryptKey (global::System.IntPtr context)
| A callback function used to get the encryption key. More...
override PDFDoc.EncryptType | GetSecurityType ()
| Get the encryption type of security callback. More...
virtual int | GetUserPermissions (global::System.IntPtr context, int user_permission)
| A callback function used to get the user permissions. More...
virtual bool | IsOwner (global::System.IntPtr context)
| A callback function used to check if current user is the owner of the PDF document. More...
virtual bool | ReleaseContext (global::System.IntPtr context)
| A callback function used to release the context for encryption and decryption. More...
virtual global::System.IntPtr | StartDecryptor (global::System.IntPtr context, int obj_num, int gen_num)
| A callback function used to start a decryption. More...
virtual bool | UseStandardCryptoMethod (global::System.IntPtr context)
| A callback function to check if to use standard crypto method or custom crypto method. More...
Public Member Functions inherited from foxit.pdf.SecurityCallback
virtual void | Release ()
| A callback function used to release current callback object itself. More...

## Detailed Description

This class represents a callback object for custom decryption and encryption. If user wants to use custom security callback, user should inherit this callback class and implement the pure virtual functions (as callback functions), and then register the custom security callback object to Foxit PDF SDK by function common.Library.RegisterSecurityCallback with with any custom filter name (following the PDF name conventions). Function common.Library.UnregisterSecurityCallback can be called to unregister the security callback object with the registered filter name.

## Member Function Documentation

## ◆ CreateContext()

global.System.IntPtr foxit.pdf.CustomSecurityCallback.CreateContext | ( | string | filter,
|  | string | sub_filter,
|  | string | encrypt_info
| ) |  |
| inline virtual

A callback function used to create context for encryption and decryption.

Parameters

  [in] | filter | The filter name of the custom security callback object.
  [in] | sub_filter | The sub filter name that specifies the syntax of the encryption dictionary contents.
  [in] | encrypt_info | The encryption information of the PDF document.

Note
  User should implement this callback function.

Returns
  The encryption context.

## ◆ DecryptData()

System.IntPtr foxit.pdf.CustomSecurityCallback.DecryptData | ( | global::System.IntPtr | decryptor,
|  | global::System.IntPtr | encrypted_data,
|  | int | encrypted_data_len
| ) |  |
| inline virtual

A callback function used to decrypt the encrypted data.

Parameters

  [in] | decryptor | The decryptor implemented and created by user, returned by callback function CustomSecurityCallback.StartDecryptor .
  [in] | encrypted_data | The buffer which stores the encrypted data.
  [in] | encrypted_data_len | The length of encrypted data, in bytes.

Note
  User should implement this callback function.

Returns
  The decrypted data content.

## ◆ EncryptData()

bool foxit.pdf.CustomSecurityCallback.EncryptData | ( | global::System.IntPtr | context,
|  | int | obj_num,
|  | int | gen_num,
|  | global::System.IntPtr | src_data,
|  | int | src_data_len,
|  | global::System.IntPtr | out_dst_buffer,
|  | out int | out_dst_buffer_len
| ) |  |
| inline virtual

A callback function used to get encrypted data.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .
  [in] | obj_num | The object number for a PDF object.
  [in] | gen_num | The generation number for a PDF object.
  [in] | src_data | The buffer which stores the plain text to be encrypted.
  [in] | src_data_len | The length of the buffer.
  [out] | out_dst_buffer | Output parameter that receives the encrypted content.
  [out] | out_dst_buffer_len | Output parameter that receives the length of the encrypted data.

Note
  User should implement this callback function.

Returns
  true means success, while false means failure.

## ◆ FinishDecryptor()

string foxit.pdf.CustomSecurityCallback.FinishDecryptor | ( | global::System.IntPtr | decryptor | ) |
| inline virtual

A callback function used to finish the decryption.

Parameters

  [in] | decryptor | The decryptor implemented and created by user, returned by callback function CustomSecurityCallback.StartDecryptor .

Note
  User should implement this callback function.

Returns
  The decrypted data content.

## ◆ GetCipher()

SecurityHandler.CipherType foxit.pdf.CustomSecurityCallback.GetCipher | ( | global::System.IntPtr | context | ) |
| inline virtual

A callback function used to get the cipher type.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .

Note
  User should implement this callback function.

Returns
  The cipher type. Please refer to values starting from foxit.pdf.SecurityHandler.CipherType.e_CipherNone and this should be one of these values.

## ◆ GetDecryptedSize()

int foxit.pdf.CustomSecurityCallback.GetDecryptedSize | ( | global::System.IntPtr | context,
|  | int | src_data_size
| ) |  |
| inline virtual

A callback function used to get the estimated decrypted data size.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .
  [in] | src_data_size | Size of source data which is to be decrypted.

Note
  User should implement this callback function.

Returns
  The estimated decrypted data size.

## ◆ GetEncryptedSize()

int foxit.pdf.CustomSecurityCallback.GetEncryptedSize | ( | global::System.IntPtr | context,
|  | int | obj_num,
|  | int | gen_num,
|  | global::System.IntPtr | src_data,
|  | int | src_data_len
| ) |  |
| inline virtual

A callback function used to get the estimated encrypted size.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .
  [in] | obj_num | The object number for a PDF object.
  [in] | gen_num | The generation number for a PDF object.
  [in] | src_data | The buffer which stores the plain text to be encrypted.
  [in] | src_data_len | The length of the buffer.

Note
  User should implement this callback function.

Returns
  The estimated encrypted size.

## ◆ GetEncryptKey()

string foxit.pdf.CustomSecurityCallback.GetEncryptKey | ( | global::System.IntPtr | context | ) |
| inline virtual

A callback function used to get the encryption key.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .

Note
  User should implement this callback function.

Returns
  The encryption key.

## ◆ GetSecurityType()

override PDFDoc.EncryptType foxit.pdf.CustomSecurityCallback.GetSecurityType | ( |  | ) |
| inline virtual

Get the encryption type of security callback.

Note
  User should not override this function, otherwise there will be unexpected behavior.

Returns
  The encryption type. It would always be foxit.pdf.PDFDoc.EncryptType.e_EncryptCustom .

Reimplemented from foxit.pdf.SecurityCallback.

Reimplemented in foxit.pdf.RMSSecurityCallback.

## ◆ GetUserPermissions()

int foxit.pdf.CustomSecurityCallback.GetUserPermissions | ( | global::System.IntPtr | context,
|  | int | user_permission
| ) |  |
| inline virtual

A callback function used to get the user permissions.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .
  [in] | user_permission | Original permission settings of the document. Please refer to values starting from foxit.pdf.PDFDoc.UserPermissions.e_PermPrint and this would be one or combination of these values.

Note
  User should implement this callback function.

Returns
  The new user permissions. Please refer to values starting from foxit.pdf.PDFDoc.UserPermissions.e_PermPrint and this should be one or combination of these values.

## ◆ IsOwner()

bool foxit.pdf.CustomSecurityCallback.IsOwner | ( | global::System.IntPtr | context | ) |
| inline virtual

A callback function used to check if current user is the owner of the PDF document.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .

Note
  User should implement this callback function.

Returns
  true means current user is the owner, and false means current user is not the owner.

## ◆ ReleaseContext()

bool foxit.pdf.CustomSecurityCallback.ReleaseContext | ( | global::System.IntPtr | context | ) |
| inline virtual

A callback function used to release the context for encryption and decryption.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .

Note
  User should implement this callback function.

Returns
  true means success, while false means failure.

## ◆ StartDecryptor()

global.System.IntPtr foxit.pdf.CustomSecurityCallback.StartDecryptor | ( | global::System.IntPtr | context,
|  | int | obj_num,
|  | int | gen_num
| ) |  |
| inline virtual

A callback function used to start a decryption.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .
  [in] | obj_num | The object number for a PDF object.
  [in] | gen_num | The generation number for a PDF object.

Note
  User should implement this callback function.

Returns
  A decryptor implemented and created by user.

## ◆ UseStandardCryptoMethod()

bool foxit.pdf.CustomSecurityCallback.UseStandardCryptoMethod | ( | global::System.IntPtr | context | ) |
| inline virtual

A callback function to check if to use standard crypto method or custom crypto method.

Parameters

  [in] | context | The context for encryption and decryption, returned by callback function CustomSecurityCallback.CreateContext .

Returns

      <ul>
      <li>
      <b>true</b> means to use standard crypto method. In this case, callback functions @link CustomSecurityCallback::GetDecryptedSize
      CustomSecurityCallback.GetDecryptedSize @endlink, @link CustomSecurityCallback::StartDecryptor CustomSecurityCallback.StartDecryptor @endlink,
      @link CustomSecurityCallback::DecryptData CustomSecurityCallback.DecryptData @endlink, @link CustomSecurityCallback::FinishDecryptor
      CustomSecurityCallback.FinishDecryptor @endlink, @link CustomSecurityCallback::GetEncryptedSize CustomSecurityCallback.GetEncryptedSize @endlink,
      and @link CustomSecurityCallback::EncryptData CustomSecurityCallback.EncryptData @endlink will be uselss and user can just use empty
      implementation for them.
      </li>
      <li>
      <b>false</b> means use custom crypto method. In this case, please ensure callback functions mentioned above have all been implemented.
      </li>
      </ul>