Partager via


DRT_SECURITY_PROVIDER structure (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 .

La 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 passées à 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é à laquelle la charge utile est inscrite.

pvKeyContext

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

ValidateAndUnpackPayload

Appelé lorsqu’un message d’autorité est reçu sur le réseau. Il est chargé de valider les données reçues et de décompresser les adresses de service, l’indicateur révoqué et le nonce de la charge utile d’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 réseau qui contient les adresses de service, l’indicateur révoqué, le nonce et toutes les autres données requises par le fournisseur de sécurité.

pCertChain

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

pClassifier

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

pNonce

Pointeur vers le nonce qui a été envoyé dans le message Inquire ou Lookup 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 fixée à 16 octets.

pSecuredPayload

Pointeur vers la charge utile de données d’application reçue dans le message Autorité. Après validation, les données d’origine (après le déchiffrement, la suppression de la signature, etc.) sont générées en tant que pPayload.

pbProtocolMajor

Pointeur vers le tableau d’octets qui représente la version principale du protocole. Il est emballé dans chaque paquet DRT pour identifier la version du fournisseur de sécurité utilisé lorsqu’un seul 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. Il est emballé dans chaque paquet DRT pour identifier la version du fournisseur de sécurité utilisé lorsqu’un seul instance DRT prend en charge plusieurs fournisseurs de sécurité.

Pkey

Pointeur vers la clé à 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 uniquement pour être l’indicateur révoqué ou supprimé qui doivent être décompressés pour le traitement de la DRT locale instance.

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 réseau. Il est responsable de la sécurisation des données avant leur envoi et de l’empaquetage des adresses de service, de l’indicateur révoqué, du 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é dans DrtRegisterKey lors de l’inscription de la clé.

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 à la DRT, actuellement définis uniquement pour être l’indicateur révoqué ou supprimé qui doit être empaqueté, sécurisé et envoyé à un autre instance pour traitement.

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

Pkey

Pointeur vers la clé à 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 qui sont placées dans la charge utile d’adresse sécurisée.

pNonce

Pointeur vers le nonce qui a été envoyé dans le message Inquire ou Lookup d’origine . Cette valeur est fixée à 16 octets.

pSecuredAddressPayload

Pointeur vers la charge utile à envoyer sur le réseau qui contient les adresses de service, l’indicateur révoqué, le 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 d’autorité. pClassifier.pb est alloué par le fournisseur de sécurité.

pSecuredPayload

Pointeur vers la charge utile de données d’application reçue dans le message Autorité. Après validation, les données d’origine (après le déchiffrement, la suppression de la signature, etc.) sont générées en tant que pPayload. pSecuredPayload.pb est alloué par le fournisseur de sécurité.

pCertChain

Pointeur vers la chaîne de certificat à envoyer dans 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 n’est appelée que 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é à 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 n’est appelée que 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é dans 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 une fois la fonction terminée.

GetSerializedCredential

Appelé lorsque la DRT doit fournir des informations d’identification utilisées pour autoriser le nœud local. Cette fonction n’est appelée que 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 une fois la fonction terminée.

ValidateRemoteCredential

Appelé lorsque le DRT doit valider des 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 le DRT doit signer un objet blob de données pour l’inclure dans un message de protocole DRT. Cette fonction n’est appelée que 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 parmi plusieurs informations d’identification à utiliser dans le calcul de la signature.

pSignature

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

VerifyData

Appelé lorsque le DRT doit vérifier une signature calculée sur un bloc de données inclus dans un message DRT. Cette fonction n’est appelée que 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.

Spécifications

   
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