共用方式為


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 屬性值,請設定下列旗標。

意義
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
只取得延伸模組。
CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
只取得擴充屬性值。

[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 擴充屬性,則僅適用于這兩個清單上的用法。
如果dwFlags設定為零,則 CERT_ENHKEY_USAGE結構的cUsageIdentifier成員會設定為 EKU 延伸模組和 EKU 擴充屬性值所決定之憑證的有效使用次數。

如果 cUsageIdentifier 成員為零,則憑證可能適用于所有用途,或憑證可能沒有有效的用途。 從 對 GetLastError 的呼叫傳回可用來判斷憑證是否適合所有用途或無。 如果 GetLastError 傳回CRYPT_E_NOT_FOUND,則憑證適用于所有用途。 如果傳回零,則憑證沒有有效的用途。

規格需求

   
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CertSetEnhancedKeyUsage

增強金鑰使用函式