Freigeben über


CryptRetrieveTimeStamp-Funktion (wincrypt.h)

Die CryptRetrieveTimeStamp-Funktion codiert eine Zeitstempelanforderung und ruft das Zeitstempeltoken von einem Ort ab, der von einer URL zu einer Zeitstempelautorität (Time Stamping Authority, TSA) angegeben wurde.

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
);

Die Parameter

[in] wszUrl

Ein Zeiger auf eine mit Null beendete breite Zeichenfolge, die die URL der TSA enthält, an die die Anforderung gesendet werden soll.

dwRetrievalFlags

Eine Reihe von Flags, die angeben, wie der Zeitstempel abgerufen wird.

Wert Bedeutung
TIMESTAMP_DONT_HASH_DATA
0x00000001
Hemmen Sie die Hashberechnung für das Array von Bytes, auf das der PbData-Parameter verweist.
TIMESTAMP_VERIFY_CONTEXT_SIGNATURE
0x00000020
Erzwingen sie die Signaturüberprüfung für den abgerufenen Zeitstempel.
Anmerkung Das TIMESTAMP_VERIFY_CONTEXT_SIGNATURE Flag ist nur gültig, wenn das Element "fRequestCerts " des CRYPT_TIMESTAMP_PARA , auf das der pPara-Parameter verweist, auf TRUE festgelegt ist.
 
TIMESTAMP_NO_AUTH_RETRIEVAL
0x00020000
Legen Sie dieses Kennzeichen fest, um die automatische Authentifizierungsbehandlung zu verhindern.

dwTimeout

Ein DWORD-Wert , der die maximale Anzahl von Millisekunden angibt, die auf den Abruf warten. Wenn dieser Parameter auf Null festgelegt ist, wird für diese Funktion kein Timeout ausgeführt.

[in] pszHashId

Ein Zeiger auf eine mit Null beendete Zeichenfolge, die den Hashalgorithmus-Objektbezeichner (OID) enthält.

[in, optional] pPara

Ein Zeiger auf eine CRYPT_TIMESTAMP_PARA Struktur, die zusätzliche Parameter für die Anforderung enthält.

[in] pbData

Ein Zeiger auf ein Bytearray, das zeitstempelt werden soll.

cbData

Die Größe des Arrays in Bytes, auf das der PbData-Parameter verweist.

[out] ppTsContext

Ein Zeiger auf eine PCRYPT_TIMESTAMP_CONTEXT Struktur. Wenn Sie den Kontext verwendet haben, müssen Sie ihn freigeben, indem Sie die CryptMemFree-Funktion aufrufen.

[out, optional] ppTsSigner

Ein Zeiger auf eine PCERT_CONTEXT , die das Zertifikat des Signierers empfängt. Wenn Sie diese Struktur verwendet haben, müssen Sie ihn freigeben, indem Sie diesen Zeiger an die CertFreeCertificateContext-Funktion übergeben.

Legen Sie diesen Parameter auf NULL fest, wenn das Zertifikat des TSA-Signierers nicht benötigt wird.

[out, optional] phStore

Das Handle eines Zertifikatspeichers, der mit Zertifikaten aus der Zeitstempelantwort initialisiert wurde. Dieser Speicher kann zum Überprüfen des Signierzertifikats der Zeitstempelantwort verwendet werden.

Dieser Parameter kann NULL sein, wenn die TSA-Unterstützenden Zertifikate nicht benötigt werden. Wenn Sie dieses Handle verwendet haben, lassen Sie es los, indem Sie es an die CertCloseStore-Funktion übergeben.

Rückgabewert

Wenn die Funktion den Zeitstempelkontext nicht abrufen, decodieren und überprüfen kann, wird FALSE zurückgegeben. Rufen Sie für erweiterte Fehlerinformationen die GetLastError-Funktion auf.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 7 [Desktop-Apps | UWP-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Fenster
Header wincrypt.h
Library Crypt32.Lib
DLL Crypt32.dll

Siehe auch

CryptVerifyTimeStampSignature