structure DRT_SECURITY_PROVIDER (drt.h)

La structure DRT_SECURITY_PROVIDER définit l’interface DRT qui doit être implémentée par un fournisseur de sécurité.

Syntaxe

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;

Membres

pvContext

Ce membre est spécifié par l’application lors du passage de la structure DRT_SECURITY_PROVIDER à la fonction DrtOpen .

Le DRT le traite comme un pointeur opaque et le transmet comme premier paramètre aux fonctions référencées par cette structure. Une application l’utilise comme pointeur vers l’état du fournisseur de sécurité ou vers l’objet qui implémente la fonctionnalité du fournisseur de sécurité.

Attach

Incrémente le nombre de références pour le fournisseur de sécurité avec un ensemble de DRT.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

Detach

Décrémente le nombre de références pour le fournisseur de sécurité avec un ensemble de DRT.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

RegisterKey

Appelé pour inscrire une clé auprès du fournisseur de sécurité.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pRegistration

Pointeur vers la structure DRT_REGISTRATION créée par une application et passée à la fonction DrtRegisterKey .

pvKeyContext

Pointeur vers les données de contexte créées par une application et transmises à la fonction DrtRegisterKey .

UnregisterKey

Appelé pour annuler l’inscription d’une clé auprès du fournisseur de sécurité.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

Pkey

Pointeur vers la clé vers laquelle la charge utile est inscrite.

pvKeyContext

Pointeur vers les données de contexte créées par l’application et transmises à DrtRegisterKey.

ValidateAndUnpackPayload

Appelé lorsqu’un message d’autorité est reçu sur le fil. Il est chargé de valider les données reçues et de décompresser les adresses de service, l’indicateur révoqué et la nonce de la charge utile de l’adresse sécurisée.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pSecuredAddressPayload

Pointeur vers la charge utile reçue sur le câble qui contient les adresses de service, l’indicateur révoqué, la nonce et toutes les autres données requises par le fournisseur de sécurité.

pCertChain

Pointeur vers la chaîne de certificats reçue dans le message d’autorité.

pClassifier

Pointeur vers le classifieur reçu dans le message d’autorité

pNonce

Pointeur vers la nonce qui a été envoyée dans le message de recherche ou de requête d’origine. Cette valeur doit être comparée à la valeur incorporée dans la charge utile d’adresse sécurisée pour s’assurer qu’elles sont identiques. Cette valeur est fixe à 16 octets.

pSecuredPayload

Pointeur vers la charge utile des données de l’application reçue dans le message d’autorité. Après la validation, les données d’origine (après le déchiffrement, la suppression de la signature, et ainsi de suite.) sont sorties en tant que pPayload.

pbProtocolMajor

Pointeur vers le tableau d’octets qui représente la version principale du protocole. Cela est empaqueté dans chaque paquet DRT pour identifier la version du fournisseur de sécurité en cours d’utilisation lorsqu’une seule instance DRT prend en charge plusieurs fournisseurs de sécurité.

pbProtocolMinor

Pointeur vers le tableau d’octets qui représente la version mineure du protocole. Cela est empaqueté dans chaque paquet DRT pour identifier la version du fournisseur de sécurité en cours d’utilisation lorsqu’une seule instance DRT prend en charge plusieurs fournisseurs de sécurité.

Pkey

Pointeur vers la clé vers laquelle la charge utile est inscrite.

pPayload

Pointeur vers la charge utile d’origine spécifiée par l’application distante. pPayload.pb est alloué par le fournisseur de sécurité.

ppPublicKey

Pointeur vers un pointeur vers le nombre d’adresses de service incorporées dans la charge utile d’adresse sécurisée.

ppAddressList

Pointeur vers un pointeur vers les adresses de service incorporées dans la charge utile d’adresse sécurisée. pAddresses est alloué par le fournisseur de sécurité.

pdwFlags

Tous les indicateurs DRT actuellement définis pour être l’indicateur révoqué ou supprimé qui doivent être décompressés pour le traitement d’instance DRT local.

Note Actuellement, la seule valeur autorisée est : DRT_PAYLOAD_REVOKED
 

SecureAndPackPayload

Appelé lorsqu’un message d’autorité est sur le point d’être envoyé sur le fil. Il est chargé de sécuriser les données avant d’être envoyées et de empaquerer les adresses de service, l’indicateur révoqué, la nonce et d’autres données d’application dans la charge utile d’adresse sécurisée.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pvKeyContext

Contient le contexte passé à DrtRegisterKey lorsque la clé a été inscrite.

bProtocolMajor

Pointeur vers le tableau d’octets qui représente la version principale du protocole.

bProtocolMinor

Pointeur vers le tableau d’octets qui représente la version mineure du protocole.

dwFlags

Tous les indicateurs spécifiques DRT, actuellement définis uniquement pour être l’indicateur révoqué ou supprimé qui doit être packé, sécurisé et envoyé à une autre instance pour le traitement.

Note Actuellement, la seule valeur autorisée est : DRT_PAYLOAD_REVOKED
 

Pkey

Pointeur vers la clé vers laquelle cette charge utile est inscrite.

pPayload

Pointeur vers la charge utile spécifiée par l’application lors de l’appel de DrtRegisterKey.

pAddressList

