Поделиться через


Функция 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, которая содержит URL-адрес TSA, в который отправляется запрос.

dwRetrievalFlags

Набор флагов, указывающих способ извлечения метки времени.

Значение Значение
TIMESTAMP_DONT_HASH_DATA
0x00000001
Блокирует вычисление хэша в массиве байтов, на который указывает параметр pbData .
TIMESTAMP_VERIFY_CONTEXT_SIGNATURE
0x00000020
Принудительное применение проверки подписи для полученной метки времени.
Примечание Флаг TIMESTAMP_VERIFY_CONTEXT_SIGNATURE действителен, только если член fRequestCertsCRYPT_TIMESTAMP_PARA , на который указывает параметр pPara , имеет значение TRUE.
 
TIMESTAMP_NO_AUTH_RETRIEVAL
0x00020000
Установите этот флаг, чтобы запретить обработку автоматической проверки подлинности.

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 .

Присвойте этому параметру значение NULL , если сертификат подписателя TSA не требуется.

[out, optional] phStore

Дескриптор хранилища сертификатов, инициализированного сертификатами из ответа метки времени. Это хранилище можно использовать для проверки сертификата подписателя ответа метки времени.

Этот параметр может иметь значение NULL , если сертификаты поддержки TSA не требуются. Завершив использование этого дескриптора, отпустите его, передав его в функцию CertCloseStore .

Возвращаемое значение

Если функции не удается получить, декодировать и проверить контекст метки времени, она возвращает значение FALSE. Для получения дополнительных сведений об ошибке вызовите функцию GetLastError .

Требования

   
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincrypt.h
DLL Crypt32.dll

См. также раздел

CryptVerifyTimeStampSignature