Foxit PDF SDK
fs_signature.h
浏览该文件的文档.
1 
15 #ifndef FS_SIGNATURE_H_
16 #define FS_SIGNATURE_H_
17 
18 #include "common/fs_common.h"
19 #include "common/file/fs_file.h"
20 #include "common/fs_image.h"
22 
28 namespace foxit {
32 namespace pdf {
33  class PagingSealSignature;
34 
35 class Signature;
37 FSDK_DEFINE_ARRAY(SignatureArray, Signature)
38 
39 
99 class Signature : public interform::Field {
100  public:
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
176  } States;
177 
183  typedef enum _APFlags {
185  e_APFlagFoxitFlag = 0x0001,
187  e_APFlagLabel = 0x0002,
189  e_APFlagReason = 0x0004,
191  e_APFlagSigningTime = 0x0008,
193  e_APFlagDN = 0x0010,
195  e_APFlagLocation = 0x0020,
197  e_APFlagSigner = 0x0040,
199  e_APFlagBitmap = 0x0080,
201  e_APFlagText = 0x0100,
203  e_APFlagFoxitEditorFlag = 0x0200,
205  e_APFlagProducer = 0x0400
206  } APFlags;
207 
213  typedef enum _KeyName {
215  e_KeyNameSigner = 0,
217  e_KeyNameLocation = 1,
219  e_KeyNameReason = 2,
221  e_KeyNameContactInfo = 3,
223  e_KeyNameDN = 4,
225  e_KeyNameText = 5,
227  e_KeyNameProducer = 6
228  } KeyName;
229 
235  typedef enum _DigestAlgorithm {
237  e_DigestSHA1 = 0,
239  e_DigestSHA256 = 1,
241  e_DigestSHA384 = 2,
243  e_DigestSHA512 = 3
244  } DigestAlgorithm;
245 
251  typedef enum _SignatureType {
253  e_SignatureTypeOrdinary = 0,
255  e_SignatureTypeTimeStamp = 3,
257  e_SignatureTypePagingSeal = 4
258  } SignatureType;
259 
265  typedef enum _PAdESLevel {
267  e_PAdESLevelNotPAdES = 0,
269  e_PAdESLevelNone = 1,
271  e_PAdESLevelBB = 2,
273  e_PAdESLevelBT = 3,
275  e_PAdESLevelBLT = 4,
277  e_PAdESLevelBLTA = 5
278  } PAdESLevel;
279 
285  typedef enum _DocPermission {
287  e_DocPermUnrestricted = 0,
292  e_DocPermNoChangesAllowed = 1,
297  e_DocPermFillingFormAndSigning = 2,
302  e_DocPermFillingFormSigningAndAnnotating = 3
303  } DocPermission;
304 
310  typedef enum _FieldMDPAction {
312  e_FieldMDPActionNone = 0,
316  e_FieldMDPActionAll = 1,
322  e_FieldMDPActionInclude = 2,
328  e_FieldMDPActionExclude = 3
329  } FieldMDPAction;
330 
336  typedef enum _LabelName {
342  e_LabelNameSigner = 0,
348  e_LabelNameLocation = 1,
354  e_LabelNameReason = 2,
360  e_LabelNameSignTime = 3,
366  e_LabelNameDN = 4,
372  e_LabelNameProducer = 6
373  } LabelName;
374 
375 
381  explicit Signature(const interform::Field& field);
382 
390  Signature(const foxit::pdf::PDFDoc& document, foxit::pdf::objects::PDFDictionary* sig_field_dict);
391 
394 
402  bool IsEmpty() const;
403 
409  bool IsSigned();
410 
429  void SetDocPermission(DocPermission permission);
430 
443  DocPermission GetDocPermission();
444 
468  void SetFieldMDPActionFields(const FieldMDPAction& action, const WStringArray& field_array);
469 
476  FieldMDPAction GetFieldMDPAction();
477 
492  WStringArray GetFieldMDPActionFields();
493 
504  void EnableIncrementalSaveForFirstSigning(bool enable_incremental_save);
505 
559  common::Progressive StartSign(const wchar_t* cert_path, const WString& cert_password,
560  DigestAlgorithm digest_algorithm, const char* save_path,
561  const void* client_data = NULL, common::PauseCallback* pause = NULL);
562 
616  common::Progressive StartSign(foxit::common::file::StreamCallback* cert_file_stream, const WString& cert_password,
617  DigestAlgorithm digest_algorithm, const char* save_path,
618  const void* client_data = NULL, common::PauseCallback* pause = NULL);
619 
670  common::Progressive StartSign(const wchar_t* cert_path, const WString& cert_password,
671  DigestAlgorithm digest_algorithm, const wchar_t* save_path,
672  const void* client_data = NULL, common::PauseCallback* pause = NULL);
673 
726  common::Progressive StartSign(foxit::common::file::StreamCallback* cert_file_stream, const WString& cert_password,
727  DigestAlgorithm digest_algorithm, const wchar_t* save_path,
728  const void* client_data = NULL, common::PauseCallback* pause = NULL);
729 
783  common::Progressive StartSign(const wchar_t* cert_path, const foxit::WString& cert_password,
785  const void* client_data = NULL, foxit::common::PauseCallback* pause = NULL);
786 
841  common::Progressive StartSign(foxit::common::file::StreamCallback* cert_file_stream, const foxit::WString& cert_password,
843  const void* client_data = NULL, foxit::common::PauseCallback* pause = NULL);
844 
874  common::Progressive StartVerify(const void* client_data = NULL, common::PauseCallback* pause = NULL);
875 
895  String GetCertificateInfo(const char* key);
896 
911  bool GetByteRangeArray(uint32 out_byte_range_array[4]);
912 
938  uint32 GetState();
939 
950  bool ClearSignedData();
951 
957  PDFDoc GetDocument();
958 
972  PDFDoc GetSignedVersionDocument(const wchar_t* file_path);
973 
984  uint32 GetAppearanceFlags();
985 
1001  void SetAppearanceFlags(uint32 appearance_flags);
1002 
1019  void SetAppearanceContent(const String& appearance_content);
1020 
1027  DateTime GetSignTime();
1028 
1038  void SetSignTime(const DateTime& sign_time);
1039 
1048  String GetFilter();
1049 
1070  void SetFilter(const char* filter);
1071 
1080  String GetSubFilter();
1081 
1102  void SetSubFilter(const char* sub_filter);
1103 
1115  WString GetKeyValue(KeyName key);
1116 
1131  void SetKeyValue(KeyName key, const wchar_t* value);
1132 
1148  void SetKeyLabel(LabelName label_name, const wchar_t* label_value);
1149 
1160  WString GetKeyLabel(LabelName label_name);
1161 
1168  common::Bitmap GetBitmap();
1169 
1182  void SetBitmap(const common::Bitmap& bitmap);
1183 
1200  void SetImage(const common::Image& image, int frame_index);
1201 
1217  void SetImage(const char* file_path, int frame_index);
1218 
1234  void SetImage(const wchar_t* file_path, int frame_index);
1235 
1243  objects::PDFDictionary* GetSignatureDict() const;
1244 
1260  void SetDefaultContentsLength(uint32 default_length);
1261 
1272  int32 GetCertCount() const;
1273 
1287  WString GetCert(int32 index) const;
1288 
1300  void SetCertChain(const WStringArray& cert_chain);
1301 
1308  SignatureType GetSignatureType();
1309 
1315  bool IsTimeStamp();
1316 
1323  PAdESLevel GetPAdESLevel();
1324 
1336  void SetCustomObject(const char* key, objects::PDFObject* pdf_object);
1337 
1347  SignatureArray GetPagingSealGroupElements();
1348 
1356  bool GenerateAppearance();
1357 
1367  PagingSealSignature GetPagingSealSignature();
1368 
1378  void EnableEmbedFont(bool enable_embed_font);
1379 
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_)
1381 
1390  bool DetectModification();
1391 #endif
1392 #ifndef __EMSCRIPTEN_RENDER__
1393  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
1394  explicit Signature(FS_HANDLE handle = NULL);
1395 #endif
1396 };
1397 
1408  public:
1414  typedef enum _CertValidity {
1431  } CertValidity;
1432 
1433 
1439  virtual void Release() = 0;
1440 
1458  virtual bool StartCalcDigest(const common::file::ReaderCallback* file, const uint32* byte_range_array,
1459  uint32 size_of_array, const Signature& signature, const void* client_data) = 0;
1460 
1476  virtual common::Progressive::State ContinueCalcDigest(const void* client_data,
1477  const common::PauseCallback* pause) = 0;
1478 
1490  virtual String GetDigest(const void* client_data) = 0;
1491 
1512  virtual String Sign(const void* digest, uint32 digest_length, const wchar_t* cert_path,
1513  const WString& cert_password, Signature::DigestAlgorithm digest_algorithm,
1514  void* client_data) = 0;
1515 
1537  virtual String Sign(const void* digest, uint32 digest_length, foxit::common::file::StreamCallback* cert_file_stream,
1538  const WString& cert_password, Signature::DigestAlgorithm digest_algorithm,
1539  void* client_data) = 0;
1540 
1563  virtual uint32 VerifySigState(const void* digest, uint32 digest_length,
1564  const void* signed_data, uint32 signed_data_len,
1565  void* client_data) = 0;
1566 
1574  virtual bool IsNeedPadData() = 0;
1575 
1591  virtual CertValidity CheckCertificateValidity(const wchar_t* cert_path, const WString& cert_password, void* client_data) = 0;
1592 
1593  protected:
1594  ~SignatureCallback() {}
1595 };
1596 
1597 class TimeStampServer;
1598 
1607 class TimeStampServerMgr FS_FINAL : public Object {
1608  public:
1617  static ErrorCode Initialize();
1627  static void Release();
1628 
1634  static int GetServerCount();
1643  static TimeStampServer GetServer(int index);
1651  static int GetServerIndex(const TimeStampServer& server);
1652 
1667  static void SetDefaultServer(int index);
1677  static void SetDefaultServer(const TimeStampServer& server);
1678 
1689  static TimeStampServer AddServer(const WString& server_name, const WString& server_url, const WString& user_name, const WString& password);
1697  static void RemoveServer(int index);
1707  static void RemoveServer(const TimeStampServer& server);
1708 };
1709 
1713 class TimeStampServer FS_FINAL : public Base {
1714  public:
1720  typedef enum _SendRequestResult {
1738 
1739 
1745  TimeStampServer(const TimeStampServer& other);
1746 
1755 
1763  bool operator == (const TimeStampServer& other) const;
1771  bool operator != (const TimeStampServer& other) const;
1772 
1774  ~TimeStampServer();
1775 
1783  bool IsEmpty() const;
1784 
1794 
1803 
1804  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
1805  explicit TimeStampServer(FS_HANDLE handle = NULL);
1806 };
1807 
1813  public:
1819  virtual void Release() = 0;
1820 
1830 
1836  virtual String GetTimeStampMessage() = 0;
1837 
1838  protected:
1839  virtual ~TimeStampCallback() {}
1840 };
1841 
1846 class PagingSealConfig FS_FINAL : public Object{
1847  public:
1853  typedef enum _PagingSealPosition {
1863 
1869  typedef enum _PagingSealStyle {
1880  } PagingSealStyle;
1881 
1882 
1900 
1908  PagingSealConfig& operator = (const PagingSealConfig& paging_seal_config) {
1909  this->paging_seal_position = paging_seal_config.paging_seal_position;
1910  this->offset = paging_seal_config.offset;
1911  this->first_page_percent = paging_seal_config.first_page_percent;
1912  this->is_on_perforation = paging_seal_config.is_on_perforation;
1913  this->paging_seal_style = paging_seal_config.paging_seal_style;
1914  this->is_display_multiple_seal = paging_seal_config.is_display_multiple_seal;
1915  this->page_count_for_each_seal = paging_seal_config.page_count_for_each_seal;
1916  return *this;
1917  }
1918 
1926  bool operator == (const PagingSealConfig& paging_seal_config) const {
1927  if (this->paging_seal_position == paging_seal_config.paging_seal_position &&
1928  this->offset == paging_seal_config.offset &&
1929  this->first_page_percent == paging_seal_config.first_page_percent &&
1930  this->is_on_perforation == paging_seal_config.is_on_perforation &&
1931  this->paging_seal_style == paging_seal_config.paging_seal_style &&
1932  this->is_display_multiple_seal == paging_seal_config.is_display_multiple_seal &&
1933  this->page_count_for_each_seal == paging_seal_config.page_count_for_each_seal){
1934  return true;
1935  }
1936  return false;
1937  }
1938 
1946  bool operator != (const PagingSealConfig& paging_seal_config) const {
1947  if (this->paging_seal_position != paging_seal_config.paging_seal_position ||
1948  this->offset != paging_seal_config.offset ||
1949  this->first_page_percent != paging_seal_config.first_page_percent ||
1950  this->is_on_perforation != paging_seal_config.is_on_perforation ||
1951  this->paging_seal_style != paging_seal_config.paging_seal_style ||
1952  this->is_display_multiple_seal != paging_seal_config.is_display_multiple_seal ||
1953  this->page_count_for_each_seal != paging_seal_config.page_count_for_each_seal) {
1954  return true;
1955  }
1956  return false;
1957  }
1958 
1977  bool is_display_multiple_seal = false, int page_count_for_each_seal = 30);
1978 
1995  float offset;
2025 };
2026 
2035 class PagingSealSignature FS_FINAL : public pdf::Signature {
2036  public:
2042  typedef enum _PagingSealAPState {
2054 
2055 
2058 
2066  void SetPagingSealConfig(PagingSealConfig paging_seal_config);
2067 
2079  void SetAPStateBitmap(PagingSealAPState ap_state, const common::Bitmap& bitmap);
2080 
2089  bool GenerateAppearance();
2090 
2091  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
2092  explicit PagingSealSignature(FS_HANDLE handle = NULL);
2093 };
2094 
2095 } // namespace pdf
2096 } // namespace foxit
2097 #endif // FS_SIGNATURE_H_
2098 
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
~TimeStampServer()
析构函数。
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)
发送时间戳请求。
图像和位图相关定义和类的头文件。
PDF表单相关定义和类的头文件。
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)
为签名状态的外观设置位图。
Definition: fs_pdfform.h:145
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
用于执行签名并返回签名数据的回调函数。