Freigeben über


IX509SignatureInformation::GetSignatureAlgorithm-Methode (certenroll.h)

Die GetSignatureAlgorithm-Methode ruft den Signaturalgorithmus-Objektbezeichner (OID) ab.

Syntax

HRESULT GetSignatureAlgorithm(
  [in]  VARIANT_BOOL Pkcs7Signature,
  [in]  VARIANT_BOOL SignatureKey,
  [out] IObjectId    **ppValue
);

Parameter

[in] Pkcs7Signature

Eine VARIANT_BOOL Variable, die angibt, ob der Algorithmus zum Signieren einer PKCS #7- oder CMC-Zertifikatanforderung verwendet wird.

[in] SignatureKey

Eine VARIANT_BOOL Variable, die angibt, ob ein Algorithmus, der nur zum Signieren verwendet wird, bevorzugt wird, wenn einer Algorithmus-OID mehr als einem Zweck zugeordnet ist. Beispielsweise kann XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) sowohl für das Signieren als auch für den Schlüsselaustausch verwendet werden.

[out] ppValue

Adresse einer Variablen, die einen Zeiger auf eine IObjectId-Schnittstelle empfängt, die die Algorithmus-OID darstellt.

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ögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Rückgabecode/-wert BESCHREIBUNG
CERTSRV_E_PROPERTY_EMPTY
Die Hashalgorithmus-OID oder die NullSigned-Eigenschaft wurde nicht angegeben, aber die Signaturalgorithmus-OID kann nicht gefunden werden.
CRYPT_E_UNKNOWN_ALGO
Der kombinierte Signaturalgorithmus konnte nicht gefunden werden.

Hinweise

Diese Methode sucht nach einem zwischengespeicherten Signaturalgorithmus, der mit den Eingabeparametern konsistent ist. Wenn keine gefunden wird, verwendet die Methode die Eingabeparameter plus die Werte, die verschiedenen IX509SignatureInformation-Eigenschaften zugewiesen sind, wie in der folgenden Liste angegeben.

  • Pkcs7Signature = true, NullSigned = true

    Dieser Fall stellt eine MIT NULL signierte PKCS #7-Zertifikatanforderung dar. Die Methode gibt die XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2) OID zurück.

  • Pkcs7Signature = true, NullSigned = false

    In diesem Fall wird eine diskrete Signaturalgorithmus-OID für eine PKCS #7-Anforderung abgerufen, die nicht nullsigniert ist. Für die diskrete Signatur müssen die Eigenschaften HashAlgorithm und PublicKeyAlgorithm festgelegt werden. In dem Sonderfall, in dem der Algorithmus für öffentliche Schlüssel XCN_OID_X957_DSA und der Hashalgorithmus nicht XCN_OID_OIWSEC_sha1 ist, wird die abgerufene Signaturalgorithmus-OID XCN_OID_X957_SHA1DSA (1.2.840.10040.4.3).

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = true

    In diesem Fall wird eine diskrete Signaturalgorithmus-OID für eine PKCS #10-Anforderung abgerufen und die Hashalgorithmus-OID in der Parameters-Eigenschaft codiert. Die Eigenschaften HashAlgorithm und PublicKeyAlgorithm müssen festgelegt werden.

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = false

    In diesem Fall wird eine diskrete Signaturalgorithmus-OID für eine PKCS #7-Anforderung abgerufen. Die Eigenschaften HashAlgorithm und PublicKeyAlgorithm müssen festgelegt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certenroll.h
DLL CertEnroll.dll

Weitere Informationen

IX509SignatureInformation