Bagikan melalui


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.

Catatan Saat ini satu-satunya nilai yang diizinkan adalah: DRT_PAYLOAD_REVOKED
 

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.

Catatan Saat ini satu-satunya nilai yang diizinkan adalah: DRT_PAYLOAD_REVOKED
 

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

Lihat juga

DRT_SECURITY_MODE

DrtBuka

DrtRegisterKey