Fungsi CryptImportPublicKeyInfo (wincrypt.h)
Sintaks
BOOL CryptImportPublicKeyInfo(
[in] HCRYPTPROV hCryptProv,
[in] DWORD dwCertEncodingType,
[in] PCERT_PUBLIC_KEY_INFO pInfo,
[out] HCRYPTKEY *phKey
);
Parameter
[in] hCryptProv
Handel penyedia layanan kriptografi (CSP) untuk digunakan saat mengimpor kunci publik. 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.
[out] phKey
Alamat variabel HCRYPTKEY yang menerima handel kunci umum yang diimpor. Setelah Anda selesai menggunakan kunci umum, lepaskan handel dengan memanggil fungsi CryptDestroyKey .
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol (TRUE).
Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE). Untuk informasi kesalahan yang diperluas, hubungi GetLastError.
Menampilkan kode | Deskripsi |
---|---|
|
Fungsi impor yang dapat diinstal atau didaftarkan tidak dapat ditemukan untuk parameter dwCertEncodingType dan pInfo-Algorithm.pszObjId> 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
Persyaratan | Nilai |
---|---|
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 |