共用方式為


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

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

Detach

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

RegisterKey

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

pRegistration

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

pvKeyContext

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

UnregisterKey

呼叫 以取消註冊安全性提供者的密鑰。

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

pKey

註冊承載之索引鍵的指標。

pvKeyContext

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

ValidateAndUnpackPayload

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

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

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

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

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

FreeData

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

光伏

指定要釋放的數據。

EncryptData

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

pRemoteCredential

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

dwBuffers

包含 pDataBufferspEncryptedBuffers的長度。

pDataBuffers

包含未加密的緩衝區。

pEncryptedBuffers

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

pKeyToken

包含可由郵件收件者解密並用來解密受保護字段的加密會話密鑰。

DecryptData

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

pKeyToken

包含可由郵件收件者解密並用來解密受保護字段的加密會話密鑰。

pvKeyContext

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

dwBuffers

包含 pData 緩衝區的大小。

pData

在函式完成時包含解密的數據。

GetSerializedCredential

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

pSelfCredential

包含函式完成時的串行化認證。

ValidateRemoteCredential

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

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

pRemoteCredential

包含對等節點所提供的串行化認證。

SignData

當DRT必須簽署數據 Blob 以納入DRT通訊協定訊息時呼叫。 只有在DRT在 DRT_SECURE_MEMBERSHIP 中運作,並 DRT_SECURE_CONFIDENTIALPAYLOADDRT_SECURITY_MODE所定義的安全性模式時,才會呼叫此函式。

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

dwBuffers

包含 pDataBuffers 緩衝區的大小。

pDataBuffers

包含要簽署的數據。

pKeyIdentifier

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

pSignature

完成此函式時,會包含簽章數據。

VerifyData

當DRT必須驗證透過DRT訊息中包含的數據區塊計算的簽章時呼叫。 只有在DRT在 DRT_SECURE_MEMBERSHIP 中運作,並 DRT_SECURE_CONFIDENTIALPAYLOADDRT_SECURITY_MODE所定義的安全性模式時,才會呼叫此函式。

pvContext

pvContext 成員 DRT_SECURITY_PROVIDER所保留值的指標。

dwBuffers

包含 pDataBuffers 緩衝區的大小。

pDataBuffers

包含用來計算簽章的數據。

pRemoteCredentials

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

pKeyIdentifier

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

pSignature

包含要驗證的簽章。

要求

要求 價值
最低支援的用戶端 Windows 7 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 R2 [僅限傳統型應用程式]
標頭 drt.h

另請參閱

DRT_SECURITY_MODE

DrtOpen

DrtRegisterKey