Freigeben über


SignerSignEx2-Funktion

Die SignerSignEx2-Funktion signiert und zeitstempelt die angegebene Datei, sodass mehrere geschachtelte Signaturen zugelassen werden.

Hinweis

Diese Funktion verfügt über keine zugeordnete Headerdatei oder Importbibliothek. Um diese Funktion aufzurufen, müssen Sie eine benutzerdefinierte Headerdatei erstellen und die Funktionen LoadLibrary und GetProcAddress zum dynamischen Verknüpfen mit Mssign32.dll verwenden.

 

Syntax

HRESULT WINAPI SignerSignEx2(
  _In_       DWORD                  dwFlags,
  _In_       SIGNER_SUBJECT_INFO    *pSubjectInfo,
  _In_       SIGNER_CERT            *pSignerCert,
  _In_       SIGNER_SIGNATURE_INFO  *pSignatureInfo,
  _In_opt_   SIGNER_PROVIDER_INFO   *pProviderInfo,
  _In_opt_   DWORD                  dwTimestampFlags,
  _In_opt_   PCSTR                  pszTimestampAlgorithmOid,
  _In_opt_   PCWSTR                 pwszHttpTimeStamp,
  _In_opt_   PCRYPT_ATTRIBUTES      psRequest,
  _In_opt_   PVOID                  pSipData,
  _Out_      SIGNER_CONTEXT         **ppSignerContext,
  _In_opt_   PCERT_STRONG_SIGN_PARA pCryptoPolicy,
  _Reserved_ PVOID                  pReserved
);

Parameter

dwFlags [in]

Ändert das Verhalten dieser Funktion.

Wenn es sich bei der zu signierten Datei um eine portable ausführbare Datei (PE) handelt, kann dies null oder eine Kombination aus einem oder mehreren der folgenden Werte sein.

Wert Bedeutung
SPC_EXC_PE_PAGE_HASHES_FLAG
0x10
Ausschließen von Seitenhashes beim Erstellen indirekter SIP-Daten für die PE-Datei. Dieses Flag hat Vorrang vor dem SPC_INC_PE_PAGE_HASHES_FLAG Flag.
Wenn weder das SPC_EXC_PE_PAGE_HASHES_FLAG - noch das SPC_INC_PE_PAGE_HASHES_FLAG-Flag angegeben wird, wird für diese Einstellung der Wert verwendet, der mit der WintrustSetDefaultIncludePEPageHashes-Funktion festgelegt ist. Die Standardeinstellung für diese Einstellung besteht darin, Seitenhashes beim Erstellen indirekter SIP-Daten für PE-Dateien auszuschließen.
Dieser Wert wird in der Headerdatei "Mssip.h" definiert.
Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.
SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
0x20
Dieser Wert wird nicht unterstützt.
SPC_INC_PE_DEBUG_INFO_FLAG
0x40
Dieser Wert wird nicht unterstützt.
SPC_INC_PE_RESOURCES_FLAG
0x80
Dieser Wert wird nicht unterstützt.
SPC_INC_PE_PAGE_HASHES_FLAG
0x100
Schließen Sie Beim Erstellen indirekter SIP-Daten für die PE-Datei Seitenhashes ein.
Windows Server 2003 und Windows XP: Dieser Wert wird nicht unterstützt.
Dieser Wert wird in der Headerdatei "Mssip.h" definiert.
SIG_APPEND
0x1000
Die Signatur wird geschachtelt. Wenn Sie dieses Flag festlegen, bevor eine Signatur hinzugefügt wurde, wird die generierte Signatur als äußere Signatur hinzugefügt. Wenn Sie dieses Flag nicht festlegen, ersetzt die generierte Signatur die äußere Signatur und löscht alle inneren Signaturen.

 

pSubjectInfo [in]

Zeiger auf eine SIGNER_SUBJECT_INFO-Struktur , die den zu signierenden Antragsteller angibt.

