15 #ifndef FS_SIGNATURE_H_ 16 #define FS_SIGNATURE_H_ 33 class PagingSealSignature;
117 typedef enum _States {
119 e_StateUnknown = 0x80000000,
121 e_StateNoSignData = 0x00000200,
123 e_StateUnsigned = 0x00000001,
125 e_StateSigned = 0x00000002,
127 e_StateVerifyValid = 0x00000004,
129 e_StateVerifyInvalid = 0x00000008,
131 e_StateVerifyErrorData = 0x00000010,
133 e_StateVerifyNoSupportWay = 0x00000020,
135 e_StateVerifyErrorByteRange = 0x00000040,
137 e_StateVerifyChange = 0x00000080,
139 e_StateVerifyIncredible = 0x00000100,
141 e_StateVerifyNoChange = 0x00000400,
143 e_StateVerifyIssueValid = 0x00001000,
145 e_StateVerifyIssueUnknown = 0x00002000,
147 e_StateVerifyIssueRevoke = 0x00004000,
149 e_StateVerifyIssueExpire = 0x00008000,
151 e_StateVerifyIssueUncheck = 0x00010000,
153 e_StateVerifyIssueCurrent = 0x00020000,
155 e_StateVerifyTimestampNone = 0x00040000,
157 e_StateVerifyTimestampDoc = 0x00080000,
159 e_StateVerifyTimestampValid = 0x00100000,
161 e_StateVerifyTimestampInvalid = 0x00200000,
163 e_StateVerifyTimestampExpire = 0x00400000,
165 e_StateVerifyTimestampIssueUnknown = 0x00800000,
167 e_StateVerifyTimestampIssueValid = 0x01000000,
169 e_StateVerifyTimestampTimeBefore = 0x02000000,
171 e_StateCertCannotGetVRI = 0x04000000,
173 e_StateVerifyChangeLegal = 0x08000000,
175 e_StateVerifyChangeIllegal = 0x10000000
183 typedef enum _APFlags {
185 e_APFlagFoxitFlag = 0x0001,
187 e_APFlagLabel = 0x0002,
189 e_APFlagReason = 0x0004,
191 e_APFlagSigningTime = 0x0008,
195 e_APFlagLocation = 0x0020,
197 e_APFlagSigner = 0x0040,
199 e_APFlagBitmap = 0x0080,
201 e_APFlagText = 0x0100,
203 e_APFlagFoxitEditorFlag = 0x0200,
205 e_APFlagProducer = 0x0400
213 typedef enum _KeyName {
217 e_KeyNameLocation = 1,
221 e_KeyNameContactInfo = 3,
227 e_KeyNameProducer = 6
235 typedef enum _DigestAlgorithm {
251 typedef enum _SignatureType {
253 e_SignatureTypeOrdinary = 0,
255 e_SignatureTypeTimeStamp = 3,
257 e_SignatureTypePagingSeal = 4
265 typedef enum _PAdESLevel {
267 e_PAdESLevelNotPAdES = 0,
269 e_PAdESLevelNone = 1,
285 typedef enum _DocPermission {
287 e_DocPermUnrestricted = 0,
292 e_DocPermNoChangesAllowed = 1,
297 e_DocPermFillingFormAndSigning = 2,
302 e_DocPermFillingFormSigningAndAnnotating = 3
310 typedef enum _FieldMDPAction {
312 e_FieldMDPActionNone = 0,
316 e_FieldMDPActionAll = 1,
322 e_FieldMDPActionInclude = 2,
328 e_FieldMDPActionExclude = 3
336 typedef enum _LabelName {
342 e_LabelNameSigner = 0,
348 e_LabelNameLocation = 1,
354 e_LabelNameReason = 2,
360 e_LabelNameSignTime = 3,
372 e_LabelNameProducer = 6
402 bool IsEmpty()
const;
429 void SetDocPermission(DocPermission permission);
443 DocPermission GetDocPermission();
468 void SetFieldMDPActionFields(
const FieldMDPAction& action,
const WStringArray& field_array);
476 FieldMDPAction GetFieldMDPAction();
504 void EnableIncrementalSaveForFirstSigning(
bool enable_incremental_save);
560 DigestAlgorithm digest_algorithm,
const char* save_path,
617 DigestAlgorithm digest_algorithm,
const char* save_path,
671 DigestAlgorithm digest_algorithm,
const wchar_t* save_path,
727 DigestAlgorithm digest_algorithm,
const wchar_t* save_path,
895 String GetCertificateInfo(
const char* key);
911 bool GetByteRangeArray(
uint32 out_byte_range_array[4]);
950 bool ClearSignedData();
972 PDFDoc GetSignedVersionDocument(
const wchar_t* file_path);
984 uint32 GetAppearanceFlags();
1001 void SetAppearanceFlags(
uint32 appearance_flags);
1019 void SetAppearanceContent(
const String& appearance_content);
1038 void SetSignTime(
const DateTime& sign_time);
1070 void SetFilter(
const char* filter);
1102 void SetSubFilter(
const char* sub_filter);
1115 WString GetKeyValue(KeyName key);
1131 void SetKeyValue(KeyName key,
const wchar_t* value);
1148 void SetKeyLabel(LabelName label_name,
const wchar_t* label_value);
1160 WString GetKeyLabel(LabelName label_name);
1217 void SetImage(
const char* file_path,
int frame_index);
1234 void SetImage(
const wchar_t* file_path,
int frame_index);
1260 void SetDefaultContentsLength(
uint32 default_length);
1272 int32 GetCertCount()
const;
1308 SignatureType GetSignatureType();
1323 PAdESLevel GetPAdESLevel();
1356 bool GenerateAppearance();
1378 void EnableEmbedFont(
bool enable_embed_font);
1380 #if (_FX_OS_ == _FX_IOS_ || _FX_OS_ == _FX_ANDROID_ || defined(SWIG)) && !defined(_SWIG_JAVA_) && !defined(_SWIG_DOTNET_) && !defined(_SWIG_PYTHON_) && !defined(_OC_) && !defined(_SWIG_MACOC_) && !defined(_MAUI_) && !defined(_SWIG_NODEJS_) && !defined(_SWIG_GO_) 1390 bool DetectModification();
1392 #ifndef __EMSCRIPTEN_RENDER__ 1414 typedef enum _CertValidity {
1459 uint32 size_of_array,
const Signature& signature,
const void* client_data) = 0;
1512 virtual String Sign(
const void* digest,
uint32 digest_length,
const wchar_t* cert_path,
1514 void* client_data) = 0;
1539 void* client_data) = 0;
1564 const void* signed_data,
uint32 signed_data_len,
1565 void* client_data) = 0;
1597 class TimeStampServer;
1720 typedef enum _SendRequestResult {
1853 typedef enum _PagingSealPosition {
1869 typedef enum _PagingSealStyle {
1928 this->offset == paging_seal_config.
offset &&
1948 this->offset != paging_seal_config.
offset ||
2042 typedef enum _PagingSealAPState {
2097 #endif // FS_SIGNATURE_H_ bool GenerateAppearance()
生成分页印章签名的外观。
成功发送请求。
Definition: fs_signature.h:1722
PagingSealAPState
用于设置外观的分页印章签名状态枚举。
Definition: fs_signature.h:2042
在发送请求过程中内存不足。
Definition: fs_signature.h:1736
证书是不支持的类型。
Definition: fs_signature.h:1420
无法获取证书的私钥。
Definition: fs_signature.h:1430
Definition: fs_image.h:36
TimeStampServer(const TimeStampServer &other)
构造函数,使用另一个时间戳服务器对象。
CFX_Object Object
对象类型。
Definition: fs_basictypes.h:221
Definition: fs_signature.h:37
void SetPagingSealConfig(PagingSealConfig paging_seal_config)
设置分页印章签名的配置。
static int GetServerIndex(const TimeStampServer &server)
获取指定时间戳服务器对象的索引。
TimeStampServer & operator=(const TimeStampServer &other)
赋值操作符。
证书有效。
Definition: fs_signature.h:1416
Definition: fs_basictypes.h:228
Definition: fs_basictypes.h:482
static int GetServerCount()
获取时间戳服务器数量。
bool operator==(const PagingSealConfig &paging_seal_config) const
相等操作符。
Definition: fs_signature.h:1926
底部分页印章。
Definition: fs_signature.h:1861
证书路径错误。
Definition: fs_signature.h:1426
int page_count_for_each_seal
每个印章的页数。此值仅在参数is_display_multiple_seal为true时有用。 此值应大于1。如果最后一个印章的页数为1,它将与前一个印章合并形成一个印章。
Definition: fs_signature.h:2024
文件读取接口。
Definition: fx_stream.h:587
virtual uint32 VerifySigState(const void *digest, uint32 digest_length, const void *signed_data, uint32 signed_data_len, void *client_data)=0
用于验证签名完整性并返回验证状态的回调函数。
virtual String GetTimeStampMessage()=0
用于获取时间戳消息的回调函数。
宽字符串类
Definition: fx_string.h:1457
static TimeStampServer AddServer(const WString &server_name, const WString &server_url, const WString &user_name, const WString &password)
向管理器添加时间戳服务器。
bool operator==(const TimeStampServer &other) const
相等操作符。
添加多个签名。使用Signature显示分页印章签名的外观, 这些签名共享相同的签名数据。
Definition: fs_signature.h:1874
State
进度状态的枚举。
Definition: fs_common.h:380
Definition: fs_signature.h:1607
virtual TimeStampServer::SendRequestResult SendTimeStampRequest(const String &request)=0
用于发送时间戳请求的回调函数。
bool IsEmpty() const
检查当前对象是否为空。
Definition: fs_pdfdoc.h:771
左侧分页印章。
Definition: fs_signature.h:1855
virtual CertValidity CheckCertificateValidity(const wchar_t *cert_path, const WString &cert_password, void *client_data)=0
用于检查证书有效性的回调函数。
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
用于启动自定义摘要计算的回调函数,主要用于初始化计算过程。
static TimeStampServer GetServer(int index)
使用指定索引获取时间戳服务器。
SendRequestResult SendTimeStampRequest(const String &request)
发送时间戳请求。
virtual common::Progressive::State ContinueCalcDigest(const void *client_data, const common::PauseCallback *pause)=0
用于继续自定义摘要计算过程的回调函数。
证书已过期。
Definition: fs_signature.h:1418
PagingSealStyle
分页印章签名样式的枚举。
Definition: fs_signature.h:1869
virtual void Release()=0
用于释放当前回调对象自身的回调函数。
已签名签名。
Definition: fs_signature.h:2048
未知签名。
Definition: fs_signature.h:2044
Definition: fs_signature.h:1407
证书密码错误。
Definition: fs_signature.h:1424
证书数据错误。
Definition: fs_signature.h:1422
PagingSealPosition paging_seal_position
分页印章的位置。请参考从PagingSealConfig::e_PagingSealPositionLeft 开始的值,这将是这些值中的一个。
Definition: fs_signature.h:1983
顶部分页印章。
Definition: fs_signature.h:1859
Definition: fs_signature.h:2035
ErrorCode
错误代码的枚举。
Definition: fs_basictypes.h:237
String GetTimeStampMessage()
获取时间戳消息。
bool operator !=(const TimeStampServer &other) const
不相等操作符。
CertValidity
证书有效性的枚举。
Definition: fs_signature.h:1414
Definition: fs_signature.h:1713
文件流接口,用于读取和写入。
Definition: fx_stream.h:692
在发送请求过程中接收数据失败。
Definition: fs_signature.h:1730
void Set(PagingSealPosition paging_seal_position, float offset, float first_page_percent, bool is_on_perforation, PagingSealStyle paging_seal_style, bool is_display_multiple_seal=false, int page_count_for_each_seal=30)
设置值。
PagingSealConfig & operator=(const PagingSealConfig &paging_seal_config)
赋值操作符。
Definition: fs_signature.h:1908
Definition: fx_basic.h:3737
在发送请求过程中连接失败。
Definition: fs_signature.h:1726
virtual bool IsNeedPadData()=0
用于检查在调用回调函数SignatureCallback::VerifySigState时 是否返回所有带有填充零的内容的回调函数。
bool is_on_perforation
决定是否切断覆盖每两页左边距或右边距的印章。true表示分页印章签名 将成对添加到页面中,参数paging_seal_position和参数first_page_percent 将不起作用。false表...
Definition: fs_signature.h:2006
bool operator !=(const PagingSealConfig &paging_seal_config) const
不相等操作符。
Definition: fs_signature.h:1946
DigestAlgorithm
签名摘要算法的枚举。
Definition: fs_signature.h:235
virtual void Release()=0
用于释放当前回调对象自身的回调函数。
Definition: fs_common.h:373
void SetAPStateBitmap(PagingSealAPState ap_state, const common::Bitmap &bitmap)
为签名状态的外观设置位图。
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:196
static void Release()
释放时间戳服务器管理器。
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:214
static TimeStampServer GetDefaultServer()
获取默认时间戳服务器对象。
PagingSealPosition
分页印章位置的枚举。
Definition: fs_signature.h:1853
PagingSealConfig(PagingSealPosition paging_seal_position, float offset, float first_page_percent, bool is_on_perforation, PagingSealStyle paging_seal_style=PagingSealConfig::e_PagingSealStyleMultipleSignatures, bool is_display_multiple_seal=false, int page_count_for_each_seal=30)
带参数的构造函数。
Definition: fs_signature.h:1812
SendRequestResult
发送时间戳请求结果的枚举。
Definition: fs_signature.h:1720
签名的验证状态无效。
Definition: fs_signature.h:2052
FX_INT32 int32
有符号 32 位整数。
Definition: fs_basictypes.h:194
Definition: fs_basictypes.h:449
在发送请求过程中创建套接字失败。
Definition: fs_signature.h:1724
在发送请求过程中发送数据失败。
Definition: fs_signature.h:1728
在发送请求过程中获取数据失败。
Definition: fs_signature.h:1734
Definition: fs_pdfobject.h:848
float first_page_percent
第一个分页印章的百分比。其余百分比将由其他分页印章平均分配。 此参数应大于0.0,小于1.0。
Definition: fs_signature.h:2000
Foxit命名空间。
Definition: fs_taggedpdf.h:27
Definition: fs_pdfobject.h:55
float offset
分页印章签名的偏移量。
Definition: fs_signature.h:1995
Definition: fs_signature.h:1846
static void RemoveServer(int index)
通过索引从管理器中移除时间戳服务器。
字节字符串类
Definition: fx_string.h:317
证书未设置为签名。
Definition: fs_signature.h:1428
bool is_display_multiple_seal
决定是否为当前分页印章签名显示多个分页印章外观。true表示显示多个分页印章 外观,每count页使用一个分页印章外观,count由page_count_for_each_seal设置。false表示不...
Definition: fs_signature.h:2019
仅添加一个签名。此签名用于签名和验证,在PDF文档中将被隐藏。 使用annots::PagingSeal注释显示分页印章签名的外观。
Definition: fs_signature.h:1879
未签名签名。
Definition: fs_signature.h:2046
签名的验证状态有效。
Definition: fs_signature.h:2050
virtual String GetDigest(const void *client_data)=0
用于在计算过程完成后获取摘要的回调函数。
static ErrorCode Initialize()
初始化时间戳服务器管理器。
#define NULL
空指针值。
Definition: fx_system.h:792
Definition: fs_signature.h:99
PagingSealStyle paging_seal_style
分页印章签名的样式。请参考从PagingSealConfig::e_PagingSealStyleMultipleSignatures 开始的值,这将是这些值中的一个。
Definition: fs_signature.h:2013
static void SetDefaultServer(int index)
通过索引设置默认时间戳服务器对象。
~PagingSealSignature()
析构函数。
Definition: fs_signature.h:2057
右侧分页印章。
Definition: fs_signature.h:1857
在发送请求过程中请求失败。
Definition: fs_signature.h:1732
~Signature()
析构函数。
Definition: fs_signature.h:393
Definition: fs_image.h:449
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
用于执行签名并返回签名数据的回调函数。