Foxit PDF SDK

Public 类型 | Public 成员函数 | 所有成员列表
foxit::pdf::SignatureCallback类 参考abstract

## Public 类型
enum | CertValidity { e_CertValid = 0, e_CertExpired = 1, e_CertUnsupportType = 2, e_CertDataError = 3, e_CertInvalidPassword = 4, e_CertInvalidPath = 5, e_CertNotSet = 6, e_CertCannotGetPrivateKey = 7 }
| 证书有效性的枚举。 更多...

## Public 成员函数
virtual CertValidity | CheckCertificateValidity (const wchar_t *cert_path, const WString &cert_password, void *client_data)=0
| 用于检查证书有效性的回调函数。 更多...
virtual common::Progressive::State | ContinueCalcDigest (const void *client_data, const common::PauseCallback *pause)=0
| 用于继续自定义摘要计算过程的回调函数。 更多...
virtual String | GetDigest (const void *client_data)=0
| 用于在计算过程完成后获取摘要的回调函数。 更多...
virtual bool | IsNeedPadData ()=0
| 用于检查在调用回调函数SignatureCallback::VerifySigState时 是否返回所有带有填充零的内容的回调函数。 更多...
virtual void | Release ()=0
| 用于释放当前回调对象自身的回调函数。 更多...
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
| 用于执行签名并返回签名数据的回调函数。 更多...
virtual String | Sign (const void *digest, uint32 digest_length, foxit::common::file::StreamCallback *cert_file_stream, const WString &cert_password, Signature::DigestAlgorithm digest_algorithm, 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
| 用于启动自定义摘要计算的回调函数，主要用于初始化计算过程。 更多...
virtual uint32 | VerifySigState (const void *digest, uint32 digest_length, const void *signed_data, uint32 signed_data_len, void *client_data)=0
| 用于验证签名完整性并返回验证状态的回调函数。 更多...

## 详细描述

此类表示用于签名或验证签名的回调对象。 此类中的所有纯虚函数都用作回调函数，应由用户实现， 以便以自定义方式签名或验证签名。
用户可以通过函数common::Library::RegisterSignatureCallback 将自定义签名回调对象注册到Foxit PDF SDK，使用过滤器和子过滤器作为回调名称。

参见
  common::Library

## 成员枚举类型说明

## ◆ CertValidity

enum foxit::pdf::SignatureCallback::CertValidity

证书有效性的枚举。

此枚举的值应单独使用。

枚举值
e_CertValid | 证书有效。
e_CertExpired | 证书已过期。
e_CertUnsupportType | 证书是不支持的类型。
e_CertDataError | 证书数据错误。
e_CertInvalidPassword | 证书密码错误。
e_CertInvalidPath | 证书路径错误。
e_CertNotSet | 证书未设置为签名。
e_CertCannotGetPrivateKey | 无法获取证书的私钥。

## 成员函数说明

## ◆ CheckCertificateValidity()

virtual CertValidity foxit::pdf::SignatureCallback::CheckCertificateValidity | ( | const wchar_t * | cert_path,
|  | const WString & | cert_password,
|  | void * | client_data
| ) |  |
| pure virtual

用于检查证书有效性的回调函数。

当调用函数Signature::StartSign时会触发此回调函数。 如果不需要检查证书，可以直接返回值SignatureCallback::e_CertValid。

参数

  [in] | cert_path | 将用于签名的证书文件的完整路径（包括文件名和扩展名）。 这是用户从函数Signature::StartSign传递的。
  [in] | cert_password | 用于打开证书文件的密码字符串。如果这是空字符串， 表示不需要密码。这是用户从函数Signature::StartSign传递的。
  [in] | client_data | 用户定义的对象，由用户从函数Signature::StartSign传递。

返回
  证书有效性。请参考从SignatureCallback::e_CertValid开始的值， 应为这些值中的一个。

## ◆ ContinueCalcDigest()

virtual common::Progressive::State foxit::pdf::SignatureCallback::ContinueCalcDigest | ( | const void * | client_data,
|  | const common::PauseCallback * | pause
| ) |  |
| pure virtual

用于继续自定义摘要计算过程的回调函数。

参数

  [in] | pause | 决定计算过程是否需要暂停的暂停对象。 如果为NULL，表示在计算过程中不暂停。 如果不为NULL，请检查此输入参数的 函数NeedToPauseNow()的返回值，并决定何时暂停计算过程。
  [in] | client_data | 用户定义的对象，由用户从函数 Signature::StartSign或Signature::StartVerify传递。

返回
  common::Progressive::e_Finished 表示计算过程已成功完成。
  common::Progressive::e_ToBeContinued 表示计算过程尚未完成， 将再次触发回调函数 SignatureCallback::ContinueCalcDigest 以继续该过程。
  common::Progressive::e_Error 表示发生任何错误。

## ◆ GetDigest()

virtual String foxit::pdf::SignatureCallback::GetDigest | ( | const void * | client_data | ) |
| pure virtual

用于在计算过程完成后获取摘要的回调函数。

当计算过程成功完成时，将触发此回调函数。

参数

  [in] | client_data | 用户定义的对象，由用户从函数 Signature::StartSign或Signature::StartVerify传递。

返回
  摘要字符串。 如果出现任何错误，请返回空字符串。

## ◆ IsNeedPadData()

virtual bool foxit::pdf::SignatureCallback::IsNeedPadData | ( |  | ) |
| pure virtual

用于检查在调用回调函数SignatureCallback::VerifySigState时 是否返回所有带有填充零的内容的回调函数。

返回
  true表示返回内容流中的所有数据（包括填充零）， false表示返回流末尾不带填充零的内容数据。

## ◆ Release()

virtual void foxit::pdf::SignatureCallback::Release | ( |  | ) |
| pure virtual

用于释放当前回调对象自身的回调函数。

返回
  None.

## ◆ Sign() [1/2]

virtual String foxit::pdf::SignatureCallback::Sign | ( | const void * | digest,
|  | uint32 | digest_length,
|  | const wchar_t * | cert_path,
|  | const WString & | cert_password,
|  | Signature::DigestAlgorithm | digest_algorithm,
|  | void * | client_data
| ) |  |
| pure virtual

用于执行签名并返回签名数据的回调函数。

宿主应用程序为自定义签名机制提供此回调函数。 此回调函数将在签名过程中被触发。

参数

  [in] | digest | 要签名的源文件缓冲区的摘要数据缓冲区。
  [in] | digest_length | 摘要数据缓冲区的大小。
  [in] | cert_path | 将用于签名的证书文件路径。
  [in] | cert_password | 用于打开证书文件的密码字符串。如果这是空字符串， 表示不需要密码。
  [in] | digest_algorithm | 签名数据的消息摘要算法。请参考从Signature::e_DigestSHA1开始的值， 这将是这些值中的一个。
  [in] | client_data | 用户定义的对象，由用户从函数 Signature::StartSign或Signature::StartVerify传递。

返回
  签名数据。如果出现任何错误，请返回空字符串。
  返回的签名数据长度应在默认签名内容长度范围内， 默认长度为7942，或在签名未签名的签名之前通过函数Signature::SetDefaultContentsLength指定的长度。

## ◆ Sign() [2/2]

virtual String foxit::pdf::SignatureCallback::Sign | ( | const void * | digest,
|  | uint32 | digest_length,
|  | foxit::common::file::StreamCallback * | cert_file_stream,
|  | const WString & | cert_password,
|  | Signature::DigestAlgorithm | digest_algorithm,
|  | void * | client_data
| ) |  |
| pure virtual

用于执行签名并返回签名数据的回调函数。

宿主应用程序为自定义签名机制提供此回调函数。 此回调函数将在签名过程中被触发。

参数

  [in] | digest | 要签名的源文件缓冲区的摘要数据缓冲区。
  [in] | digest_length | 摘要数据缓冲区的大小。
  [in] | cert_file_stream | 用户实现的foxit::common::file::StreamCallback对象， 用于访问将用于签名的证书文件内容。
  [in] | cert_password | 用于打开证书文件的密码字符串。如果这是空字符串， 表示不需要密码。
  [in] | digest_algorithm | 签名数据的消息摘要算法。请参考从Signature::e_DigestSHA1开始的值， 这将是这些值中的一个。
  [in] | client_data | 用户定义的对象，由用户从函数 Signature::StartSign或Signature::StartVerify传递。

返回
  签名数据。如果出现任何错误，请返回空字符串。
  返回的签名数据长度应在默认签名内容长度范围内， 默认长度为7942，或在签名未签名的签名之前通过函数Signature::SetDefaultContentsLength指定的长度。

## ◆ StartCalcDigest()

virtual bool foxit::pdf::SignatureCallback::StartCalcDigest | ( | const common::file::ReaderCallback * | file,
|  | const uint32 * | byte_range_array,
|  | uint32 | size_of_array,
|  | const Signature & | signature,
|  | const void * | client_data
| ) |  |
| pure virtual

用于启动自定义摘要计算的回调函数，主要用于初始化计算过程。

参数

  [in] | file | 签名时，这表示要签名的源文件对象。 验证签名字段时，这表示要验证的源文件对象。
  [in] | byte_range_array | 已签名文档（非源文档）的字节范围数组。 此数组中的元素总是成对的偏移-大小值，顺序为： offset,size,offset,size...
  [in] | size_of_array | 字节范围数组byte_range_array中的元素数量。
  [in] | signature | 签名对象。
  [in] | client_data | 用户定义的对象，由用户从函数 Signature::StartSign、Signature::StartVerify传递。

返回
  true表示成功启动计算过程，然后将触发 SignatureCallback::ContinueCalcDigest以继续计算过程。 false表示启动计算过程失败。

## ◆ VerifySigState()

virtual uint32 foxit::pdf::SignatureCallback::VerifySigState | ( | const void * | digest,
|  | uint32 | digest_length,
|  | const void * | signed_data,
|  | uint32 | signed_data_len,
|  | void * | client_data
| ) |  |
| pure virtual

用于验证签名完整性并返回验证状态的回调函数。

宿主应用程序为自定义签名机制提供此回调函数。 此回调函数将在签名验证过程中被触发。
从7.0版本开始，此回调函数仅用于验证签名的完整性。 有关更多详细信息，请查看有关返回值的注释。

参数

  [in] | digest | 要验证的源文件缓冲区的摘要数据缓冲区。
  [in] | digest_length | 摘要数据缓冲区的大小。
  [in] | signed_data | 签名数据缓冲区。
  [in] | signed_data_len | 签名数据缓冲区的大小。
  [in] | client_data | 用户定义的对象，由用户从函数 Signature::StartSign或Signature::StartVerify传递。

返回
  验证状态：
  - 请单独返回Signature::e_StateVerifyNoChange以表示 文档在签名范围内未被更改。
  - 否则，请单独返回Signature::e_StateVerifyChange或与其他错误状态值组合。