DRT_SECURITY_PROVIDER Struktur (drt.h)

Die DRT_SECURITY_PROVIDER-Struktur definiert die DRT-Schnittstelle, die von einem Sicherheitsanbieter implementiert werden muss.

Syntax

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;

Member

pvContext

Dieses Element wird von der Anwendung angegeben, wenn die DRT_SECURITY_PROVIDER-Struktur an die DrtOpen-Funktion übergeben wird.

Der DRT behandelt ihn als undurchsichtigen Zeiger und übergibt ihn als ersten Parameter an die Funktionen, auf die von dieser Struktur verwiesen wird. Eine Anwendung verwendet dies als Zeiger auf den Zustand des Sicherheitsanbieters oder auf das Objekt, das die Sicherheitsanbieterfunktionalität implementiert.

Attach

Erhöht die Anzahl der Verweise für den Sicherheitsanbieter mit einer Reihe von DRTs.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER gehalten wird.

Detach

Verringert die Anzahl der Verweise für den Sicherheitsanbieter mit einer Reihe von DRTs.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER gehalten wird.

RegisterKey

Wird aufgerufen, um einen Schlüssel beim Sicherheitsanbieter zu registrieren.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER gehalten wird.

pRegistration

Zeiger auf die DRT_REGISTRATION Struktur, die von einer Anwendung erstellt und an die DrtRegisterKey-Funktion übergeben wird.

pvKeyContext

Zeiger auf die Kontextdaten, die von einer Anwendung erstellt und an die DrtRegisterKey-Funktion übergeben werden.

UnregisterKey

Wird aufgerufen, um die Registrierung eines Schlüssels beim Sicherheitsanbieter aufzuheben.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER gehalten wird.

pKey

Zeiger auf den Schlüssel, für den die Nutzlast registriert ist.

pvKeyContext

Zeiger auf die Kontextdaten, die von der Anwendung erstellt und an DrtRegisterKey übergeben werden.

ValidateAndUnpackPayload

Wird aufgerufen, wenn eine Autoritätsnachricht über die Verbindung empfangen wird. Es ist für die Überprüfung der empfangenen Daten und für das Entpacken der Dienstadressen, das widerrufene Flag und die Nonce aus der Nutzlast für gesicherte Adressen verantwortlich.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER gehalten wird.

pSecuredAddressPayload

Zeiger auf die Nutzlast, die auf der Leitung empfangen wird, die die Dienstadressen, das widerrufene Flag, die Nonce und alle anderen vom Sicherheitsanbieter benötigten Daten enthält.

pCertChain

Zeiger auf die In der Autoritätsnachricht empfangene Zertifikatkette.

pClassifier

Zeiger auf den Klassifizierungsbezeichner, der in der Autoritätsnachricht empfangen wird

pNonce

Zeiger auf die Nonce, die in der ursprünglichen Anfrage- oder Nachschlagenachricht gesendet wurde. Dieser Wert muss mit dem Wert verglichen werden, der in der Nutzlast für gesicherte Adressen eingebettet ist, um sicherzustellen, dass sie identisch sind. Dieser Wert ist auf 16 Bytes festgelegt.

pSecuredPayload

Zeiger auf die Nutzdaten der Anwendung, die in der Autoritätsnachricht empfangen wurden. Nach der Validierung werden die ursprünglichen Daten (nach Entschlüsselung, Entfernen der Signatur usw.) als pPayload ausgegeben.

pbProtocolMajor

Zeiger auf das Bytearray, das die Hauptversion des Protokolls darstellt. Dies wird in jedes DRT-Paket gepackt, um die Version des verwendeten Sicherheitsanbieters zu identifizieren, wenn ein einzelner DRT-instance mehrere Sicherheitsanbieter unterstützt.

pbProtocolMinor

Zeiger auf das Bytearray, das die Nebenversion des Protokolls darstellt. Dies wird in jedes DRT-Paket gepackt, um die Version des verwendeten Sicherheitsanbieters zu identifizieren, wenn ein einzelner DRT-instance mehrere Sicherheitsanbieter unterstützt.

pKey

Zeiger auf den Schlüssel, für den die Nutzlast registriert ist.

pPayload

