diff options
author | Bo Xu <bo_xu@foxitsoftware.com> | 2014-09-19 19:16:31 -0700 |
---|---|---|
committer | Bo Xu <bo_xu@foxitsoftware.com> | 2014-09-19 19:16:31 -0700 |
commit | c5cab025cef52c171d913f1840a24ce93f483298 (patch) | |
tree | a97bb03bad1809d21801074cff6dccb8d7e3859a /fpdfsdk | |
parent | 2d282243dbd1edd51d42e13f563903a1a76ce8f8 (diff) | |
download | pdfium-c5cab025cef52c171d913f1840a24ce93f483298.tar.xz |
Add FPDF_GetSecurityHandlerRevision
Security handler revision number is needed to interpret file permission.
BUG=None
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/589813002
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/include/fpdfview.h | 10 | ||||
-rw-r--r-- | fpdfsdk/src/fpdfview.cpp | 11 |
2 files changed, 21 insertions, 0 deletions
diff --git a/fpdfsdk/include/fpdfview.h b/fpdfsdk/include/fpdfview.h index 1b7ae2e251..4dcdcf620a 100644 --- a/fpdfsdk/include/fpdfview.h +++ b/fpdfsdk/include/fpdfview.h @@ -260,6 +260,16 @@ DLLEXPORT unsigned long STDCALL FPDF_GetLastError(); // DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document); +// Function: FPDF_GetSecurityHandlerRevision +// Get the revision for security handler. +// Parameters: +// document - Handle to document. Returned by FPDF_LoadDocument function. +// Return value: +// The security handler revision number. Please refer to PDF Reference for +// detailed description. If the document is not protected, -1 will be returned. +// +DLLEXPORT int STDCALL FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document); + // Function: FPDF_GetPageCount // Get total number of pages in a document. // Parameters: diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp index 70494e02a2..49dabe300b 100644 --- a/fpdfsdk/src/fpdfview.cpp +++ b/fpdfsdk/src/fpdfview.cpp @@ -340,6 +340,17 @@ DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document) return pDict->GetInteger("P"); } +DLLEXPORT int STDCALL FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document) +{ + if (document == NULL) return -1; + CPDF_Document*pDoc = (CPDF_Document*)document; + CPDF_Parser* pParser = (CPDF_Parser*)pDoc->GetParser(); + CPDF_Dictionary* pDict = pParser->GetEncryptDict(); + if (pDict == NULL) return -1; + + return pDict->GetInteger("R"); +} + DLLEXPORT int STDCALL FPDF_GetPageCount(FPDF_DOCUMENT document) { if (document == NULL) return 0; |