CryptRetrieveTimeStamp 函数 (wincrypt.h)
CryptRetrieveTimeStamp 函数对时间戳请求进行编码,并从 URL 指定的位置检索时间戳令牌,该位置指向时间戳机构 (TSA) 。
语法
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
一组指定如何检索时间戳的标志。
值 | 含义 |
---|---|
|
禁止对 pbData 参数指向的字节数组进行哈希计算。 |
|
对检索到的时间戳强制实施签名验证。
注意仅当 pPara 参数指向的CRYPT_TIMESTAMP_PARA的 fRequestCerts 成员设置为 TRUE 时,TIMESTAMP_VERIFY_CONTEXT_SIGNATURE标志才有效。
|
|
设置此标志以禁止自动身份验证处理。 |
dwTimeout
一个 DWORD 值,该值指定等待检索的最大毫秒数。 如果此参数设置为零,则此函数不会超时。
[in] pszHashId
指向以 null 结尾的字符串的指针,该字符串包含 OID) (哈希算法 对象标识符 。
[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 函数。
要求
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | wincrypt.h |
DLL | Crypt32.dll |