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.
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.
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 |