CertGetEnhancedKeyUsage 函式 (wincrypt.h)
CertGetEnhancedKeyUsage函式會從增強金鑰使用方式傳回信息, (EKU) 延伸模組或憑證的 EKU 擴充屬性。 EKU 表示憑證的有效用法。
語法
BOOL CertGetEnhancedKeyUsage(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwFlags,
[out] PCERT_ENHKEY_USAGE pUsage,
[in, out] DWORD *pcbUsage
);
參數
[in] pCertContext
CERT_CONTEXT憑證內容的指標。
[in] dwFlags
指出函式是否會報告憑證的延伸模組、其擴充屬性或兩者。 如果設定為零,函式會根據憑證的 EKU 延伸模組和 EKU 擴充屬性值,傳回憑證的有效用法。
若要只傳回 EKU 延伸模組或 EKU 屬性值,請設定下列旗標。
值 | 意義 |
---|---|
|
只取得延伸模組。 |
|
只取得擴充屬性值。 |
[out] pUsage
CERT_ENHKEY_USAGE結構的指標 (CERT_ENHKEY_USAGE是接收憑證有效用途之CTL_USAGE結構) 的替代 typedef 名稱。
此參數可以是 Null ,可針對記憶體配置目的設定金鑰使用量的大小。 如需詳細資訊,請參閱 擷取未知長度的資料。
[in, out] pcbUsage
DWORD的指標,指定pUsage所指向之結構的大小,以位元組為單位。 當函式傳回時, DWORD 會包含 結構的大小,以位元組為單位。
傳回值
如果函式成功,函式會傳回非零 (TRUE) 。
如果函式失敗,它會傳回零 (FALSE) 。
備註
如果憑證具有 EKU 延伸模組,該延伸模組會列出 物件識別碼 (OID) ,以供該憑證的有效使用。 在 Microsoft 環境中,憑證可能也有 EKU 擴充屬性,可指定憑證的有效用途。
- 如果憑證沒有 EKU 延伸模組或 EKU 擴充屬性,則會假設它對所有用途都有效。
- 如果其具有 EKU 延伸模組或 EKU 擴充屬性,但兩者都無效,它只適用于延伸模組或擴充屬性中指出的使用。
- 如果憑證同時具有 EKU 延伸模組和 EKU 擴充屬性,則僅適用于這兩個清單上的用法。
如果 cUsageIdentifier 成員為零,則憑證可能適用于所有用途,或憑證可能沒有有效的用途。 從 對 GetLastError 的呼叫傳回可用來判斷憑證是否適合所有用途或無。 如果 GetLastError 傳回CRYPT_E_NOT_FOUND,則憑證適用于所有用途。 如果傳回零,則憑證沒有有效的用途。
規格需求
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |