struttura DRT_SECURITY_PROVIDER (drt.h)
La struttura DRT_SECURITY_PROVIDER definisce l'interfaccia DRT che deve essere implementata da un provider di sicurezza.
Sintassi
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;
Members
pvContext
Questo membro viene specificato dall'applicazione quando si passa la struttura DRT_SECURITY_PROVIDER alla funzione DrtOpen .
DRT lo considera come puntatore opaco e lo passa come primo parametro alle funzioni a cui fa riferimento questa struttura. Un'applicazione lo userà come puntatore allo stato del provider di sicurezza o all'oggetto che implementa la funzionalità del provider di sicurezza.
Attach
Incrementa il numero di riferimenti per il provider di sicurezza con un set di drT.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
Detach
Decrementa il numero di riferimenti per il provider di sicurezza con un set di drt.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
RegisterKey
Chiamato per registrare una chiave con il provider di sicurezza.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pRegistration
Puntatore alla struttura DRT_REGISTRATION creata da un'applicazione e passata alla funzione DrtRegisterKey .
pvKeyContext
Puntatore ai dati di contesto creati da un'applicazione e passati alla funzione DrtRegisterKey .
UnregisterKey
Chiamato per annullare la registrazione di una chiave con il provider di sicurezza.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pKey
Puntatore alla chiave a cui è registrato il payload.
pvKeyContext
Puntatore ai dati di contesto creati dall'applicazione e passati a DrtRegisterKey.
ValidateAndUnpackPayload
Chiamato quando viene ricevuto un messaggio di autorità in transito. È responsabile della convalida dei dati ricevuti e della decompressione degli indirizzi del servizio, del flag revocato e del nonce dal payload dell'indirizzo protetto.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pSecuredAddressPayload
Puntatore al payload ricevuto in rete che contiene gli indirizzi del servizio, il flag revocato, il nonce e qualsiasi altro dato richiesto dal provider di sicurezza.
pCertChain
Puntatore alla catena di certificati ricevuta nel messaggio di autorità.
pClassifier
Puntatore al classificatore ricevuto nel messaggio dell'autorità
pNonce
Puntatore al nonce inviato nel messaggio originale di ricerca o di ricerca. Questo valore deve essere confrontato con il valore incorporato nel payload dell'indirizzo protetto per assicurarsi che siano uguali. Questo valore è fisso a 16 byte.
pSecuredPayload
Puntatore al payload dei dati dell'applicazione ricevuto nel messaggio autorità. Dopo la convalida, i dati originali (dopo la decrittografia, la rimozione della firma e così via) vengono restituiti come pPayload.
pbProtocolMajor
Puntatore alla matrice di byte che rappresenta la versione principale del protocollo. Questo pacchetto viene compresso in ogni pacchetto DRT per identificare la versione del provider di sicurezza in uso quando una singola istanza DRT supporta più provider di sicurezza.
pbProtocolMinor
Puntatore alla matrice di byte che rappresenta la versione secondaria del protocollo. Questo pacchetto viene compresso in ogni pacchetto DRT per identificare la versione del provider di sicurezza in uso quando una singola istanza DRT supporta più provider di sicurezza.
pKey
Puntatore alla chiave a cui è registrato il payload.
pPayload
Puntatore al payload originale specificato dall'applicazione remota. pPayload.pb viene allocato dal provider di sicurezza.
ppPublicKey
Puntatore a un puntatore al numero di indirizzi del servizio incorporati nel payload dell'indirizzo protetto.
ppAddressList
Puntatore a un puntatore agli indirizzi del servizio incorporati nel payload dell'indirizzo protetto. pAddresses viene allocato dal provider di sicurezza.
pdwFlags
Tutti i flag DRT attualmente definiti solo come flag revocati o eliminati che devono essere decompressi per l'elaborazione dell'istanza DRT locale.
SecureAndPackPayload
Chiamato quando un messaggio di autorità sta per essere inviato in transito. È responsabile della protezione dei dati prima dell'invio e della compressione degli indirizzi del servizio, del flag revocato, del nonce e di altri dati dell'applicazione nel payload dell'indirizzo protetto.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pvKeyContext
Contiene il contesto passato in DrtRegisterKey quando la chiave è stata registrata.
bProtocolMajor
Puntatore alla matrice di byte che rappresenta la versione principale del protocollo.
bProtocolMinor
Puntatore alla matrice di byte che rappresenta la versione secondaria del protocollo.
dwFlags
Tutti i flag specifici di DRT, attualmente definiti solo come flag revocato o eliminato che devono essere compressi, protetti e inviati a un'altra istanza per l'elaborazione.
pKey
Puntatore alla chiave a cui è registrato questo payload.
pPayload
Puntatore al payload specificato dall'applicazione quando si chiama DrtRegisterKey.
pAddressList
Puntatore agli indirizzi del servizio inseriti nel payload dell'indirizzo protetto.
pNonce
Puntatore al nonce inviato nel messaggio originale di ricerca o di ricerca. Questo valore è fisso a 16 byte.
pSecuredAddressPayload
Puntatore al payload da inviare in rete che contiene gli indirizzi del servizio, il flag revocato, il nonce e altri dati richiesti dal provider di sicurezza. pSecuredAddressPayload.pb viene allocato dal provider di sicurezza.
pClassifier
Puntatore al classificatore da inviare nel messaggio autorità. pClassifier.pb viene allocato dal provider di sicurezza.
pSecuredPayload
Puntatore al payload dei dati dell'applicazione ricevuto nel messaggio autorità. Dopo la convalida, i dati originali (dopo la decrittografia, la rimozione della firma e così via) vengono restituiti come pPayload. pSecuredPayload.pb viene allocato dal provider di sicurezza.
pCertChain
Puntatore alla catena di certificati da inviare nel messaggio autorità. pCertChain.pb viene allocato dal provider di sicurezza.
FreeData
Chiamato per rilasciare le risorse allocate in precedenza per una funzione del provider di sicurezza.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pv
Specifica i dati da liberare.
EncryptData
Chiamato quando DRT invia un messaggio contenente dati che devono essere crittografati. Questa funzione viene chiamata solo quando DRT funziona nella modalità di sicurezza DRT_SECURE_CONFIDENTIALPAYLOAD definita da DRT_SECURITY_MODE.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pRemoteCredential
Contiene le credenziali del peer che riceverà il messaggio protetto.
dwBuffers
Contiene la lunghezza di pDataBuffers e pEncryptedBuffers.
pDataBuffers
Contiene il buffer non crittografato.
pEncryptedBuffers
Contiene il contenuto crittografato al termine della funzione.
pKeyToken
Contiene la chiave di sessione crittografata che può essere decrittografata dal destinatario del messaggio e usata per decrittografare i campi protetti.
DecryptData
Chiamato quando DRT riceve un messaggio contenente dati crittografati. Questa funzione viene chiamata solo quando DRT funziona nella modalità di sicurezza DRT_SECURE_CONFIDENTIALPAYLOAD definita da DRT_SECURITY_MODE.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pKeyToken
Contiene la chiave di sessione crittografata che può essere decrittografata dal destinatario del messaggio e utilizzata per decrittografare i campi protetti.
pvKeyContext
Contiene il contesto passato in DrtRegisterKey quando la chiave è stata registrata.
dwBuffers
Contiene le dimensioni del buffer pData .
pData
Contiene i dati decrittografati al completamento della funzione.
GetSerializedCredential
Chiamato quando DRT deve fornire una credenziale usata per autorizzare il nodo locale. Questa funzione viene chiamata solo quando DRT funziona nelle modalità di sicurezza DRT_SECURE_MEMBERSHIP e DRT_SECURE_CONFIDENTIALPAYLOAD definite da DRT_SECURITY_MODE.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pSelfCredential
Contiene le credenziali serializzate al completamento della funzione.
ValidateRemoteCredential
Chiamato quando DRT deve convalidare una credenziale fornita da un nodo peer.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
pRemoteCredential
Contiene le credenziali serializzate fornite dal nodo peer.
SignData
Chiamato quando DRT deve firmare un BLOB di dati per l'inclusione in un messaggio del protocollo DRT. Questa funzione viene chiamata solo quando DRT funziona nelle modalità di sicurezza DRT_SECURE_MEMBERSHIP e DRT_SECURE_CONFIDENTIALPAYLOAD definite da DRT_SECURITY_MODE.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
dwBuffers
Contiene le dimensioni del buffer pDataBuffers .
pDataBuffers
Contiene i dati da firmare.
pKeyIdentifier
Al termine di questa funzione, contiene un indice che può essere usato per selezionare tra più credenziali da usare per calcolare la firma.
pSignature
Al termine di questa funzione, contiene i dati della firma.
VerifyData
Chiamato quando DRT deve verificare una firma calcolata su un blocco di dati inclusi in un messaggio DRT. Questa funzione viene chiamata solo quando DRT funziona nelle modalità di sicurezza DRT_SECURE_MEMBERSHIP e DRT_SECURE_CONFIDENTIALPAYLOAD definite da DRT_SECURITY_MODE.
pvContext
Puntatore al valore mantenuto dal membro pvContext di DRT_SECURITY_PROVIDER.
dwBuffers
Contiene le dimensioni del buffer pDataBuffers .
pDataBuffers
Contiene i dati su cui è stata calcolata la firma.
pRemoteCredentials
Contiene le credenziali del nodo remoto utilizzato per calcolare la firma.
pKeyIdentifier
Contiene un indice che può essere usato per selezionare tra più credenziali fornite in pRemoteCredentials.
pSignature
Contiene la firma da verificare.
Requisiti
Client minimo supportato | Windows 7 Professional [solo app desktop] |
Server minimo supportato | Windows Server 2008 R2 [solo app desktop] |
Intestazione | drt.h |