ICEnroll::createPKCS10 方法 (xenroll.h)
[此方法已不再可供 Windows Server 2008 和 Windows Vista 使用。]
createPKCS10 方法會建立 base64 編碼的 PKCS #10 憑證要求。 這個方法最初是在 ICEnroll 介面中定義。
此base64編碼的 PKCS #10 憑證要求 (BSTR 窗體) 可以提交至 證書頒發機構單位 ,以要求將憑證發行給其資訊包含的人員或實體。
語法
HRESULT createPKCS10(
[in] BSTR DNName,
[in] BSTR Usage,
[in] BSTR *pPKCS10
);
參數
[in] DNName
進行要求之實體的辨別名稱 (DN) 。 在此參數中,DN 名稱必須遵循 X.500 命名慣例。 例如 “CN=User, O=Microsoft”。 如果兩個字母前置詞不存在,可能會改為提供 OID 。
[in] Usage
描述所產生憑證目的 的物件標識碼 (OID) 。 例如,個別或商業 Authenticode 憑證或客戶端驗證。 您也可以指定以逗號分隔的多個 OID。
OID 會傳遞至 PKCS #10 要求。 為了一般擴充性和容易理解,控件不會嘗試瞭解特定用途的 OID。 因此,如果您指定客戶端驗證 OID,產生的金鑰仍會是簽章密鑰,而不是 交換金鑰。
[in] pPKCS10
傳回的base64編碼 PKCS10 憑證要求。
傳回值
C++
傳回值為 HRESULT。 值S_OK表示成功。 成功完成此函式之後, pPKCS10 會以 BSTR 形式包含base64編碼的PKCS #10要求 () 。 格式如此一來,就可以直接張貼到網頁伺服器進行處理。VB
傳回的base64編碼 PKCS10 憑證要求。備註
根據預設,會使用 Microsoft 基底密碼編譯提供者,PROV_RSA_FULL為提供者類型、建立簽章密鑰,並建立唯一的新密鑰集。
從腳本呼叫這個方法時,此方法會顯示使用者介面,詢問使用者是否允許建立憑證要求。
範例
BSTR bstrDN = NULL;
BSTR bstrReq = NULL;
BSTR bstrOID = NULL;
ICEnroll4 * pEnroll = NULL;
HRESULT hr;
// initialize COM
hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
if (FAILED(hr))
{
printf("Failed CoInitializeEx - %x\n", hr);
goto error;
}
hr = CoCreateInstance( __uuidof(CEnroll),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(ICEnroll4),
(void **)&pEnroll);
if (FAILED(hr))
{
printf("Failed CoCreateInstance - pEnroll [%x]\n", hr);
goto error;
}
// generate the DN for the cert request
bstrDN = SysAllocString( TEXT("CN=Your Name") // common name
TEXT(",OU=Your Unit") // org unit
TEXT(",O=Your Org") // organization
TEXT(",L=Your City") // locality
TEXT(",S=Your State") // state
TEXT(",C=Your Country") ); // country/region
if (NULL == bstrDN)
{
printf("Memory allocation failed for bstrDN.\n");
goto error;
}
// generate the OID, for example, "1.3.6.1.4.1.311.2.1.21".
bstrOID = SysAllocString(TEXT("<OIDHERE>"));
if (NULL == bstrOID)
{
printf("Memory allocation failed for bstrOID.\n");
goto error;
}
// create the PKCS10
hr = pEnroll->createPKCS10( bstrDN, bstrOID, &bstrReq );
if (FAILED(hr))
{
printf("Failed createPKCS10 - %x\n", hr);
goto error;
}
else
// do something with the PKCS10 (bstrReq);
error:
//clean up resources, and so on
if ( bstrDN )
SysFreeString( bstrDN );
if ( bstrOID )
SysFreeString( bstrOID );
if ( bstrReq )
SysFreeString( bstrReq );
if ( pEnroll )
pEnroll->Release();
CoUninitialize();
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | xenroll.h |
程式庫 | Uuid.lib |
Dll | Xenroll.dll |