fpdf_security_r.h
Go to the documentation of this file.
1 
29 #ifndef _FSPDF_SECURITY_R_H_
30 #define _FSPDF_SECURITY_R_H_
31 
102 #ifdef __cplusplus
103 extern "C" {
104 #endif
105 
106 /********************************************************************************/
107 /* Base definitions for Security Module */
108 /* */
109 /* Data structure */
110 /********************************************************************************/
111 #ifndef _FSPDF_DEF_HANDLER_SECURITY_
112 #define _FSPDF_DEF_HANDLER_SECURITY_
113 
121 typedef struct _FSPDF_SECURITYHANDLER
122 {
129 
146  FS_RESULT (*CreateContext)(FS_LPVOID clientData, FSCRT_FILE file,
147  const FSCRT_BSTR* filter, const FSCRT_BSTR* subFilter, const FSCRT_BSTR* encryptInfo, FS_LPVOID* context);
148 
158  FS_RESULT (*ReleaseContext)(FS_LPVOID clientData, FS_LPVOID context);
159 
173  FS_RESULT (*GetUserPermissions)(FS_LPVOID clientData, FS_LPVOID context, FS_DWORD userPermission, FS_DWORD* newPermission);
174 
185  FS_RESULT (*IsOwner)(FS_LPVOID clientData, FS_LPVOID context, FS_BOOL* isOwner);
186 
213  FS_RESULT (*GetCipherInfo)(FS_LPVOID clientData, FS_LPVOID context, FS_INT32* cipher, FS_LPVOID keyBuf, FS_DWORD* keyLen);
214 
228  FS_RESULT (*GetDecryptedSize)(FS_LPVOID clientData, FS_LPVOID context, FS_DWORD dataSize, FS_DWORD* decryptedSize);
229 
243  FS_RESULT (*StartDecryptor)(FS_LPVOID clientData, FS_LPVOID context, FS_INT32 objNum, FS_INT32 genNum, FS_LPVOID* decryptor);
244 
265  FS_RESULT (*DecryptData)(FS_LPVOID clientData, FS_LPVOID decryptor,
266  FS_LPCVOID encDataBuf, FS_DWORD encDataLen,
267  FS_LPVOID decDataBuf, FS_DWORD* decDataLen);
268 
287  FS_RESULT (*FinishDecryptor)(FS_LPVOID clientData, FS_LPVOID decryptor, FS_LPVOID decDataBuf, FS_DWORD* decDataLen);
288 
305  FS_RESULT (*GetEncryptedSize)(FS_LPVOID clientData, FS_LPVOID context,
306  FS_INT32 objNum, FS_INT32 genNum,
307  FS_LPCVOID srcBuf, FS_DWORD srcLen, FS_DWORD* encryptedSize);
308 
327  FS_RESULT (*EncryptData)(FS_LPVOID clientData, FS_LPVOID context, FS_INT32 objNum, FS_INT32 genNum,
328  FS_LPCVOID srcBuf, FS_DWORD srcLen, FS_LPVOID dstBuf, FS_DWORD* dstLen);
329 
331 
332 #endif /* _FSPDF_DEF_HANDLER_SECURITY_ */
333 
334 #ifndef _FSCRT_DEF_HANDLER_SECURITY_CERT_
335 #define _FSCRT_DEF_HANDLER_SECURITY_CERT_
336 
344 typedef struct _FSPDF_SECURITYHANDLER_CERT
345 {
352 
372  FS_RESULT (*GetDecryptionKey)(FS_LPVOID clientData, FS_LPCVOID envelopeBuf, FS_DWORD envelopeLen, FS_LPVOID keyBuf, FS_DWORD* keyLen);
373 
375 
376 #endif /* _FSCRT_DEF_HANDLER_SECURITY_CERT_ */
377 
378 #ifndef _FSCRT_DEF_HANDLER_SECURITY_FDRM_
379 #define _FSCRT_DEF_HANDLER_SECURITY_FDRM_
380 
388 typedef struct _FSPDF_SECURITYHANDLER_FDRM
389 {
396 
421  FS_RESULT (*GetDecryptionParams)(FS_LPVOID clientData, FSCRT_FILE file, const FSCRT_BSTR* subFilter,
422  FS_BOOL* isOwner, FS_DWORD* userPermissions, FS_INT32* cipher, FS_INT32* keyLen,
423  FSCRT_BSTR* fileID, FSCRT_BSTR* initialKey);
424 
426 
427 #endif /* _FSCRT_DEF_HANDLER_SECURITY_FDRM_ */
428 
429 /********************************************************************************/
430 /* Security handler */
431 /* */
432 /* Security access for opening PDF files. */
433 /********************************************************************************/
467 
493 
519 
545 
578 FS_RESULT FSPDF_Security_CheckPassword(FSCRT_DOCUMENT document, const FSCRT_BSTR* password, FS_INT32* passwordType);
579 
580 /********************************************************************************/
581 /* Foxit DRM */
582 /********************************************************************************/
616 FS_RESULT FSPDF_Security_VerifyFoxitDRMEncryptionParams(FSCRT_DOCUMENT document, FS_BOOL* verified);
617 
654 FS_RESULT FSPDF_Security_GetFoxitDRMEncryptionParamValue(FSCRT_DOCUMENT document, const FSCRT_BSTR* key, FSCRT_BSTR* str);
655 
656 #ifdef __cplusplus
657 };
658 #endif
659  /* group FPDFSECURITY */
661 
662 #endif /* _FSPDF_SECURITY_R_H_ */
663 
void const * FS_LPCVOID
A constant pointer to any types.
Definition: fs_base_r.h:130
FS_LPVOID clientData
User-defined data.
Definition: fpdf_security_r.h:351
unsigned int FS_DWORD
32-bit unsigned integer.
Definition: fs_base_r.h:142
FS_RESULT FSPDF_Security_GetFoxitDRMEncryptionParamValue(FSCRT_DOCUMENT document, const FSCRT_BSTR *key, FSCRT_BSTR *str)
Get string value of a key from encryption parameters used for Foxit DRM security. ...
FS_LPVOID clientData
User-defined data.
Definition: fpdf_security_r.h:395
int FS_INT32
32-bit signed integer.
Definition: fs_base_r.h:175
Structure for certificate security handler.
Definition: fpdf_security_r.h:344
FS_RESULT FSPDF_Security_SetFoxitDRMHandler(FSPDF_SECURITYHANDLER_FDRM *foxitDRMHandler)
Set Foxit DRM security handler to Foxit PDF SDK.
Structure for Foxit DRM security handler.
Definition: fpdf_security_r.h:388
int FS_BOOL
Boolean type (This should be TRUE or FALSE).
Definition: fs_base_r.h:133
FS_LPVOID clientData
User-defined data.
Definition: fpdf_security_r.h:128
FS_RESULT FSPDF_Security_SetCertificateHandler(FSPDF_SECURITYHANDLER_CERT *certificateHandler)
Set certificate security handler to Foxit PDF SDK.
FS_RESULT FSPDF_Security_RegisterHandler(const FSCRT_BSTR *filter, FSPDF_SECURITYHANDLER *securityHandler)
Register a custom security handler to Foxit PDF SDK, enabling access to a PDF document which is prote...
void * FS_LPVOID
A pointer to any types.
Definition: fs_base_r.h:127
FS_RESULT FSPDF_Security_CheckPassword(FSCRT_DOCUMENT document, const FSCRT_BSTR *password, FS_INT32 *passwordType)
Detect type of password.
FS_RESULT FSPDF_Security_UnregisterHandler(const FSCRT_BSTR *filter)
Unregister a customer security handler to Foxit PDF SDK.
Structure for byte string.
Definition: fs_base_r.h:611
FS_RESULT FSPDF_Security_VerifyFoxitDRMEncryptionParams(FSCRT_DOCUMENT document, FS_BOOL *verified)
Verify encryption parameters in a PDF document.
Structure for custom security handler.
Definition: fpdf_security_r.h:121
int FS_RESULT
Result code for functions in Foxit PDF SDK.
Definition: fs_base_r.h:160

Foxit Corporation