IX509SignatureInformation::GetSignatureAlgorithm method (certenroll.h)

Metode GetSignatureAlgorithm mengambil pengidentifikasi objek algoritma penandatanganan (OID).

Sintaks

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

Parameter

[in] Pkcs7Signature

Variabel VARIANT_BOOL yang menentukan apakah algoritma akan digunakan untuk menandatangani permintaan sertifikat PKCS #7 atau CMC.

[in] SignatureKey

Variabel VARIANT_BOOL yang menentukan apakah algoritma yang hanya digunakan untuk penandatanganan lebih disukai ketika OID algoritma dikaitkan dengan lebih dari satu tujuan. Misalnya, XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) dapat digunakan untuk penandatanganan dan pertukaran kunci.

[out] ppValue

Alamat variabel yang menerima penunjuk ke antarmuka IObjectId yang mewakili OID algoritma.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan S_OK.

Jika fungsi gagal, fungsi mengembalikan nilai HRESULT yang menunjukkan kesalahan. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.

Mengembalikan kode/nilai Deskripsi
CERTSRV_E_PROPERTY_EMPTY
OID algoritma hashing, atau properti NullSigned belum ditentukan tetapi OID algoritma penandatanganan tidak dapat ditemukan.
CRYPT_E_UNKNOWN_ALGO
Algoritma tanda tangan gabungan tidak dapat ditemukan.

Keterangan

Metode ini mencari algoritma penandatanganan cache yang konsisten dengan parameter input. Jika tidak ada yang ditemukan, metode ini menggunakan parameter input ditambah nilai yang ditetapkan ke berbagai properti IX509SignatureInformation seperti yang ditunjukkan oleh daftar berikut.

  • Pkcs7Signature = true, NullSigned = true

    Kasus ini mewakili permintaan sertifikat PKCS #7 yang ditandatangani null. Metode mengembalikan OID XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2).

  • Pkcs7Signature = true, NullSigned = false

    Kasus ini mengambil OID algoritma tanda tangan diskrit untuk permintaan PKCS #7 yang tidak ditandatangani null. Tanda tangan diskrit mengharuskan properti HashAlgorithm dan PublicKeyAlgorithm diatur. Dalam kasus khusus di mana algoritma kunci publik XCN_OID_X957_DSA dan algoritma hashing tidak XCN_OID_OIWSEC_sha1, algoritma tanda tangan OID yang diambil XCN_OID_X957_SHA1DSA (1.2.840.10040.4.3).

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

    Kasus ini mengambil OID algoritma tanda tangan diskrit untuk permintaan PKCS #10 dan mengodekan OID algoritma hash di properti Parameter . Properti HashAlgorithm dan PublicKeyAlgorithm harus diatur.

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

    Kasus ini mengambil OID algoritma tanda tangan diskrit untuk permintaan PKCS #7. Properti HashAlgorithm dan PublicKeyAlgorithm harus diatur.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header certenroll.h
DLL CertEnroll.dll

Lihat juga

IX509SignatureInformation