Zeiger auf die ursprüngliche Nutzlast, die von der Remoteanwendung angegeben wurde. pPayload.pb wird vom Sicherheitsanbieter zugeordnet.

ppPublicKey

Zeiger auf einen Zeiger auf die Anzahl von Dienstadressen, die in der Nutzlast der gesicherten Adresse eingebettet sind.

ppAddressList

Zeiger auf einen Zeiger auf die Dienstadressen, die in der Nutzlast für gesicherte Adressen eingebettet sind. pAddresses wird vom Sicherheitsanbieter zugewiesen.

pdwFlags

Alle DRT-Flags, die derzeit nur als widerrufenes oder gelöschtes Flag definiert sind, die für die lokale DRT-instance Verarbeitung entpackt werden müssen.

Hinweis Derzeit ist der einzige zulässige Wert: DRT_PAYLOAD_REVOKED
 

SecureAndPackPayload

Wird aufgerufen, wenn eine Autoritätsnachricht über das Kabel gesendet werden soll. Er ist für den Schutz der Daten vor dem Senden und für das Packen der Dienstadressen, widerrufenen Flags, Nonce und anderer Anwendungsdaten in die Nutzlast für gesicherte Adressen verantwortlich.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER gehalten wird.

pvKeyContext

Enthält den Kontext, der an DrtRegisterKey übergeben wurde, als der Schlüssel registriert wurde.

bProtocolMajor

Zeiger auf das Bytearray, das die Hauptversion des Protokolls darstellt.

bProtocolMinor

Zeiger auf das Bytearray, das die Nebenversion des Protokolls darstellt.

dwFlags

Alle DRT-spezifischen Flags, die derzeit nur als das widerrufene oder gelöschte Flag definiert sind, die zur Verarbeitung gepackt, gesichert und an eine andere instance gesendet werden müssen.

Hinweis Derzeit ist der einzige zulässige Wert: DRT_PAYLOAD_REVOKED
 

pKey

Zeiger auf den Schlüssel, für den diese Nutzlast registriert ist.

pPayload

Zeiger auf die Nutzlast, die von der Anwendung beim Aufrufen von DrtRegisterKey angegeben wurde.

pAddressList

Zeiger auf die Dienstadressen, die in der Nutzlast für gesicherte Adressen platziert sind.

pNonce

Zeiger auf die Nonce, die in der ursprünglichen Anfrage- oder Nachschlagenachricht gesendet wurde. Dieser Wert ist auf 16 Bytes festgelegt.

pSecuredAddressPayload

Zeiger auf die Nutzlast, die an die Wire gesendet werden soll, die die Dienstadressen, das widerrufene Flag, die Nonce und andere vom Sicherheitsanbieter erforderliche Daten enthält. pSecuredAddressPayload.pb wird vom Sicherheitsanbieter zugeordnet.

pClassifier

Zeiger auf den Klassifizierungsbezeichner, der in der Autoritätsnachricht gesendet werden soll. pClassifier.pb wird vom Sicherheitsanbieter zugeordnet.

pSecuredPayload

Zeiger auf die Nutzdaten der Anwendung, die in der Autoritätsnachricht empfangen wurden. Nach der Validierung werden die ursprünglichen Daten (nach Entschlüsselung, Entfernen der Signatur usw.) als pPayload ausgegeben. pSecuredPayload.pb wird vom Sicherheitsanbieter zugeordnet.

pCertChain

Zeiger auf die Zertifikatkette, die in der Autoritätsnachricht gesendet werden soll. pCertChain.pb wird vom Sicherheitsanbieter zugeordnet.

FreeData

Wird aufgerufen, um Ressourcen freizugeben, die zuvor einer Sicherheitsanbieterfunktion zugeordnet wurden.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER.

pv

Gibt an, welche Daten freigegeben werden sollen.

EncryptData

Wird aufgerufen, wenn das DRT eine Nachricht sendet, die Daten enthält, die verschlüsselt werden müssen. Diese Funktion wird nur aufgerufen, wenn das DRT im durch DRT_SECURITY_MODE definierten DRT_SECURE_CONFIDENTIALPAYLOAD Sicherheitsmodus ausgeführt wird.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER.

pRemoteCredential

Enthält die Anmeldeinformationen des Peers, der die geschützte Nachricht empfängt.

dwBuffers

Enthält die Länge der pDataBuffers und pEncryptedBuffers.

pDataBuffers

Enthält den unverschlüsselten Puffer.

pEncryptedBuffers

Enthält den verschlüsselten Inhalt nach Abschluss der Funktion.

pKeyToken

Enthält den verschlüsselten Sitzungsschlüssel, der vom Empfänger der Nachricht entschlüsselt und zum Entschlüsseln der geschützten Felder verwendet werden kann.

DecryptData

Wird aufgerufen, wenn das DRT eine Nachricht mit verschlüsselten Daten empfängt. Diese Funktion wird nur aufgerufen, wenn das DRT im durch DRT_SECURITY_MODE definierten DRT_SECURE_CONFIDENTIALPAYLOAD Sicherheitsmodus ausgeführt wird.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER.

pKeyToken

Enthält den verschlüsselten Sitzungsschlüssel, der vom Empfänger der Nachricht entschlüsselt und zum Entschlüsseln der geschützten Felder verwendet werden kann.

pvKeyContext

Enthält den Kontext, der an DrtRegisterKey übergeben wurde, als der Schlüssel registriert wurde.

dwBuffers

Enthält die Größe des pData-Puffers .

pData

Enthält die entschlüsselten Daten nach Abschluss der Funktion.

GetSerializedCredential

Wird aufgerufen, wenn das DRT Anmeldeinformationen bereitstellen muss, die zum Autorisieren des lokalen Knotens verwendet werden. Diese Funktion wird nur aufgerufen, wenn das DRT im DRT_SECURE_MEMBERSHIP und DRT_SECURE_CONFIDENTIALPAYLOAD von DRT_SECURITY_MODE definierten Sicherheitsmodi ausgeführt wird.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER.

pSelfCredential

Enthält die serialisierten Anmeldeinformationen nach Abschluss der Funktion.

ValidateRemoteCredential

Wird aufgerufen, wenn das DRT die von einem Peerknoten bereitgestellten Anmeldeinformationen überprüfen muss.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER.

pRemoteCredential

Enthält die serialisierten Anmeldeinformationen, die vom Peerknoten bereitgestellt werden.

SignData

Wird aufgerufen, wenn das DRT ein Datenblob für die Aufnahme in eine DRT-Protokollnachricht signieren muss. Diese Funktion wird nur aufgerufen, wenn das DRT im DRT_SECURE_MEMBERSHIP und DRT_SECURE_CONFIDENTIALPAYLOAD von DRT_SECURITY_MODE definierten Sicherheitsmodi ausgeführt wird.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER.

dwBuffers

Enthält die Größe des pDataBuffers-Puffers .

pDataBuffers

Enthält die zu signierten Daten.

pKeyIdentifier

Enthält nach Abschluss dieser Funktion einen Index, der verwendet werden kann, um aus mehreren Anmeldeinformationen für die Berechnung der Signatur auszuwählen.

pSignature

Enthält nach Abschluss dieser Funktion die Signaturdaten.

VerifyData

Wird aufgerufen, wenn das DRT eine Signatur überprüfen muss, die über einen Datenblock berechnet wird, der in einer DRT-Nachricht enthalten ist. Diese Funktion wird nur aufgerufen, wenn das DRT im DRT_SECURE_MEMBERSHIP und DRT_SECURE_CONFIDENTIALPAYLOAD von DRT_SECURITY_MODE definierten Sicherheitsmodi ausgeführt wird.

pvContext

Zeiger auf den Wert, der vom pvContext-Element von DRT_SECURITY_PROVIDER.

dwBuffers

Enthält die Größe des pDataBuffers-Puffers .

pDataBuffers

Enthält die Daten, für die die Signatur berechnet wurde.

pRemoteCredentials

Enthält die Anmeldeinformationen des Remoteknotens, der zum Berechnen der Signatur verwendet wird.

pKeyIdentifier

Enthält einen Index, der verwendet werden kann, um aus mehreren Anmeldeinformationen auszuwählen, die in pRemoteCredentials bereitgestellt werden.

pSignature

Enthält die zu überprüfende Signatur.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile drt.h

Weitere Informationen

DRT_SECURITY_MODE

DrtOpen

DrtRegisterKey