struktur DRT_SECURITY_PROVIDER (drt.h)
Struktur DRT_SECURITY_PROVIDER mendefinisikan antarmuka DRT yang harus diimplementasikan oleh penyedia keamanan.
Sintaks
typedef struct drt_security_provider_tag {
PVOID pvContext;
HRESULT( )(const PVOID pvContext) *Attach;
VOID( )(const PVOID pvContext) *Detach;
HRESULT()(const PVOID pvContext, const DRT_REGISTRATION *pRegistration,PVOID pvKeyContext) * RegisterKey;
HRESULT()(const PVOID pvContext, const DRT_DATA *pKey,PVOID pvKeyContext) * UnregisterKey;
HRESULT( pvContext,DRT_DATA *pSecuredAddressPayload,DRT_DATA *pCertChain,DRT_DATA *pClassifier,DRT_DATA *pNonce,DRT_DATA *pSecuredPayload,BYTE *pbProtocolMajor,BYTE *pbProtocolMinor,DRT_DATA *pKey,DRT_DATA *pPayload,CERT_PUBLIC_KEY_INFO **ppPublicKey,SOCKET_ADDRESS_LIST **ppAddressList,DWORD *pdwFlags) * )(const PVOIDValidateAndUnpackPayload;
HRESULT( PVOID pvContext,PVOID pvKeyContext,BYTE bProtocolMajor,BYTE bProtocolMinor,DWORD dwFlags, const DRT_DATA *pKey, const DRT_DATA *pPayload, const SOCKET_ADDRESS_LIST *pAddressList, const DRT_DATA *pNonce,DRT_DATA *pSecuredAddressPayload,DRT_DATA *pClassifier,DRT_DATA *pSecuredPayload,DRT_DATA *pCertChain) * )(constSecureAndPackPayload;
void( )(const PVOID pvContext,PVOID pv) *FreeData;
HRESULT(onst PVOID pvContext, const DRT_DATA *pRemoteCredential,DWORD dwBuffers,DRT_DATA *pDataBuffers,DRT_DATA *pEncryptedBuffers,DRT_DATA *pKeyToken) * )(cEncryptData;
HRESULT((const PVOID pvContext,DRT_DATA *pKeyToken, const PVOID pvKeyContext,DWORD dwBuffers,DRT_DATA *pData) * )DecryptData;
HRESULT()(const PVOID pvContext,DRT_DATA *pSelfCredential) * GetSerializedCredential;
HRESULT()(const PVOID pvContext,DRT_DATA *pRemoteCredential) * ValidateRemoteCredential;
HRESULT(const PVOID pvContext,DWORD dwBuffers,DRT_DATA *pDataBuffers,DRT_DATA *pKeyIdentifier,DRT_DATA *pSignature) * )(SignData;
HRESULT(onst PVOID pvContext,DWORD dwBuffers,DRT_DATA *pDataBuffers,DRT_DATA *pRemoteCredentials,DRT_DATA *pKeyIdentifier,DRT_DATA *pSignature) * )(cVerifyData;
} DRT_SECURITY_PROVIDER, *PDRT_SECURITY_PROVIDER;
Anggota
pvContext
Anggota ini ditentukan oleh aplikasi saat meneruskan struktur DRT_SECURITY_PROVIDER ke fungsi DrtOpen .
DRT memperlakukannya sebagai penunjuk buram, dan meneruskannya sebagai parameter pertama ke fungsi yang direferensikan oleh struktur ini. Aplikasi akan menggunakan ini sebagai penunjuk ke status penyedia keamanan atau ke objek yang mengimplementasikan fungsionalitas penyedia keamanan.
Attach
Menaikkan jumlah referensi untuk Penyedia Keamanan dengan sekumpulan DRT.
pvContext
Arahkan ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
Detach
Mengurangi jumlah referensi untuk Penyedia Keamanan dengan sekumpulan DRT.
pvContext
Arahkan ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
RegisterKey
Dipanggil untuk mendaftarkan kunci dengan Penyedia Keamanan.
pvContext
Arahkan ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pRegistration
Arahkan ke struktur DRT_REGISTRATION yang dibuat oleh aplikasi dan diteruskan ke fungsi DrtRegisterKey .
pvKeyContext
Arahkan ke data konteks yang dibuat oleh aplikasi dan diteruskan ke fungsi DrtRegisterKey .
UnregisterKey
Dipanggil untuk membatalkan pendaftaran kunci dengan Penyedia Keamanan.
pvContext
Arahkan ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pKey
Arahkan ke kunci tempat payload didaftarkan.
pvKeyContext
Arahkan ke data konteks yang dibuat oleh aplikasi dan diteruskan ke DrtRegisterKey.
ValidateAndUnpackPayload
Dipanggil ketika pesan Otoritas diterima pada kawat. Ini bertanggung jawab untuk memvalidasi data yang diterima, dan untuk membongkar alamat layanan, bendera yang dicabut, dan nonce dari Payload Alamat Aman.
pvContext
Arahkan ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pSecuredAddressPayload
Arahkan ke payload yang diterima pada kawat yang berisi alamat layanan, bendera yang dicabut, nonce, dan data lain yang diperlukan oleh penyedia keamanan.
pCertChain
Penunjuk ke rantai sertifikasi yang diterima dalam pesan otoritas.
pClassifier
Penunjuk ke pengklasifikasi yang diterima dalam pesan otoritas
pNonce
Arahkan ke nonce yang dikirim dalam pesan Inquire atau Lookup asli. Nilai ini harus dibandingkan dengan nilai yang disematkan dalam Payload Alamat Aman untuk memastikan nilainya sama. Nilai ini diperbaiki pada 16 byte.
pSecuredPayload
Arahkan ke payload data aplikasi yang diterima dalam pesan Otoritas. Setelah validasi, data asli (setelah dekripsi, penghapusan tanda tangan, dan sebagainya.) adalah output sebagai pPayload.
pbProtocolMajor
Penunjuk ke array byte yang mewakili versi utama protokol. Ini dikemas dalam setiap paket DRT untuk mengidentifikasi versi penyedia keamanan yang digunakan ketika satu instans DRT mendukung beberapa Penyedia Keamanan.
pbProtocolMinor
Penunjuk ke array byte yang mewakili protokol versi minor. Ini dikemas dalam setiap paket DRT untuk mengidentifikasi versi penyedia keamanan yang digunakan ketika satu instans DRT mendukung beberapa Penyedia Keamanan.
pKey
Arahkan ke kunci tempat payload didaftarkan.
pPayload
Arahkan ke payload asli yang ditentukan oleh aplikasi jarak jauh. pPayload.pb dialokasikan oleh penyedia keamanan.
ppPublicKey
Arahkan ke penunjuk ke jumlah alamat layanan yang disematkan dalam payload alamat aman.
ppAddressList
Arahkan ke penunjuk ke alamat layanan yang disematkan di Payload Alamat Aman. pAddresses dialokasikan oleh penyedia keamanan.
pdwFlags
Setiap bendera DRT yang saat ini didefinisikan hanya untuk menjadi bendera yang dicabut atau dihapus yang perlu dibongkap untuk pemrosesan instans DRT lokal.
SecureAndPackPayload
Dipanggil ketika pesan Otoritas akan dikirim pada kawat. Ini bertanggung jawab untuk mengamankan data sebelum dikirim, dan untuk mengemas alamat layanan, bendera yang dicabut, nonce, dan data aplikasi lainnya ke dalam Payload Alamat Aman.
pvContext
Arahkan ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pvKeyContext
Berisi konteks yang diteruskan ke DrtRegisterKey ketika kunci terdaftar.
bProtocolMajor
Penunjuk ke array byte yang mewakili versi utama protokol.
bProtocolMinor
Penunjuk ke array byte yang mewakili protokol versi minor.
dwFlags
Setiap bendera khusus DRT, saat ini hanya didefinisikan sebagai bendera yang dicabut atau dihapus yang perlu dikemas, diamankan, dan dikirim ke instans lain untuk diproses.
pKey
Arahkan ke kunci tempat payload ini didaftarkan.
pPayload
Arahkan ke payload yang ditentukan oleh aplikasi saat memanggil DrtRegisterKey.
pAddressList
Arahkan ke alamat layanan yang ditempatkan di Payload Alamat Aman.
pNonce
Arahkan ke nonce yang dikirim dalam pesan Inquire atau Lookup asli. Nilai ini diperbaiki pada 16 byte.
pSecuredAddressPayload
Arahkan ke payload untuk mengirim kawat yang berisi alamat layanan, bendera yang dicabut, nonce, dan data lain yang diperlukan oleh penyedia keamanan. pSecuredAddressPayload.pb dialokasikan oleh penyedia keamanan.
pClassifier
Arahkan ke pengklasifikasi untuk dikirim dalam pesan Otoritas. pClassifier.pb dialokasikan oleh penyedia keamanan.
pSecuredPayload
Arahkan ke payload data aplikasi yang diterima dalam pesan Otoritas. Setelah validasi, data asli (setelah dekripsi, penghapusan tanda tangan, dan sebagainya.) adalah output sebagai pPayload. pSecuredPayload.pb dialokasikan oleh penyedia keamanan.
pCertChain
Arahkan ke rantai sertifikasi untuk dikirim dalam pesan Otoritas. pCertChain.pb dialokasikan oleh penyedia keamanan.
FreeData
Dipanggil untuk merilis sumber daya yang sebelumnya dialokasikan untuk fungsi penyedia keamanan.
pvContext
Penunjuk ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
Pv
Menentukan data apa yang akan dibebaskan.
EncryptData
Dipanggil ketika DRT mengirim pesan yang berisi data yang harus dienkripsi. Fungsi ini hanya dipanggil ketika DRT beroperasi dalam mode keamanan DRT_SECURE_CONFIDENTIALPAYLOAD yang ditentukan oleh DRT_SECURITY_MODE.
pvContext
Penunjuk ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pRemoteCredential
Berisi kredensial serekan yang akan menerima pesan yang dilindungi.
dwBuffers
Berisi panjang pDataBuffers dan pEncryptedBuffers.
pDataBuffers
Berisi buffer yang tidak terenkripsi.
pEncryptedBuffers
Berisi konten terenkripsi setelah menyelesaikan fungsi.
pKeyToken
Berisi kunci sesi terenkripsi yang dapat didekripsi oleh penerima pesan dan digunakan untuk mendekripsi bidang yang dilindungi.
DecryptData
Dipanggil ketika DRT menerima pesan yang berisi data terenkripsi. Fungsi ini hanya dipanggil ketika DRT beroperasi dalam mode keamanan DRT_SECURE_CONFIDENTIALPAYLOAD yang ditentukan oleh DRT_SECURITY_MODE.
pvContext
Penunjuk ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pKeyToken
Berisi kunci sesi terenkripsi yang dapat didekripsi oleh penerima pesan dan digunakan untuk mendekripsi bidang yang dilindungi.
pvKeyContext
Berisi konteks yang diteruskan ke DrtRegisterKey saat kunci didaftarkan.
dwBuffers
Berisi ukuran buffer pData .
pData
Berisi data yang didekripsi setelah menyelesaikan fungsi.
GetSerializedCredential
Dipanggil ketika DRT harus memberikan kredensial yang digunakan untuk mengotorisasi simpul lokal. Fungsi ini hanya dipanggil ketika DRT beroperasi dalam mode keamanan DRT_SECURE_MEMBERSHIP dan DRT_SECURE_CONFIDENTIALPAYLOAD yang ditentukan oleh DRT_SECURITY_MODE.
pvContext
Penunjuk ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pSelfCredential
Berisi kredensial berseri setelah penyelesaian fungsi.
ValidateRemoteCredential
Dipanggil ketika DRT harus memvalidasi kredensial yang disediakan oleh simpul serekan.
pvContext
Penunjuk ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
pRemoteCredential
Berisi kredensial berseri yang disediakan oleh simpul serekan.
SignData
Dipanggil ketika DRT harus menandatangani blob data untuk dimasukkan dalam pesan protokol DRT. Fungsi ini hanya dipanggil ketika DRT beroperasi dalam mode keamanan DRT_SECURE_MEMBERSHIP dan DRT_SECURE_CONFIDENTIALPAYLOAD yang ditentukan oleh DRT_SECURITY_MODE.
pvContext
Penunjuk ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
dwBuffers
Berisi ukuran buffer pDataBuffers .
pDataBuffers
Berisi data yang akan ditandatangani.
pKeyIdentifier
Setelah menyelesaikan fungsi ini, berisi indeks yang dapat digunakan untuk memilih dari beberapa kredensial untuk digunakan dalam menghitung tanda tangan.
pSignature
Setelah menyelesaikan fungsi ini, berisi data tanda tangan.
VerifyData
Dipanggil ketika DRT harus memverifikasi tanda tangan yang dihitung melalui blok data yang disertakan dalam pesan DRT. Fungsi ini hanya dipanggil ketika DRT beroperasi dalam mode keamanan DRT_SECURE_MEMBERSHIP dan DRT_SECURE_CONFIDENTIALPAYLOAD yang ditentukan oleh DRT_SECURITY_MODE.
pvContext
Penunjuk ke nilai yang dipegang oleh anggota pvContextdari DRT_SECURITY_PROVIDER.
dwBuffers
Berisi ukuran buffer pDataBuffers .
pDataBuffers
Berisi data tempat tanda tangan dihitung.
pRemoteCredentials
Berisi kredensial simpul jarak jauh yang digunakan untuk menghitung tanda tangan.
pKeyIdentifier
Berisi indeks yang dapat digunakan untuk memilih dari beberapa kredensial yang disediakan dalam pRemoteCredentials.
pSignature
Berisi tanda tangan yang akan diverifikasi.
Persyaratan
Klien minimum yang didukung | Windows 7 Professional [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Header | drt.h |