PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET回呼函式 (wincrypt.h)
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET回呼函式會擷取 物件。 您必須實作此函式作為自定義提供者的一部分。 此函式目前僅由安全通道 (安全通道) 安全性套件呼叫。
語法
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET PfnCryptObjectLocatorProviderGet;
BOOL PfnCryptObjectLocatorProviderGet(
[in, optional] LPVOID pPluginContext,
[in, optional] PCRYPT_DATA_BLOB pIdentifier,
[in] DWORD dwNameType,
[in] PCERT_NAME_BLOB pNameBlob,
[out] PBYTE *ppbContent,
[out] DWORD *pcbContent,
[out] PCWSTR *ppwszPassword,
[out] PCRYPT_DATA_BLOB *ppIdentifier
)
{...}
參數
[in, optional] pPluginContext
這個提供者所定義的選擇性緩衝區指標,並由 PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE 函式傳回。 呼叫端不會修改緩衝區。 您的提供者可以使用數據來協助判斷要執行的動作,或維護其他資訊。
[in, optional] pIdentifier
包含物件標識碼 之CRYPTOAPI_BLOB 結構的指標。 第一次呼叫此函式時,這個值應該一律為 NULL 。
[in] dwNameType
pNameBlob 參數的名稱格式。 可能的值如下所列。 此函式的實作必須能夠處理 Schannel 傳入CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE。
CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE (1 (0x1) )
CRYPT_OBJECT_LOCATOR_LAST_RESERVED_NAME_TYPE (32 (0x20) )
CRYPT_OBJECT_LOCATOR_FIRST_RESERVED_USER_NAME_TYPE (33 (0x21) )
CRYPT_OBJECT_LOCATOR_LAST_RESERVED_USER_NAME_TYPE (0x0000FFFF)
[in] pNameBlob
包含呼叫應用程式用來唯一識別物件的名稱 之CRYPTOAPI_BLOB 結構的指標。 您的提供者會使用此名稱來找出要求的物件。 Schannel 目前會提交 DNS (域名系統,) 以 UTF8 編碼的主機名,並使用從 punycode 轉換的 IDN 名稱。
[out] ppbContent
位元組陣列的指標,其中包含要傳回的物件。
[out] pcbContent
ppbContent 參數所指向之物件的大小,以位元組為單位。
[out] ppwszPassword
包含密碼的 Null 終止 Unicode 字串,如果有的話,用來加密物件。 如果對像是 PFX) 檔案 (個人資訊交換,則通常會使用密碼來執行加密。 如果不需要任何密碼,這個值可以是 NULL 。
[out] ppIdentifier
接收選擇性標識碼指標的位址,可在後續呼叫此函式和變更通知期間使用。 如需詳細資訊,請參閱<備註>。 如果您的提供者將此值設定為 NULL,Schannel 會在內部使用 pNameBlob 參數值。
傳回值
如果函式成功,則傳回非零 (TRUE) 。
如果函式失敗, (FALSE) 傳回零,並在 SetLastError 函式中指定適當的錯誤。 大部分的錯誤都會透過安全通道未變更傳遞,但並不保證此行為。 某些錯誤可能會對應至其他錯誤。
如果無法針對指定的 DNS 名稱傳回物件, (pNameBlob) 或標識碼 (pIdentifier) ,請在 SetLastError 函式中傳回 FALSE 並指定CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND。
備註
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET回呼函式目前只有安全通道 (安全通道) 安全性套件呼叫。 您可以傳回封裝下列其中一項的物件:
- PFX) 位元組數位 (個人資訊交換
- 證書存儲。
- 泛型 BLOB。 Schannel 目前不支援此功能。
因為許多主機名都可以對應到一個物件,所以您的提供者可以使用 ppIdentifier 參數,傳回內部定義的標識符,以供密碼編譯 API (CAPI) 函式用於提供者的後續呼叫中。 提供者接著可以使用標識碼來協助尋找適當的物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
另請參閱
CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE