estrutura DRT_SECURITY_PROVIDER (drt.h)
A estrutura DRT_SECURITY_PROVIDER define a interface DRT que deve ser implementada por um provedor de segurança.
Sintaxe
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;
Membros
pvContext
Esse membro é especificado pelo aplicativo ao passar a estrutura DRT_SECURITY_PROVIDER para a função DrtOpen .
O DRT o trata como um ponteiro opaco e o passa como o primeiro parâmetro para as funções referenciadas por essa estrutura. Um aplicativo usará isso como um ponteiro para o estado do provedor de segurança ou para o objeto que implementa a funcionalidade do provedor de segurança.
Attach
Incrementa a contagem de referências para o Provedor de Segurança com um conjunto de DRTs.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
Detach
Diminui a contagem de referências para o Provedor de Segurança com um conjunto de DRTs.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
RegisterKey
Chamado para registrar uma chave no Provedor de Segurança.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pRegistration
Ponteiro para a estrutura DRT_REGISTRATION criada por um aplicativo e passada para a função DrtRegisterKey .
pvKeyContext
Ponteiro para os dados de contexto criados por um aplicativo e passados para a função DrtRegisterKey .
UnregisterKey
Chamado para desregistrar uma chave com o Provedor de Segurança.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
Pkey
Ponteiro para a chave para a qual o conteúdo é registrado.
pvKeyContext
Ponteiro para os dados de contexto criados pelo aplicativo e passados para DrtRegisterKey.
ValidateAndUnpackPayload
Chamado quando uma mensagem de autoridade é recebida na transmissão. Ele é responsável por validar os dados recebidos e por desempacotar os endereços de serviço, o sinalizador revogado e a nonce da carga de endereço protegido.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pSecuredAddressPayload
Ponteiro para a carga recebida na transmissão que contém os endereços de serviço, sinalizador revogado, nonce e quaisquer outros dados exigidos pelo provedor de segurança.
pCertChain
Ponteiro para a cadeia de certificados recebida na mensagem de autoridade.
pClassifier
Ponteiro para o classificador recebido na mensagem de autoridade
pNonce
Ponteiro para o nonce que foi enviado na mensagem de consulta ou pesquisa original. Esse valor deve ser comparado com o valor inserido na Carga de Endereço Protegido para garantir que eles sejam iguais. Esse valor é fixo em 16 bytes.
pSecuredPayload
Ponteiro para a carga de dados do aplicativo recebida na mensagem Autoridade. Após a validação, os dados originais (após a descriptografia, remoção da assinatura e assim por diante.) são gerados como pPayload.
pbProtocolMajor
Ponteiro para a matriz de bytes que representa a versão principal do protocolo. Isso é empacotado em todos os pacotes DRT para identificar a versão do provedor de segurança em uso quando uma única instância de DRT dá suporte a vários Provedores de Segurança.
pbProtocolMinor
Ponteiro para a matriz de bytes que representa a versão secundária do protocolo. Isso é empacotado em todos os pacotes DRT para identificar a versão do provedor de segurança em uso quando uma única instância de DRT dá suporte a vários Provedores de Segurança.
Pkey
Ponteiro para a chave para a qual o conteúdo é registrado.
pPayload
Ponteiro para a carga original especificada pelo aplicativo remoto. pPayload.pb é alocado pelo provedor de segurança.
ppPublicKey
Ponteiro para um ponteiro para o número de endereços de serviço inseridos no conteúdo do endereço protegido.
ppAddressList
Ponteiro para um ponteiro para os endereços de serviço inseridos na carga de endereço protegido. pAddresses é alocado pelo provedor de segurança.
Pdwflags
Todos os sinalizadores DRT definidos atualmente apenas para serem o sinalizador revogado ou excluído que precisa ser descompactado para o processamento da instância drt local.
SecureAndPackPayload
Chamado quando uma mensagem de Autoridade está prestes a ser enviada na transmissão. Ele é responsável por proteger os dados antes de serem enviados e por empacotar os endereços de serviço, o sinalizador revogado, a nonce e outros dados do aplicativo na carga de endereço protegido.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pvKeyContext
Contém o contexto passado para DrtRegisterKey quando a chave foi registrada.
bProtocolMajor
Ponteiro para a matriz de bytes que representa a versão principal do protocolo.
bProtocolMinor
Ponteiro para a matriz de bytes que representa a versão secundária do protocolo.
dwFlags
Todos os sinalizadores específicos do DRT, atualmente definidos apenas para serem o sinalizador revogado ou excluído que precisa ser empacotado, protegido e enviado para outra instância para processamento.
Pkey
Ponteiro para a chave para a qual essa carga é registrada.
pPayload
Ponteiro para a carga especificada pelo aplicativo ao chamar DrtRegisterKey.
pAddressList
Ponteiro para os endereços de serviço que são colocados na Carga de Endereço Protegido.
pNonce
Ponteiro para o nonce que foi enviado na mensagem de consulta ou pesquisa original. Esse valor é fixo em 16 bytes.
pSecuredAddressPayload
Ponteiro para a carga a ser enviada na transmissão que contém os endereços de serviço, o sinalizador revogado, o nonce e outros dados exigidos pelo provedor de segurança. pSecuredAddressPayload.pb é alocado pelo provedor de segurança.
pClassifier
Ponteiro para o classificador a ser enviado na mensagem Autoridade. pClassifier.pb é alocado pelo provedor de segurança.
pSecuredPayload
Ponteiro para a carga de dados do aplicativo recebida na mensagem Autoridade. Após a validação, os dados originais (após a descriptografia, remoção da assinatura e assim por diante.) são gerados como pPayload. pSecuredPayload.pb é alocado pelo provedor de segurança.
pCertChain
Ponteiro para a cadeia de certificados a ser enviada na mensagem Autoridade. pCertChain.pb é alocado pelo provedor de segurança.
FreeData
Chamado para liberar recursos alocados anteriormente para uma função de provedor de segurança.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pv
Especifica quais dados liberar.
EncryptData
Chamado quando o DRT envia uma mensagem contendo dados que devem ser criptografados. Essa função só é chamada quando o DRT está operando no modo de segurança DRT_SECURE_CONFIDENTIALPAYLOAD definido por DRT_SECURITY_MODE.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pRemoteCredential
Contém a credencial do par que receberá a mensagem protegida.
dwBuffers
Contém o comprimento do pDataBuffers e pEncryptedBuffers.
pDataBuffers
Contém o buffer não criptografado.
pEncryptedBuffers
Contém o conteúdo criptografado após a conclusão da função.
pKeyToken
Contém a chave de sessão criptografada que pode ser descriptografada pelo destinatário da mensagem e usada para descriptografar os campos protegidos.
DecryptData
Chamado quando o DRT recebe uma mensagem que contém dados criptografados. Essa função só é chamada quando o DRT está operando no modo de segurança DRT_SECURE_CONFIDENTIALPAYLOAD definido por DRT_SECURITY_MODE.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pKeyToken
Contém a chave de sessão criptografada que pode ser descriptografada pelo destinatário da mensagem e usada para descriptografar os campos protegidos.
pvKeyContext
Contém o contexto passado para DrtRegisterKey quando a chave foi registrada.
dwBuffers
Contém o tamanho do buffer pData .
pData
Contém os dados descriptografados após a conclusão da função.
GetSerializedCredential
Chamado quando o DRT deve fornecer uma credencial usada para autorizar o nó local. Essa função só é chamada quando o DRT está operando nos modos de segurança DRT_SECURE_MEMBERSHIP e DRT_SECURE_CONFIDENTIALPAYLOAD definidos por DRT_SECURITY_MODE.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pSelfCredential
Contém a credencial serializada após a conclusão da função.
ValidateRemoteCredential
Chamado quando o DRT deve validar uma credencial fornecida por um nó par.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
pRemoteCredential
Contém a credencial serializada fornecida pelo nó par.
SignData
Chamado quando o DRT deve assinar um blob de dados para inclusão em uma mensagem de protocolo DRT. Essa função só é chamada quando o DRT está operando nos modos de segurança DRT_SECURE_MEMBERSHIP e DRT_SECURE_CONFIDENTIALPAYLOAD definidos por DRT_SECURITY_MODE.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
dwBuffers
Contém o tamanho do buffer pDataBuffers .
pDataBuffers
Contém os dados a serem assinados.
pKeyIdentifier
Após a conclusão dessa função, contém um índice que pode ser usado para selecionar entre várias credenciais para uso no cálculo da assinatura.
pSignature
Após a conclusão dessa função, contém os dados de assinatura.
VerifyData
Chamado quando o DRT deve verificar uma assinatura calculada em um bloco de dados incluído em uma mensagem DRT. Essa função só é chamada quando o DRT está operando nos modos de segurança DRT_SECURE_MEMBERSHIP e DRT_SECURE_CONFIDENTIALPAYLOAD definidos por DRT_SECURITY_MODE.
pvContext
Ponteiro para o valor mantido pelo membro pvContext de DRT_SECURITY_PROVIDER.
dwBuffers
Contém o tamanho do buffer pDataBuffers .
pDataBuffers
Contém os dados sobre os quais a assinatura foi calculada.
pRemoteCredentials
Contém as credenciais do nó remoto usado para calcular a assinatura.
pKeyIdentifier
Contém um índice que pode ser usado para selecionar entre várias credenciais fornecidas em pRemoteCredentials.
pSignature
Contém a assinatura a ser verificada.
Requisitos
Cliente mínimo com suporte | Windows 7 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Cabeçalho | drt.h |