Go to the documentation of this file.
15 #ifndef FS_SIGNATURE_H_
16 #define FS_SIGNATURE_H_
115 typedef enum _States {
117 e_StateUnknown = 0x80000000,
119 e_StateNoSignData = 0x00000200,
121 e_StateUnsigned = 0x00000001,
123 e_StateSigned = 0x00000002,
125 e_StateVerifyValid = 0x00000004,
127 e_StateVerifyInvalid = 0x00000008,
129 e_StateVerifyErrorData = 0x00000010,
131 e_StateVerifyNoSupportWay = 0x00000020,
133 e_StateVerifyErrorByteRange = 0x00000040,
135 e_StateVerifyChange = 0x00000080,
137 e_StateVerifyIncredible = 0x00000100,
139 e_StateVerifyNoChange = 0x00000400,
141 e_StateVerifyIssueValid = 0x00001000,
143 e_StateVerifyIssueUnknown = 0x00002000,
145 e_StateVerifyIssueRevoke = 0x00004000,
147 e_StateVerifyIssueExpire = 0x00008000,
149 e_StateVerifyIssueUncheck = 0x00010000,
151 e_StateVerifyIssueCurrent = 0x00020000,
153 e_StateVerifyTimestampNone = 0x00040000,
155 e_StateVerifyTimestampDoc = 0x00080000,
157 e_StateVerifyTimestampValid = 0x00100000,
159 e_StateVerifyTimestampInvalid = 0x00200000,
161 e_StateVerifyTimestampExpire = 0x00400000,
163 e_StateVerifyTimestampIssueUnknown = 0x00800000,
165 e_StateVerifyTimestampIssueValid = 0x01000000,
167 e_StateVerifyTimestampTimeBefore = 0x02000000,
169 e_StateCertCannotGetVRI = 0x04000000,
171 e_StateVerifyChangeLegal = 0x08000000,
173 e_StateVerifyChangeIllegal = 0x10000000
181 typedef enum _APFlags {
183 e_APFlagFoxitFlag = 0x0001,
185 e_APFlagLabel = 0x0002,
187 e_APFlagReason = 0x0004,
189 e_APFlagSigningTime = 0x0008,
193 e_APFlagLocation = 0x0020,
195 e_APFlagSigner = 0x0040,
197 e_APFlagBitmap = 0x0080,
199 e_APFlagText = 0x0100
207 typedef enum _KeyName {
211 e_KeyNameLocation = 1,
215 e_KeyNameContactInfo = 3,
227 typedef enum _DigestAlgorithm {
243 typedef enum _SignatureType {
245 e_SignatureTypeOrdinary = 0,
247 e_SignatureTypeTimeStamp = 3,
249 e_SignatureTypePagingSeal = 4
257 typedef enum _PAdESLevel {
259 e_PAdESLevelNotPAdES = 0,
261 e_PAdESLevelNone = 1,
277 typedef enum _DocPermission {
279 e_DocPermUnrestricted = 0,
284 e_DocPermNoChangesAllowed = 1,
289 e_DocPermFillingFormAndSigning = 2,
294 e_DocPermFillingFormSigningAndAnnotating = 3
302 typedef enum _FieldMDPAction {
304 e_FieldMDPActionNone = 0,
308 e_FieldMDPActionAll = 1,
314 e_FieldMDPActionInclude = 2,
320 e_FieldMDPActionExclude = 3
328 typedef enum _LabelName {
334 e_LabelNameSigner = 0,
340 e_LabelNameLocation = 1,
346 e_LabelNameReason = 2,
352 e_LabelNameSignTime = 3,
388 bool IsEmpty()
const;
415 void SetDocPermission(DocPermission permission);
429 DocPermission GetDocPermission();
454 void SetFieldMDPActionFields(
const FieldMDPAction& action,
const WStringArray& field_array);
462 FieldMDPAction GetFieldMDPAction();
538 DigestAlgorithm digest_algorithm,
const char* save_path,
597 DigestAlgorithm digest_algorithm,
const char* save_path,
655 DigestAlgorithm digest_algorithm,
const wchar_t* save_path,
712 DigestAlgorithm digest_algorithm,
const wchar_t* save_path,
886 String GetCertificateInfo(
const char* key);
902 bool GetByteRangeArray(
uint32 out_byte_range_array[4]);
942 bool ClearSignedData();
964 PDFDoc GetSignedVersionDocument(
const wchar_t* file_path);
976 uint32 GetAppearanceFlags();
994 void SetAppearanceFlags(
uint32 appearance_flags);
1015 void SetAppearanceContent(
const String& appearance_content);
1035 void SetSignTime(
const DateTime& sign_time);
1066 void SetFilter(
const char* filter);
1097 void SetSubFilter(
const char* sub_filter);
1110 WString GetKeyValue(KeyName key);
1127 void SetKeyValue(KeyName key,
const wchar_t* value);
1146 void SetKeyLabel(LabelName label_name,
const wchar_t* label_value);
1158 WString GetKeyLabel(LabelName label_name);
1216 void SetImage(
const char* file_path,
int frame_index);
1234 void SetImage(
const wchar_t* file_path,
int frame_index);
1262 void SetDefaultContentsLength(
uint32 default_length);
1274 int32 GetCertCount()
const;
1312 SignatureType GetSignatureType();
1327 PAdESLevel GetPAdESLevel();
1354 #ifndef __EMSCRIPTEN_RENDER__
1376 typedef enum _CertValidity {
1422 uint32 size_of_array,
const Signature& signature,
const void* client_data) = 0;
1479 virtual String Sign(
const void* digest,
uint32 digest_length,
const wchar_t* cert_path,
1481 void* client_data) = 0;
1507 void* client_data) = 0;
1532 const void* signed_data,
uint32 signed_data_len,
1533 void* client_data) = 0;
1569 class TimeStampServer;
1692 typedef enum _SendRequestResult {
1825 typedef enum _PagingSealPosition {
1876 this->offset == paging_seal_config.
offset &&
1893 this->offset != paging_seal_config.
offset ||
1960 typedef enum _PagingSealAPState {
2015 #endif // FS_SIGNATURE_H_
Unsigned signature.
Definition: fs_signature.h:1964
~PagingSealSignature()
Destructor.
Definition: fs_signature.h:1975
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:214
static void Release()
Release time stamp server manager.
Right Paging Seal.
Definition: fs_signature.h:1829
TimeStampServer & operator=(const TimeStampServer &other)
Assign operator.
virtual uint32 VerifySigState(const void *digest, uint32 digest_length, const void *signed_data, uint32 signed_data_len, void *client_data)=0
A callback function used to verify the integrity of a signature and return the verify state.
Verification state of a signature is valid.
Definition: fs_signature.h:1968
Definition: fs_basictypes.h:446
Fail to create socket during sending request process.
Definition: fs_signature.h:1696
bool operator==(const PagingSealConfig &paging_seal_config) const
Equal operator.
Definition: fs_signature.h:1874
virtual String Sign(const void *digest, uint32 digest_length, const wchar_t *cert_path, const WString &cert_password, Signature::DigestAlgorithm digest_algorithm, void *client_data)=0
A callback function used to do signing and return the signed data.
bool IsEmpty() const
Check whether current object is empty or not.
CFX_Object Object
Object type.
Definition: fs_basictypes.h:217
Definition: fs_common.h:342
Definition: fs_signature.h:1685
static ErrorCode Initialize()
Initialize time stamp server manager.
Certificate's path is wrong.
Definition: fs_signature.h:1388
static void RemoveServer(int index)
Remove a time stamp server from the manager, by index.
File stream interface, reading & writing.
Definition: fx_stream.h:669
bool operator!=(const TimeStampServer &other) const
Not equal operator.
PagingSealAPState
Enumeration for paging seal signature state to set appearance.
Definition: fs_signature.h:1960
~PagingSealConfig()
Destructor.
Definition: fs_signature.h:1850
Header file for common definitions and classes.
~Signature()
Destructor.
Definition: fs_signature.h:379
virtual String GetTimeStampMessage()=0
A callback function used to get time stamp message.
PagingSealPosition paging_seal_position
The position of paging seal. Please refer to values starting from PagingSealConfig::e_PagingSealPosit...
Definition: fs_signature.h:1919
virtual CertValidity CheckCertificateValidity(const wchar_t *cert_path, const WString &cert_password, void *client_data)=0
A callback function used to check the validity of a certificate.
Top Paging Seal.
Definition: fs_signature.h:1831
File reading interface.
Definition: fx_stream.h:566
Header file for file operation related definitions and functions.
virtual bool StartCalcDigest(const common::file::ReaderCallback *file, const uint32 *byte_range_array, uint32 size_of_array, const Signature &signature, const void *client_data)=0
A callback function used to start a custom digest calculation, mainly to initialize the calculation p...
ErrorCode
Enumeration for error code.
Definition: fs_basictypes.h:233
CertValidity
Enumeration for certificate validity.
Definition: fs_signature.h:1376
Certificate's password is wrong.
Definition: fs_signature.h:1386
Definition: fs_pdfobject.h:55
Fail to get data during sending request process.
Definition: fs_signature.h:1706
Fail to receive data during sending request process.
Definition: fs_signature.h:1702
PagingSealConfig & operator=(const PagingSealConfig &paging_seal_config)
Assign operator.
Definition: fs_signature.h:1859
SendRequestResult
Enumeration for the result of sending time stamp request.
Definition: fs_signature.h:1692
Definition: fs_signature.h:1784
virtual void Release()=0
A callback function used to release current callback object itself.
Certificate's private key cannot be gotten.
Definition: fs_signature.h:1392
virtual common::Progressive::State ContinueCalcDigest(const void *client_data, const common::PauseCallback *pause)=0
A callback function used to continue the custom digest calculation process.
BYTE STRING CLASS.
Definition: fx_string.h:317
PagingSealPosition
Enumeration for paging seal position.
Definition: fs_signature.h:1825
Fail to connect during sending request process.
Definition: fs_signature.h:1698
static void SetDefaultServer(int index)
Set default time stamp server object by index.
Definition: fs_signature.h:97
bool operator==(const TimeStampServer &other) const
Equal operator.
Certificate's data is error.
Definition: fs_signature.h:1384
Certificate is expired.
Definition: fs_signature.h:1380
Unknown signature.
Definition: fs_signature.h:1962
static TimeStampServer AddServer(const WString &server_name, const WString &server_url, const WString &user_name, const WString &password)
Add a time stamp server to the manager.
static int GetServerCount()
Get time stamp server count.
Foxit namespace.
Definition: fs_taggedpdf.h:27
SendRequestResult SendTimeStampRequest(const String &request)
Send time stamp request.
bool GenerateAppearance()
Generate the appearance of paging seal signature.
float offset
The offset of paging seal signature.
Definition: fs_signature.h:1931
String GetTimeStampMessage()
Get time stamp message.
bool operator!=(const PagingSealConfig &paging_seal_config) const
Not equal operator.
Definition: fs_signature.h:1891
Signed signature.
Definition: fs_signature.h:1966
Definition: fx_basic.h:3761
Header file for image and bitmap related definitions and classes.
Definition: fs_pdfobject.h:809
Fail to send data during sending request process.
Definition: fs_signature.h:1700
virtual bool IsNeedPadData()=0
A callback function used to check whether to return all contents with padding zero or not,...
bool is_on_perforation
Decide whether to chop a seal that covering the left or right margin of each two pages....
Definition: fs_signature.h:1942
virtual TimeStampServer::SendRequestResult SendTimeStampRequest(const String &request)=0
A callback function used to send time stamp request.
Definition: fs_signature.h:1953
Certificate is unsupport type.
Definition: fs_signature.h:1382
void SetAPStateBitmap(PagingSealAPState ap_state, const common::Bitmap &bitmap)
Set a bitmap for the appearance of signature state.
#define NULL
The null-pointer value.
Definition: fx_system.h:780
Fail to request during sending request process.
Definition: fs_signature.h:1704
Definition: fs_signature.h:35
Definition: fs_signature.h:1818
Definition: fs_pdfdoc.h:509
virtual void Release()=0
A callback function used to release current callback object itself.
Bottom Paging Seal.
Definition: fs_signature.h:1833
State
Enumeration for progress state.
Definition: fs_common.h:349
FX_INT32 int32
32-bit signed integer.
Definition: fs_basictypes.h:194
Left Paging Seal.
Definition: fs_signature.h:1827
Definition: fs_image.h:445
static int GetServerIndex(const TimeStampServer &server)
Get the index of a speicified time stamp server object.
DigestAlgorithm
Enumeration for signature digest algorithm.
Definition: fs_signature.h:227
Definition: fs_basictypes.h:224
Verification state of a signature is invalid.
Definition: fs_signature.h:1970
Out of memory during sending request process.
Definition: fs_signature.h:1708
static TimeStampServer GetServer(int index)
Get time stamp server with specified index.
~TimeStampServer()
Destructor.
Send request successfully.
Definition: fs_signature.h:1694
Definition: fs_signature.h:1369
static TimeStampServer GetDefaultServer()
Get default time stamp server object.
WIDE STRING CLASS.
Definition: fx_string.h:1452
Definition: fs_image.h:36
Definition: fs_signature.h:1579
virtual String GetDigest(const void *client_data)=0
A callback function used to get the digest after the calculation process is finished.
Certificate is valid.
Definition: fs_signature.h:1378
void SetPagingSealConfig(PagingSealConfig paging_seal_config)
Set the config of paging seal signature.
Certificate is not set to sign a signature.
Definition: fs_signature.h:1390
TimeStampServer(const TimeStampServer &other)
Constructor, with another time stamp server object.
float first_page_percent
The percent of the first paging seal. The rest percent will be divided equally by the other paging se...
Definition: fs_signature.h:1936
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:196
PagingSealConfig(PagingSealPosition paging_seal_position, float offset, float first_page_percent, bool is_on_perforation)
Constructor, with parameter.
Definition: fs_basictypes.h:413
void Set(PagingSealPosition paging_seal_position, float offset, float first_page_percent, bool is_on_perforation)
Set value.
@2023 Foxit Software Incorporated. All rights reserved.