Foxit PDF SDK

Public 成员函数 | 静态 Public 属性 | 所有成员列表
FSDK::SignatureCallback类 参考

## Public 成员函数
| CheckCertificateValidity (cert_path, cert_password, client_data)
| 用于检查证书有效性的回调函数。 更多...
| ContinueCalcDigest (client_data, pause)
| 用于继续自定义摘要计算过程的回调函数。 更多...
| GetDigest (client_data)
| 用于在计算过程完成后获取摘要的回调函数。 更多...
| Release ()
| 用于释放当前回调对象本身的回调函数。 更多...
| Sign (digest, digest_length, cert_file_stream, cert_password, digest_algorithm, client_data)
| 用于执行签名并返回签名数据的回调函数。 更多...
| Sign (digest, digest_length, cert_path, cert_password, digest_algorithm, client_data)
| 用于执行签名并返回签名数据的回调函数。 更多...
| StartCalcDigest (file, byte_range_array, size_of_array, signature, client_data)
| 用于启动自定义摘要计算的回调函数，主要用于初始化计算过程。 更多...
| VerifySigState (digest, digest_length, signed_data, signed_data_len, client_data) IsNeedPadData()
| 用于验证签名完整性并返回验证状态的回调函数。 更多...

## 静态 Public 属性
static | e_CertCannotGetPrivateKey
| 无法获取证书的私钥。
static | e_CertDataError
| 证书数据错误。
static | e_CertExpired
| 证书已过期。
static | e_CertInvalidPassword
| 证书密码错误。
static | e_CertInvalidPath
| 证书路径错误。
static | e_CertNotSet
| 证书未设置以签署签名。
static | e_CertUnsupportType
| 证书不支持的类型。
static | e_CertValid
| 证书有效性的枚举。 更多...

## 详细描述

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

参见
  FSDK.Library

## 成员函数说明

## ◆ CheckCertificateValidity()

FSDK::SignatureCallback::CheckCertificateValidity | ( | cert_path | ,
|  | cert_password | ,
|  | client_data |
| ) |  |

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

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

参数

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

返回
  证书有效性。请参考从 FSDK.SignatureCallback.e_CertValid 开始的值， 这应该是这些值之一。

## ◆ ContinueCalcDigest()

FSDK::SignatureCallback::ContinueCalcDigest | ( | client_data | ,
|  | pause |
| ) |  |

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

参数

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

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

## ◆ GetDigest()

FSDK::SignatureCallback::GetDigest | ( | client_data |  | ) |

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

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

参数

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

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

## ◆ Release()

FSDK::SignatureCallback::Release | ( |  | ) |

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

返回
  无。

## ◆ Sign() [1/2]

FSDK::SignatureCallback::Sign | ( | digest | ,
|  | digest_length | ,
|  | cert_file_stream | ,
|  | cert_password | ,
|  | digest_algorithm | ,
|  | client_data |
| ) |  |

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

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

参数

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

返回
  已签名数据。如果有任何错误，请返回空字符串。
  返回的已签名数据的长度应在签名内容的默认长度内， 默认为 7942，或在签署未签名的签名之前由函数 FSDK.Signature.SetDefaultContentsLength 指定。

## ◆ Sign() [2/2]

FSDK::SignatureCallback::Sign | ( | digest | ,
|  | digest_length | ,
|  | cert_path | ,
|  | cert_password | ,
|  | digest_algorithm | ,
|  | client_data |
| ) |  |

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

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

参数

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

返回
  已签名数据。如果有任何错误，请返回空字符串。
  返回的已签名数据的长度应在签名内容的默认长度内， 默认为 7942，或在签署未签名的签名之前由函数 FSDK.Signature.SetDefaultContentsLength 指定。

## ◆ StartCalcDigest()

FSDK::SignatureCallback::StartCalcDigest | ( | file | ,
|  | byte_range_array | ,
|  | size_of_array | ,
|  | signature | ,
|  | client_data |
| ) |  |

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

参数

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

返回
  true 表示计算过程已成功启动，然后将触发 FSDK.SignatureCallback.ContinueCalcDigest 以继续计算过程。 false 表示无法启动计算过程。

## ◆ VerifySigState()

FSDK::SignatureCallback::VerifySigState | ( | digest | ,
|  | digest_length | ,
|  | signed_data | ,
|  | signed_data_len | ,
|  | client_data |
| ) |  |

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

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

参数

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

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

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

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

## 类成员变量说明

## ◆ e_CertValid

FSDK::SignatureCallback::e_CertValid
| static

证书有效性的枚举。

此枚举的值应单独使用。

证书有效。