Foxit PDF SDK  9.1
<FSCustomSecurityCallback> Protocol Reference
Inheritance diagram for <FSCustomSecurityCallback>:
<FSSecurityCallback> <FSRMSSecurityCallback>

Instance Methods

(void *) - createContext:subFilter:encryptInfo:
 A callback function used to create context for encryption and decryption. More...
 
(NSData *) - decryptData:encryptedData:encryptedDataLen:
 A callback function used to decrypt the encrypted data. More...
 
(BOOL) - encryptData:objNum:genNum:srcData:srcDataLen:dstBuffer:dstBufferLen:
 A callback function used to get encrypted data. More...
 
(NSData *) - finishDecryptor:
 A callback function used to finish the decryption. More...
 
(FSSecurityHandlerCipherType- getCipher:
 A callback function used to get the cipher type. More...
 
(unsigned int) - getDecryptedSize:srcDataSize:
 A callback function used to get the estimated decrypted data size. More...
 
(unsigned int) - getEncryptedSize:objNum:genNum:srcData:srcDataLen:
 A callback function used to get the estimated encrypted size. More...
 
(NSData *) - getEncryptKey:
 A callback function used to get the encryption key. More...
 
(FSPDFDocUserPermissions- getUserPermissions:userPermission:
 A callback function used to get the user permissions. More...
 
(BOOL) - isOwner:
 A callback function used to check if current user is the owner of the PDF document. More...
 
(BOOL) - releaseContext:
 A callback function used to release the context for encryption and decryption. More...
 
(void *) - startDecryptor:objNum:genNum:
 A callback function used to start a decryption. More...
 
(BOOL) - useStandardCryptoMethod:
 A callback function to check if to use stanard crypto method or custom crypto method. More...
 
- Instance Methods inherited from <FSSecurityCallback>
(FSPDFDocEncryptType- GetSecurityType
 Get the encryption type of security callback. 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 FSLibrary::registerSecurityCallback:callback: with with any custom filter name (following the PDF name conventions). Function FSLibrary::unregisterSecurityCallback: can be called to unregister the security callback object with the registered filter name.

Method Documentation

◆ createContext:subFilter:encryptInfo:

- (void *) createContext: (NSString *)  filter
subFilter: (NSString *)  subFilter
encryptInfo: (NSString *)  encryptInfo 
required

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

Parameters
[in]filterThe encryption filter of the PDF document.
[in]subFilterThe sub filter of the PDF document.
[in]encryptInfoThe encryption information of the PDF document.
Note
User should implement this callback function.
Returns
The encryption context.

◆ decryptData:encryptedData:encryptedDataLen:

- (NSData*) decryptData: (void *)  decryptor
encryptedData: (void *)  encryptedData
encryptedDataLen: (unsigned int)  encryptedDataLen 
required

A callback function used to decrypt the encrypted data.

Parameters
[in]decryptorThe decryptor implemented and created by user, returned by callback function FSCustomSecurityCallback::startDecryptor:obj_num:gen_num:.
[in]encryptedDataThe buffer which stores the encrypted data.
[in]encryptedDataLenThe length of encrypted data, in bytes.
Note
User should implement this callback function.
Returns
The decrypted data content.

◆ encryptData:objNum:genNum:srcData:srcDataLen:dstBuffer:dstBufferLen:

- (BOOL) encryptData: (void *)  context
objNum: (int)  objNum
genNum: (int)  genNum
srcData: (void *)  srcData
srcDataLen: (unsigned int)  srcDataLen
dstBuffer: (void *)  dstBuffer
dstBufferLen: (unsigned int *)  dstBufferLen 
required

A callback function used to get encrypted data.

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
[in]objNumThe object number for a PDF object.
[in]genNumThe generation number for a PDF object.
[in]srcDataThe buffer which stores the plain text to be encrypted.
[in]srcDataLenThe length of the buffer.
[out]dstBufferOutput parameter used to receives the encrypted content.
[out]dstBufferLenOutput parameter used to received the length of the encrypted data.
Note
User should implement this callback function.
Returns
YES means success, while NO means failure.

◆ finishDecryptor:

- (NSData *) finishDecryptor: (void *)  decryptor
required

A callback function used to finish the decryption.

Parameters
[in]decryptorThe decryptor implemented and created by user, returned by callback function FSCustomSecurityCallback::startDecryptor:obj_num:gen_num:.
Note
User should implement this callback function.
Returns
The decrypted data content.

◆ getCipher:

- (FSSecurityHandlerCipherType) getCipher: (void *)  context
required

A callback function used to get the cipher type.

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
Note
User should implement this callback function.
Returns
The cipher type. Please refer to values starting from FSSecurityHandlerCipherNone and this should be one of these values.

◆ getDecryptedSize:srcDataSize:

- (unsigned int) getDecryptedSize: (void *)  context
srcDataSize: (unsigned int)  srcDataSize 
required

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

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
[in]srcDataSizeSize of source data which is to be decrypted.
Note
User should implement this callback function.
Returns
The estimated decrypted data size.

◆ getEncryptedSize:objNum:genNum:srcData:srcDataLen:

- (unsigned int) getEncryptedSize: (void *)  context
objNum: (int)  objNum
genNum: (int)  genNum
srcData: (void *)  srcData
srcDataLen: (unsigned int)  srcDataLen 
required

A callback function used to get the estimated encrypted size.

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
[in]objNumThe object number for a PDF object.
[in]genNumThe generation number for a PDF object.
[in]srcDataThe buffer which stores the plain text to be encrypted.
[in]srcDataLenThe length of the buffer.
Note
User should implement this callback function.
Returns
The estimated encrypted size.

◆ getEncryptKey:

- (NSData *) getEncryptKey: (void *)  context
required

A callback function used to get the encryption key.

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
Note
User should implement this callback function.
Returns
The encryption key.

◆ getUserPermissions:userPermission:

- (FSPDFDocUserPermissions) getUserPermissions: (void *)  context
userPermission: (FSPDFDocUserPermissions userPermission 
required

A callback function used to get the user permissions.

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
[in]userPermissionOriginal permission settings of the document. Please refer to values starting from FSPDFDocPermPrint 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 FSPDFDocPermPrint and this should be one or combination of these values.

◆ isOwner:

- (BOOL) isOwner: (void *)  context
required

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

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
Note
User should implement this callback function.
Returns
YES means current user is the owner, and NO means current user is not the owner.

◆ releaseContext:

- (BOOL) releaseContext: (void *)  context
required

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

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
Note
User should implement this callback function.
Returns
YES means success, while NO means failure.

◆ startDecryptor:objNum:genNum:

- (void *) startDecryptor: (void *)  context
objNum: (int)  objNum
genNum: (int)  genNum 
required

A callback function used to start a decryption.

Parameters
[in]contextThe context for encryption and decryption, returned by callback function FSCustomSecurityCallback::createContext:sub_filter:encrypt_info:.
[in]objNumThe object number for a PDF object.
[in]genNumThe generation number for a PDF object.
Note
User should implement this callback function.
Returns
A decryptor implemented and created by user.

◆ useStandardCryptoMethod:

- (BOOL) useStandardCryptoMethod: (void *)  context
required

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

Parameters
[in]contextThe context for encryption and decryption, returned by callback function CustomSecurityCallback::CreateContext.
Returns