pSignerCert [in]

Zeiger auf eine SIGNER_CERT-Struktur , die das Zertifikat angibt, das zum Erstellen der digitalen Signatur verwendet werden soll.

pSignatureInfo [in]

Ein Zeiger auf eine SIGNER_SIGNATURE_INFO-Struktur , die Informationen zur digitalen Signatur enthält.

pProviderInfo [in, optional]

Zeiger auf eine SIGNER_PROVIDER_INFO-Struktur , die den Kryptografiedienstanbieter (Kryptografiedienstanbieter , CSP) und private Schlüsselinformationen angibt, die zum Erstellen der digitalen Signatur verwendet werden.

Wenn der Wert dieses Parameters NULL ist, muss der pSignerCert-Parameter ein Zertifikat angeben, das einem CSP zugeordnet ist.

dwTimestampFlags [in, optional]

Flags, die an SignerTimeStampEx3 übergeben werden, wenn der pwszHttpTimeStamp-Parameter nicht NULL ist. Dies kann einer der folgenden Werte sein.

Wert Bedeutung
SIGNER_TIMESTAMP_AUTHENTICODE
Standardwert. Gibt einen Authenticode-Zeitstempel an.
SIGNER_TIMESTAMP_RFC3161
Gibt einen RFC 3161-Zeitstempel an.

 

Dieser Parameter wird ignoriert, wenn der pwszHttpTimeStamp-ParameterNULL ist.

pszTimestampAlgorithmOid [in, optional]

Objektbezeichner des Algorithmus, der zum Erstellen eines RFC 3161-Zeitstempels verwendet werden soll. Dieser Parameter wird für Authenticode-Zeitstempel ignoriert.

pwszHttpTimeStamp [in, optional]

URL des Zeitstempelservers.

psRequest [in, optional]

Zeiger auf ein Array von CRYPT_ATTRIBUTE Strukturen, die einer Zeichenanforderung hinzugefügt werden. Dieser Parameter wird ignoriert, wenn der pwszHttpTimeStamp-Parameter keinen gültigen Wert enthält oder NULL ist.

pSipData [in, optional]

Ein 32-Bit-Wert, der als zusätzliche Daten an SIP-Funktionen übergeben wird. Format und Inhalt werden vom SIP-Anbieter definiert.

ppSignerContext [out]

Die Adresse eines Zeigers auf die SIGNER_CONTEXT Struktur, die das signierte BLOB enthält. Wenn Sie mit der SIGNER_CONTEXT-Struktur fertig sind, geben Sie die SIGNER_CONTEXT-Struktur frei, indem Sie die SignerFreeSignerContext-Funktion aufrufen.

pCryptoPolicy [in, optional]

Falls vorhanden, ein Zeiger auf eine CERT_STRONG_SIGN_PARA-Struktur , die die Parameter enthält, die zur Überprüfung auf starke Signaturen verwendet werden. Wenn ein Zertifikat oder seine Kette nicht bestanden wird, wird die Datei in keiner Weise geändert. Wenn eine URL übergeben wird, um eine Zeitstempelautorität (Time Stamping Authority, TSA) anzugeben, wird diese Richtlinie auch auf den Zeitstempel angewendet.

Erhalten

Reserviert. Dieser Wert muss NULL sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion S_OK zurück.

Wenn die Funktion fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Mögliche Fehlercodes, die von dieser Funktion zurückgegeben werden, umfassen folgendes, sind jedoch nicht darauf beschränkt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Rückgabecode Beschreibung
E_INVALIDARG
Wenn Sie den dwTimestampFlags-Parameter auf SIGNER_TIMESTAMP_AUTHENTICODE festlegen, können Sie den dwFlags-Parameter nicht auf SIG_APPEND festlegen.

 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2012 [nur Desktop-Apps]
DLL
Mssign32.dll

Weitere Informationen

SignerSign

SignerSignEx

SignerFreeSignerContext