CryptRetrieveTimeStamp 函数对时间戳请求进行编码,并从 URL 指定的位置检索时间戳令牌(TSA)。
Syntax
BOOL CryptRetrieveTimeStamp(
[in] LPCWSTR wszUrl,
DWORD dwRetrievalFlags,
DWORD dwTimeout,
[in] LPCSTR pszHashId,
[in, optional] const CRYPT_TIMESTAMP_PARA *pPara,
[in] const BYTE *pbData,
DWORD cbData,
[out] PCRYPT_TIMESTAMP_CONTEXT *ppTsContext,
[out, optional] PCCERT_CONTEXT *ppTsSigner,
[out, optional] HCERTSTORE *phStore
);
参数
[in] wszUrl
指向以 null 结尾的宽字符串的指针,其中包含要向其发送请求的 TSA 的 URL。
dwRetrievalFlags
一组标志,用于指定如何检索时间戳。
| 价值 | Meaning |
|---|---|
|
禁止对 pbData 参数指向的字节数组进行哈希计算。 |
|
对检索的时间戳强制实施签名验证。
注意仅当 pPara 参数指向的CRYPT_TIMESTAMP_PARA的 fRequestCerts 成员设置为 TRUE 时,TIMESTAMP_VERIFY_CONTEXT_SIGNATURE标志才有效。
|
|
将此标志设置为禁止自动身份验证处理。 |
dwTimeout
一个 DWORD 值,该值指定要等待检索的最大毫秒数。 如果此参数设置为零,则此函数不会超时。
[in] pszHashId
指向包含哈希算法 对象标识符 (OID)的以 null 结尾的字符串的指针。
[in, optional] pPara
指向 CRYPT_TIMESTAMP_PARA 结构的指针,该结构包含请求的其他参数。
[in] pbData
指向要标记的字节数组的指针。
cbData
pbData 参数指向的数组的大小(以字节为单位)。
[out] ppTsContext
指向 PCRYPT_TIMESTAMP_CONTEXT 结构的指针。 使用完上下文后,必须通过调用 CryptMemFree 函数来释放它。
[out, optional] ppTsSigner
指向接收签名者的证书的 PCERT_CONTEXT 的指针。 使用此结构后,必须通过将此指针传递给 CertFreeCertificateContext 函数来释放它。
如果不需要 TSA 签名者的证书,请将此参数设置为 NULL 。
[out, optional] phStore
使用时间戳响应中的证书初始化的证书存储的句柄。 此存储可用于验证时间戳响应的签名者证书。
如果不需要 TSA 支持证书,则此参数可以为 NULL 。 使用此句柄后,请将其传递给 CertCloseStore 函数来释放它。
返回值
如果函数无法检索、解码和验证时间戳上下文,则返回 FALSE。 有关扩展错误信息,请调用 GetLastError 函数。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | wincrypt.h |
| Library | Crypt32.Lib |
| DLL | Crypt32.dll |