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