Pointeur vers les adresses de service placées dans la charge utile d’adresse sécurisée.

pNonce

Pointeur vers la nonce qui a été envoyée dans le message de recherche ou de requête d’origine. Cette valeur est fixe à 16 octets.

pSecuredAddressPayload

Pointeur vers la charge utile pour envoyer sur le réseau qui contient les adresses de service, l’indicateur révoqué, la nonce et d’autres données requises par le fournisseur de sécurité. pSecuredAddressPayload.pb est alloué par le fournisseur de sécurité.

pClassifier

Pointeur vers le classifieur à envoyer dans le message Authority. pClassifier.pb est alloué par le fournisseur de sécurité.

pSecuredPayload

Pointeur vers la charge utile des données de l’application reçue dans le message d’autorité. Après la validation, les données d’origine (après le déchiffrement, la suppression de la signature, et ainsi de suite.) sont sorties en tant que pPayload. pSecuredPayload.pb est alloué par le fournisseur de sécurité.

pCertChain

Pointeur vers la chaîne de certificats pour envoyer le message d’autorité. pCertChain.pb est alloué par le fournisseur de sécurité.

FreeData

Appelé pour libérer des ressources précédemment allouées pour une fonction de fournisseur de sécurité.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pv

Spécifie les données à libérer.

EncryptData

Appelé lorsque la DRT envoie un message contenant des données qui doivent être chiffrées. Cette fonction est appelée uniquement lorsque la DRT fonctionne dans le mode de sécurité DRT_SECURE_CONFIDENTIALPAYLOAD défini par DRT_SECURITY_MODE.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pRemoteCredential

Contient les informations d’identification de l’homologue qui recevra le message protégé.

dwBuffers

Contient la longueur des pDataBuffers et pEncryptedBuffers.

pDataBuffers

Contient la mémoire tampon non chiffrée.

pEncryptedBuffers

Contient le contenu chiffré lors de l’achèvement de la fonction.

pKeyToken

Contient la clé de session chiffrée qui peut être déchiffrée par le destinataire du message et utilisée pour déchiffrer les champs protégés.

DecryptData

Appelé lorsque le DRT reçoit un message contenant des données chiffrées. Cette fonction est appelée uniquement lorsque la DRT fonctionne dans le mode de sécurité DRT_SECURE_CONFIDENTIALPAYLOAD défini par DRT_SECURITY_MODE.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pKeyToken

Contient la clé de session chiffrée qui peut être déchiffrée par le destinataire du message et utilisée pour déchiffrer les champs protégés.

pvKeyContext

Contient le contexte passé à DrtRegisterKey lorsque la clé a été inscrite.

dwBuffers

Contient la taille de la mémoire tampon pData .

pData

Contient les données déchiffrées à l’achèvement de la fonction.

GetSerializedCredential

Appelé lorsque la DRT doit fournir des informations d’identification utilisées pour autoriser le nœud local. Cette fonction est appelée uniquement lorsque la DRT fonctionne dans les modes de sécurité DRT_SECURE_MEMBERSHIP et DRT_SECURE_CONFIDENTIALPAYLOAD définis par DRT_SECURITY_MODE.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pSelfCredential

Contient les informations d’identification sérialisées lors de l’achèvement de la fonction.

ValidateRemoteCredential

Appelé lorsque la DRT doit valider les informations d’identification fournies par un nœud homologue.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

pRemoteCredential

Contient les informations d’identification sérialisées fournies par le nœud homologue.

SignData

Appelé lorsque la DRT doit signer un objet blob de données pour l’inclusion dans un message de protocole DRT. Cette fonction est appelée uniquement lorsque la DRT fonctionne dans les modes de sécurité DRT_SECURE_MEMBERSHIP et DRT_SECURE_CONFIDENTIALPAYLOAD définis par DRT_SECURITY_MODE.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

dwBuffers

Contient la taille de la mémoire tampon pDataBuffers .

pDataBuffers

Contient les données à signer.

pKeyIdentifier

Une fois cette fonction terminée, contient un index qui peut être utilisé pour sélectionner plusieurs informations d’identification à utiliser pour calculer la signature.

pSignature

Une fois cette fonction terminée, contient les données de signature.

VerifyData

Appelé lorsque la DRT doit vérifier une signature calculée sur un bloc de données inclus dans un message DRT. Cette fonction est appelée uniquement lorsque la DRT fonctionne dans les modes de sécurité DRT_SECURE_MEMBERSHIP et DRT_SECURE_CONFIDENTIALPAYLOAD définis par DRT_SECURITY_MODE.

pvContext

Pointeur vers la valeur détenue par le membre pvContext de DRT_SECURITY_PROVIDER.

dwBuffers

Contient la taille de la mémoire tampon pDataBuffers .

pDataBuffers

Contient les données sur lesquelles la signature a été calculée.

pRemoteCredentials

Contient les informations d’identification du nœud distant utilisé pour calculer la signature.

pKeyIdentifier

Contient un index qui peut être utilisé pour sélectionner parmi plusieurs informations d’identification fournies dans pRemoteCredentials.

pSignature

Contient la signature à vérifier.

Configuration requise

   
Client minimal pris en charge Windows 7 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête drt.h

Voir aussi

DRT_SECURITY_MODE

DrtOpen

DrtRegisterKey