DRT_SECURITY_PROVIDER結構 (drt.h)

DRT_SECURITY_PROVIDER結構會定義安全性提供者必須實作的 DRT 介面。

語法

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;

成員

pvContext

DRT_SECURITY_PROVIDER 結構傳遞至 DrtOpen 函式時,應用程式會指定此成員。

DRT 會將它視為不透明的指標,並將它當做第一個參數傳遞給這個 結構所參考的函式。 應用程式會使用這個 作為安全性提供者狀態的指標,或實作安全性提供者功能的物件。

Attach

使用一組 DRT 遞增安全性提供者的參考計數。

pvCoNtext

DRT_SECURITY_PROVIDER之 pvCoNtext成員所保留值的指標。

Detach

遞減具有一組 DRT 之安全性提供者的參考計數。

pvCoNtext

DRT_SECURITY_PROVIDER之 pvCoNtext成員所保留值的指標。

RegisterKey

呼叫 以向安全性提供者註冊金鑰。

pvCoNtext

DRT_SECURITY_PROVIDER之 pvCoNtext成員所保留值的指標。

pRegistration

應用程式所建立 之DRT_REGISTRATION 結構的指標,並傳遞至 DrtRegisterKey 函 式。

pvKeyCoNtext

應用程式所建立之內容資料的指標,並傳遞至 DrtRegisterKey 函 式。

UnregisterKey

呼叫 以向安全性提供者取消註冊金鑰。

pvCoNtext

DRT_SECURITY_PROVIDER之 pvCoNtext成員所保留值的指標。

pKey

登錄承載之索引鍵的指標。

pvKeyCoNtext

應用程式所建立之內容資料的指標,並傳遞至 DrtRegisterKey

ValidateAndUnpackPayload

在網路收到授權單位訊息時呼叫。 它負責驗證收到的資料,以及從安全位址承載解除封裝服務位址、撤銷旗標和 nonce。

pvCoNtext

DRT_SECURITY_PROVIDER之 pvCoNtext成員所保留值的指標。

pSecuredAddressPayload

連線上收到的承載指標,其中包含服務位址、撤銷旗標、nonce,以及安全性提供者所需的任何其他資料。

pCertChain

授權單位訊息中收到的憑證鏈結指標。

pClassifier

授權單位訊息中所接收分類器的指標

pNonce

在原始 查詢查閱 訊息中傳送之 nonce 的指標。 此值必須與內嵌在安全位址承載中的值進行比較,以確保它們相同。 此值固定為 16 個位元組。

pSecuredPayload

授權單位訊息中所接收應用程式資料承載的指標。 驗證之後,原始資料 (解密、移除簽章等等。) 會輸出為 pPayload

pbProtocolMajor

表示通訊協定主要版本的位元組陣列指標。 這會封裝在每個 DRT 封包中,以識別單一 DRT 實例支援多個安全性提供者時所使用的安全性提供者版本。

pbProtocolMinor

表示通訊協定次要版本的位元組陣列指標。 這會封裝在每個 DRT 封包中,以識別單一 DRT 實例支援多個安全性提供者時所使用的安全性提供者版本。

pKey

登錄承載之索引鍵的指標。

pPayload

遠端應用程式所指定原始承載的指標。 pPayload.pb 是由安全性提供者所配置。

ppPublicKey

指向內嵌在安全位址承載中之服務位址數目的指標。

ppAddressList

指向內嵌在安全位址承載中之服務位址的指標。 pAddresses 是由安全性提供者所配置。

pdwFlags

目前定義的任何 DRT 旗標,只會是需要解除封裝以供本機 DRT 實例處理的撤銷或刪除旗標。

注意 目前唯一允許的值為: DRT_PAYLOAD_REVOKED
 

SecureAndPackPayload

當授權單位訊息即將在網路傳送時呼叫。 它負責在傳送資料之前保護資料,以及將服務位址、撤銷的旗標、nonce 和其他應用程式資料封裝到安全位址承載中。

pvCoNtext

DRT_SECURITY_PROVIDER之 pvCoNtext成員所保留值的指標。

pvKeyCoNtext

包含登錄金鑰時傳遞至 DrtRegisterKey 的內容。

bProtocolMajor

表示通訊協定主要版本的位元組陣列指標。

bProtocolMinor

表示通訊協定次要版本的位元組陣列指標。

dwFlags

任何 DRT 特定旗標,目前只定義為需要封裝、保護及傳送至另一個實例進行處理的撤銷或刪除旗標。

注意 目前唯一允許的值為: DRT_PAYLOAD_REVOKED
 

pKey

登錄此承載之索引鍵的指標。

pPayload

呼叫 DrtRegisterKey時,應用程式所指定的承載指標。

pAddressList

位於安全位址承載中之服務位址的指標。

pNonce

在原始 查詢查閱 訊息中傳送之 nonce 的指標。 此值固定為 16 個位元組。

