Foxit PDF SDK
foxit.pdf.SignatureCallback类 参考

继承自 SystemIDisposable .

Public 类型

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

Public 成员函数

virtual SignatureCallback.CertValidity CheckCertificateValidity (string cert_path, byte[] cert_password, global::System.IntPtr client_data)
 用于检查证书有效性的回调函数。 更多...
 
virtual Progressive.State ContinueCalcDigest (global::System.IntPtr client_data, PauseCallback pause)
 用于继续自定义摘要计算过程的回调函数。 更多...
 
virtual byte [] GetDigest (global::System.IntPtr client_data)
 用于在计算过程完成后获取摘要的回调函数。 更多...
 
virtual bool IsNeedPadData ()
 用于检查在调用回调函数SignatureCallback.VerifySigState 时 是否返回所有带有填充零的内容的回调函数。 更多...
 
virtual void Release ()
 用于释放当前回调对象自身的回调函数。 更多...
 
virtual byte [] Sign (global::System.IntPtr digest, int digest_length, string cert_path, byte[] cert_password, Signature.DigestAlgorithm digest_algorithm, global::System.IntPtr client_data)
 用于执行签名并返回签名数据的回调函数。 更多...
 
virtual byte [] Sign (global::System.IntPtr digest, int digest_length, StreamCallback cert_file_stream, byte[] cert_password, Signature.DigestAlgorithm digest_algorithm, global::System.IntPtr client_data)
 用于执行签名并返回签名数据的回调函数。 更多...
 
virtual bool StartCalcDigest (FileReaderCallback file, System.IntPtr byte_range_array, int size_of_array, Signature signature, global::System.IntPtr client_data)
 用于启动自定义摘要计算的回调函数,主要用于初始化计算过程。 更多...
 
virtual uint VerifySigState (global::System.IntPtr digest, int digest_length, global::System.IntPtr signed_data, int signed_data_len, global::System.IntPtr client_data)
 用于验证签名完整性并返回验证状态的回调函数。 更多...
 

详细描述

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

参见
foxit.common.Library

成员枚举类型说明

◆ CertValidity

证书有效性的枚举。

此枚举的值应单独使用。

枚举值
e_CertValid 

证书有效。

e_CertExpired 

证书已过期。

e_CertUnsupportType 

证书是不支持的类型。

e_CertDataError 

证书数据错误。

e_CertInvalidPassword 

证书密码错误。

e_CertInvalidPath 

证书路径错误。

e_CertNotSet 

证书未设置为签名。

e_CertCannotGetPrivateKey 

无法获取证书的私钥。

成员函数说明

◆ CheckCertificateValidity()

SignatureCallback.CertValidity foxit.pdf.SignatureCallback.CheckCertificateValidity ( string  cert_path,
byte []  cert_password,
global::System.IntPtr  client_data 
)
inlinevirtual

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

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

参数
[in]cert_path将用于签名的证书文件的完整路径(包括文件名和扩展名)。 这是用户从函数Signature.StartSign 传递的。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。这是用户从函数Signature.StartSign 传递的。
[in]client_data用户定义的对象,由用户从函数Signature.StartSign 传递。
返回
证书有效性。请参考从foxit.pdf.SignatureCallback.CertValidity.e_CertValid 开始的值, 应为这些值中的一个。

◆ ContinueCalcDigest()

Progressive.State foxit.pdf.SignatureCallback.ContinueCalcDigest ( global::System.IntPtr  client_data,
PauseCallback  pause 
)
inlinevirtual

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

参数
[in]pause决定计算过程是否需要暂停的暂停对象。 如果为null,表示在计算过程中不暂停。 如果不为null,请检查此输入参数的 函数NeedToPauseNow()的返回值,并决定何时暂停计算过程。
[in]client_data用户定义的对象,由用户从函数 Signature.StartSign Signature.StartVerify 传递。
返回
foxit.common.Progressive.State.e_Finished 表示计算过程已成功完成。
foxit.common.Progressive.State.e_ToBeContinued 表示计算过程尚未完成, 将再次触发回调函数 SignatureCallback.ContinueCalcDigest 以继续该过程。
foxit.common.Progressive.State.e_Error 表示发生任何错误。

◆ GetDigest()

DX_BYTE_ARRAY foxit.pdf.SignatureCallback.GetDigest ( global::System.IntPtr  client_data)
inlinevirtual

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

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

参数
[in]client_data用户定义的对象,由用户从函数 Signature.StartSign Signature.StartVerify 传递。
返回
摘要字符串。 如果出现任何错误,请返回空字符串。

◆ IsNeedPadData()

bool foxit.pdf.SignatureCallback.IsNeedPadData ( )
inlinevirtual

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

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

◆ Release()

void foxit.pdf.SignatureCallback.Release ( )
inlinevirtual

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

返回
None.

◆ Sign() [1/2]

DX_BYTE_ARRAY foxit.pdf.SignatureCallback.Sign ( global::System.IntPtr  digest,
int  digest_length,
string  cert_path,
byte []  cert_password,
Signature.DigestAlgorithm  digest_algorithm,
global::System.IntPtr  client_data 
)
inlinevirtual

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

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

参数
[in]digest要签名的源文件缓冲区的摘要数据缓冲区。
[in]digest_length摘要数据缓冲区的大小。
[in]cert_path将用于签名的证书文件路径。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从foxit.pdf.Signature.DigestAlgorithm.e_DigestSHA1 开始的值, 这将是这些值中的一个。
[in]client_data用户定义的对象,由用户从函数 Signature.StartSign Signature.StartVerify 传递。
返回
签名数据。如果出现任何错误,请返回空字符串。
返回的签名数据长度应在默认签名内容长度范围内, 默认长度为7942,或在签名未签名的签名之前通过函数Signature.SetDefaultContentsLength 指定的长度。

◆ Sign() [2/2]

DX_BYTE_ARRAY foxit.pdf.SignatureCallback.Sign ( global::System.IntPtr  digest,
int  digest_length,
StreamCallback  cert_file_stream,
byte []  cert_password,
Signature.DigestAlgorithm  digest_algorithm,
global::System.IntPtr  client_data 
)
inlinevirtual

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

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

参数
[in]digest要签名的源文件缓冲区的摘要数据缓冲区。
[in]digest_length摘要数据缓冲区的大小。
[in]cert_file_stream用户实现的foxit.common.fxcrt.StreamCallback 对象, 用于访问将用于签名的证书文件内容。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从foxit.pdf.Signature.DigestAlgorithm.e_DigestSHA1 开始的值, 这将是这些值中的一个。
[in]client_data用户定义的对象,由用户从函数 Signature.StartSign Signature.StartVerify 传递。
返回
签名数据。如果出现任何错误,请返回空字符串。
返回的签名数据长度应在默认签名内容长度范围内, 默认长度为7942,或在签名未签名的签名之前通过函数Signature.SetDefaultContentsLength 指定的长度。

◆ StartCalcDigest()

bool foxit.pdf.SignatureCallback.StartCalcDigest ( FileReaderCallback  file,
System.IntPtr  byte_range_array,
int  size_of_array,
Signature  signature,
global::System.IntPtr  client_data 
)
inlinevirtual

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

参数
[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()

uint foxit.pdf.SignatureCallback.VerifySigState ( global::System.IntPtr  digest,
int  digest_length,
global::System.IntPtr  signed_data,
int  signed_data_len,
global::System.IntPtr  client_data 
)
inlinevirtual

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

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

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