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 實例處理的撤銷或刪除旗標。
SecureAndPackPayload
當授權單位訊息即將在網路傳送時呼叫。 它負責在傳送資料之前保護資料,以及將服務位址、撤銷的旗標、nonce 和其他應用程式資料封裝到安全位址承載中。
pvCoNtext
DRT_SECURITY_PROVIDER之 pvCoNtext成員所保留值的指標。
pvKeyCoNtext
包含登錄金鑰時傳遞至 DrtRegisterKey 的內容。
bProtocolMajor
表示通訊協定主要版本的位元組陣列指標。
bProtocolMinor
表示通訊協定次要版本的位元組陣列指標。
dwFlags
任何 DRT 特定旗標,目前只定義為需要封裝、保護及傳送至另一個實例進行處理的撤銷或刪除旗標。
pKey
登錄此承載之索引鍵的指標。
pPayload
呼叫 DrtRegisterKey時,應用程式所指定的承載指標。
pAddressList
位於安全位址承載中之服務位址的指標。
pNonce
在原始 查詢 或 查閱 訊息中傳送之 nonce 的指標。 此值固定為 16 個位元組。
pSecuredAddressPayload
要透過網路傳送之承載的指標,其中包含安全性提供者所需的服務位址、撤銷旗標、nonce 和其他資料。 pSecuredAddressPayload.pb 是由安全性提供者所配置。
pClassifier
在 Authority 訊息中傳送之分類器的指標。 pClassifier.pb 是由安全性提供者所配置。
pSecuredPayload
授權單位訊息中所接收應用程式資料承載的指標。 驗證之後,原始資料 (解密、移除簽章等等。) 會輸出為 pPayload。 pSecuredPayload.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
包含 pDataBuffers 和 pEncryptedBuffers的長度。
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 |