Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi berikut adalah salah satu fungsi CryptoAPI yang dapat diperluas.
| Fungsi CryptoAPI | Nama fungsi OID mendefinisikan | String nama fungsi OID |
|---|---|---|
| CryptEncodeObject | CRYPT_OID_ENCODE_ OBJECT_FUNC |
"CryptDllEncodeObject" |
| CryptDecodeObject | CRYPT_OID_DECODE_ OBJECT_FUNC |
"CryptDllDecodeObject" |
| CertOpenStore | CRYPT_OID_OPEN_ STORE_PROV_FUNC |
"CertDllOpenStoreProv" |
| CertVerifyCTLUsage | CRYPT_OID_VERIFY_ CTL_USAGE_FUNC |
"CertDllVerifyCTLUsage" |
| CertVerifyRevocation | CRYPT_OID_VERIFY_ REVOCATION_FUNC |
"CertDllVerifyRevocation" |
Dalam penggunaan normal dengan jenis OID dan pengodean yang ada, kode dalam fungsi CryptoAPI, itu sendiri, digunakan. Jika salah satu fungsi ini dipanggil dengan OID dan jenis pengodean yang kode dalam fungsi CryptoAPI tidak dirancang untuk menangani, fungsi baru, yang berisi fungsionalitas baru, harus dibuat dalam DLL. DLL tersebut harus didaftarkan dalam registri atau diinstal dalam memori.
Ketika salah satu fungsi yang tercantum dipanggil dengan jenis OID dan pengodean yang baru ditunjuk, kode dalam DLL baru digunakan daripada kode yang disediakan sebagai bagian dari fungsi CryptoAPI.
Nama fungsi yang baru dikembangkan dapat menjadi nama yang tercantum di bawah "string nama fungsi OID" di tabel sebelumnya atau nama yang berbeda dapat diberikan ketika kode fungsi baru terdaftar.
Fungsi baru harus menggunakan prototipe yang sesuai. Dalam semua kasus kecuali certOpenStore, prototipe ini sama dengan fungsi CryptoAPI yang memanggil fungsi baru. Dalam kasus CertOpenStore , prototipe adalah sebagai berikut.
#include <windows.h>
BOOL WINAPI CertDllOpenStoreProv(
IN LPCSTR lpszStoreProvider,
IN DWORD dwEncodingType,
IN HCRYPTPROV hCryptProv,
IN DWORD dwFlags,
IN const void *pvPara,
IN HCERTSTORE hCertStore,
IN OUT PCERT_STORE_PROV_INFO pStoreProvInfo
);
Catatan
Jika prototipe tidak cocok, tumpukan sistem akan rusak.
Selain menyediakan kode untuk fungsi baru dalam DLL, memperluas fungsionalitas CryptEncodeObject atau CryptDecodeObject memerlukan definisi jenis agar struktur data C baru ditempatkan dalam file header yang disertakan saat program pengguna dikompilasi.