pSecuredAddressPayload

要透過網路傳送之承載的指標,其中包含安全性提供者所需的服務位址、撤銷旗標、nonce 和其他資料。 pSecuredAddressPayload.pb 是由安全性提供者所配置。

pClassifier

在 Authority 訊息中傳送之分類器的指標。 pClassifier.pb 是由安全性提供者所配置。

pSecuredPayload

授權單位訊息中所接收應用程式資料承載的指標。 驗證之後,原始資料 (解密、移除簽章等等。) 會輸出為 pPayloadpSecuredPayload.pb 是由安全性提供者所配置。

pCertChain

在授權單位訊息中傳送之憑證鏈結的指標。 pCertChain.pb 是由安全性提供者所配置。

FreeData

呼叫 以釋放先前配置給安全性提供者函式的資源。

pvCoNtext

DRT_SECURITY_PROVIDER pvCoNtext成員所持有值的指標。

pv

指定要釋放的資料。

EncryptData

當 DRT 傳送包含必須加密之資料的訊息時呼叫。 只有在 DRT 在DRT_SECURITY_MODE所定義的DRT_SECURE_CONFIDENTIALPAYLOAD安全性模式中運作時,才會呼叫此函式。

pvCoNtext

DRT_SECURITY_PROVIDER pvCoNtext成員所持有值的指標。

pRemoteCredential

包含將接收受保護訊息之對等的認證。

dwBuffers

包含 pDataBufferspEncryptedBuffers的長度。

pDataBuffers

包含未加密的緩衝區。

pEncryptedBuffers

在函式完成時包含加密的內容。

pKeyToken

包含可由郵件收件者解密且用來解密受保護欄位的加密工作階段金鑰。

DecryptData

當 DRT 收到包含加密資料的訊息時呼叫。 只有在 DRT 在DRT_SECURITY_MODE所定義的DRT_SECURE_CONFIDENTIALPAYLOAD安全性模式中運作時,才會呼叫此函式。

pvCoNtext

DRT_SECURITY_PROVIDER pvCoNtext成員所持有值的指標。

pKeyToken

包含可由郵件收件者解密且用來解密受保護欄位的加密工作階段金鑰。

pvKeyCoNtext

包含註冊金鑰時傳入 DrtRegisterKey 的內容。

dwBuffers

包含 pData 緩衝區的大小。

pData

在函式完成時包含解密的資料。

GetSerializedCredential

當 DRT 必須提供用來授權本機節點的認證時呼叫。 只有在 DRT 在DRT_SECURE_MEMBERSHIP中運作,以及DRT_SECURITY_MODE所定義的DRT_SECURE_CONFIDENTIALPAYLOAD安全性模式時,才會呼叫此函式。

pvCoNtext

DRT_SECURITY_PROVIDER pvCoNtext成員所持有值的指標。

pSelfCredential

包含函式完成時的序列化認證。

ValidateRemoteCredential

當 DRT 必須驗證對等節點所提供的認證時呼叫。

pvCoNtext

DRT_SECURITY_PROVIDER pvCoNtext成員所持有值的指標。

pRemoteCredential

包含對等節點所提供的序列化認證。

SignData

當 DRT 必須簽署資料 Blob,以包含在 DRT 通訊協定訊息中時呼叫。 只有在 DRT 在DRT_SECURE_MEMBERSHIP中運作,以及DRT_SECURITY_MODE所定義的DRT_SECURE_CONFIDENTIALPAYLOAD安全性模式時,才會呼叫此函式。

pvCoNtext

DRT_SECURITY_PROVIDER pvCoNtext成員所持有值的指標。

dwBuffers

包含 pDataBuffers 緩衝區的大小。

pDataBuffers

包含要簽署的資料。

pKeyIdentifier

完成此函式時,包含可用來從多個認證中選取的索引,以用於計算簽章。

pSignature

完成此函式時,會包含簽章資料。

VerifyData

當 DRT 必須驗證在 DRT 訊息中包含的資料區塊上計算的簽章時呼叫。 只有在 DRT 在DRT_SECURE_MEMBERSHIP中運作,以及DRT_SECURITY_MODE所定義的DRT_SECURE_CONFIDENTIALPAYLOAD安全性模式時,才會呼叫此函式。

pvCoNtext

DRT_SECURITY_PROVIDER pvCoNtext成員所持有值的指標。

dwBuffers

包含 pDataBuffers 緩衝區的大小。

pDataBuffers

包含計算簽章的資料。

pRemoteCredentials

包含用來計算簽章之遠端節點的認證。

pKeyIdentifier

包含索引,可用來從 pRemoteCredentials中提供的多個認證中選取。

pSignature

包含要驗證的簽章。

需求

   
最低支援的用戶端 Windows 7 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
標頭 drt.h

另請參閱

DRT_SECURITY_MODE

DrtOpen

DrtRegisterKey