GetAlgorithmOid 方法會取得演算法物件識別碼(OID)。 此方法已啟用 Web。
語法
HRESULT GetAlgorithmOid(
[in] LONG Length,
[in] AlgorithmFlags AlgFlags,
[out] IObjectId **ppValue
);
參數
[in] Length
一個 LONG 變數,用來識別對稱加密演算法所需的金鑰大小。 使用此參數可從密碼學 API:下一代(CNG)金鑰儲存提供者(KSP)中擷取特定 AES 演算法。 一個 KSP 只能列出一種名為 AES 的演算法,但支援以下列表中所有 AES 變體:
- szOID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2)
- szOID_NIST_AES192_CBC (2.16.840.1.101.3.4.1.22)
- szOID_NIST_AES256_CBC (2.16.840.1.101.3.4.1.42)
- szOID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
- szOID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
- szOID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)
如果你將 Length 參數設為零,AlgFlags 參數設為 AlgorithmFlagsNone (0x00000000),則會取得與預設演算法相關的 OID。 對於Microsoft軟體KSP和Microsoft智慧卡KSP,預設的AES演算法為szOID_NIST_AES128_CBC(2.16.840.1.1.101.3.4.1.2)。
[in] AlgFlags
AlgorithmFlags 是列舉值,指定是否要搜尋金鑰包裝演算法。 這可以是下列其中一個值:
- 演算法旗標無
- 演算法旗標包裝
指定 AlgorithmFlagsWrap 會使此方法搜尋顯示名稱以「wrap」結尾的演算法。 這包括以下OID:
- szOID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
- szOID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
- szOID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)
- XCN_OID_RSA_SMIMEalgCMS3DESwrap (1.2.840.113549.1.9.16.3.6)
- XCN_OID_RSA_SMIMEalgCMSRC2wrap (1.2.840.113549.1.9.16.3.7)
如果你將 Length 參數設為零,AlgFlags 參數設為 AlgorithmFlagsNone (0x00000000),則會取得與預設演算法相關的 OID。 對於Microsoft軟體KSP和Microsoft智慧卡KSP,預設的AES演算法為szOID_NIST_AES128_CBC(2.16.840.1.1.101.3.4.1.2)。
[out] ppValue
一個變數的位址,該變數接收到代表演算法 OID 的 IObjectId 介面指標。
返回值
如果函式成功,函式會傳回 S_OK。
如果函式失敗,它會傳回指出錯誤的 HRESULT 值。 可能的值包括但不限於下表中的值。 如需常見錯誤碼的清單,請參閱 常見的 HRESULT 值。
| 傳回碼/值 | Description |
|---|---|
|
未找到 OID 演算法。 |
|
CSP 資訊尚未初始化。 欲了解更多資訊,請參閱 ICspInformation 介面。 |
備註
你必須在 ICspInformation 介面上呼叫 InitializeFromName 方法或 InitializeFromType 方法,才能呼叫 GetAlgorithmOid。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | certenroll.h |
| DLL | CertEnroll.dll |