Bagikan melalui


Fungsi CryptImportPublicKeyInfoEx (wincrypt.h)

Penting API ini tidak digunakan lagi. Perangkat lunak baru dan yang sudah ada harus mulai menggunakan Cryptography Next Generation API. Microsoft dapat menghapus API ini dalam rilis mendatang.
 
Fungsi CryptImportPublicKeyInfoEx mengimpor informasi kunci publik ke penyedia layanan kriptografi (CSP) dan mengembalikan handel kunci publik. Parameter tambahan untuk mengambil alih default disediakan untuk melengkapi parameter dalam CERT_PUBLIC_KEY_INFO.

Sintaks

BOOL CryptImportPublicKeyInfoEx(
  [in]  HCRYPTPROV            hCryptProv,
  [in]  DWORD                 dwCertEncodingType,
  [in]  PCERT_PUBLIC_KEY_INFO pInfo,
  [in]  ALG_ID                aiKeyAlg,
  [in]  DWORD                 dwFlags,
  [in]  void                  *pvAuxInfo,
  [out] HCRYPTKEY             *phKey
);

Parameter

[in] hCryptProv

Handel CSP untuk menerima kunci umum yang diimpor. Handel ini harus sudah dibuat menggunakan CryptAcquireContext.

[in] dwCertEncodingType

Menentukan jenis pengodean yang digunakan. Selalu dapat diterima untuk menentukan jenis pengodean sertifikat dan pesan dengan menggabungkannya dengan operasi bitwise-OR seperti yang ditunjukkan dalam contoh berikut:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Jenis pengodean yang saat ini ditentukan adalah:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pInfo

alamat struktur CERT_PUBLIC_KEY_INFO yang berisi kunci publik untuk diimpor ke penyedia.

Catatan Anggota pzObjId dari anggota Algoritma yang diarahkan oleh parameter pInfo dan dwCertEncodingType menentukan fungsi panggilan balik CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC yang dapat diinstal. Jika fungsi yang dapat diinstal tidak ditemukan, upaya dilakukan untuk mengimpor kunci sebagai Kunci Umum RSA (szOID_RSA_RSA).
 

[in] aiKeyAlg

Struktur ALG_ID yang berisi algoritma khusus CSP untuk mengambil alih algoritma default CALG_RSA_KEYX .

[in] dwFlags

Dicadangkan untuk penggunaan di masa mendatang dan harus nol.

[in] pvAuxInfo

Dicadangkan untuk penggunaan di masa mendatang dan harus NULL.

[out] phKey

Alamat variabel HCRYPTKEY yang menerima handel kunci umum yang diimpor. Setelah Anda selesai menggunakan kunci publik, lepaskan handel dengan memanggil fungsi CryptDestroyKey .

Mengembalikan nilai

Jika fungsi berhasil, fungsi mengembalikan bukan nol (TRUE).

Jika fungsi gagal, fungsi akan mengembalikan nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Catatan Kesalahan dari fungsi yang disebut CryptGetUserKey dan CryptExportKey mungkin disebarluaskan ke fungsi ini. Fungsi ini memiliki kode kesalahan berikut.
 
Nilai Deskripsi
ERROR_FILE_NOT_FOUND
Fungsi impor yang dapat diinstal atau didaftarkan tidak dapat ditemukan untuk parameter dwCertEncodingType dan pInfo yang ditentukan.
 

Jika fungsi gagal, GetLastError dapat mengembalikan kesalahan pengodean/pendekodean Abstract Syntax Notation One (ASN.1). Untuk informasi tentang kesalahan ini, lihat Nilai Pengembalian Pengodean/Pendekodean ASN.1.

Keterangan

Fungsi ini biasanya digunakan untuk mengambil kunci publik dari sertifikat. Ini dilakukan dengan meneruskan struktur CERT_PUBLIC_KEY_INFO dari struktur sertifikat yang diisi seperti yang ditunjukkan dalam pseudocode berikut.

PCCERT_CONTEXT pCertContext

// Get the certificate context structure from a certificate.
pCertContext = CertCreateCertificateContext(...)
if(pCertContext)
{
    HCRYPTKEY hCertPubKey

    // Get the public key information for the certificate.
    CryptImportPublicKeyInfo(
        hCryptProv, 
        X509_ASN_ENCODING, 
        &pCertContext->pCertInfo->SubjectPublicKeyInfo, 
        &hCertPubKey)

    CertFreeCertificateContext(pCertContext)
}

Persyaratan

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header wincrypt.h
Pustaka Crypt32.lib
DLL Crypt32.dll

Lihat juga

CryptExportPublicKeyInfoEx

Fungsi Manajemen Data