ICEnroll::createFilePKCS10 メソッド (xenroll.h)
[このメソッドは、Windows Server 2008 および Windows Vista では使用できなくなりました。
createFilePKCS10 メソッドは、base64 でエンコードされた PKCS #10 証明書要求を作成し、ファイルに保存します。 このメソッドは、 ICEnroll インターフェイスで最初に定義されました。
このメソッドは、base64 でエンコードされた PKCS # 10証明書要求 ( BSTR 形式) を wszPKCS10FileName パラメーターで指定されたファイルに保存する場合にのみ、createPKCS10 メソッドとは異なります。
構文
HRESULT createFilePKCS10(
[in] BSTR DNName,
[in] BSTR Usage,
[in] BSTR wszPKCS10FileName
);
パラメーター
[in] DNName
要求が行われているエンティティの識別名 (DN)。 DNName はX.500 名前付け規則に従う必要があります。 たとえば、"CN=User, O=Microsoft" などです。 2 文字のプレフィックスが存在しない場合は、代わりに オブジェクト識別子 (OID) を指定できます。
[in] Usage
個人または商用の Authenticode 証明書、クライアント認証など、生成される証明書の目的を記述する OID 。 複数の OID をコンマで区切って指定することもできます。
OID は PKCS #10 要求に渡されます。 コントロールは OID を調べません。
[in] wszPKCS10FileName
base64 でエンコードされた PKCS #10 ( BSTR 形式) が保存されるファイルの名前。 このファイルの内容は、処理のために 証明機関 に送信できます。
戻り値
VB
戻り値は HRESULT です。 S_OK の値は成功を示します。メソッドが失敗した場合、戻り値はエラーを示す HRESULT になります。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。
注釈
既定では、Microsoft Base Cryptographic Provider が使用され、一意の署名キーが作成されます。
このメソッドがスクリプトから呼び出されると、 メソッドは、ユーザーが証明書要求の作成を許可するかどうか、およびユーザーがファイル システムへの書き込み操作を許可するかどうかを尋ねるユーザー インターフェイスを表示します。
例
BSTR bstrDN = NULL;
BSTR bstrOID = NULL;
BSTR bstrFileName = NULL;
ICEnroll4 * pEnroll = NULL;
HRESULT hr;
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;
}
// Specify the file name, for example, "myPKCS10.req"
bstrFileName = SysAllocString(TEXT("<FILENAMEHERE>"));
if (NULL == bstrFileName)
{
printf("Memory allocation failed for bstrFileName.\n");
goto error;
}
// Create the PKCS10 (stored in a file).
hr = pEnroll->createFilePKCS10( bstrDN, bstrOID, bstrFileName );
if (FAILED(hr))
{
printf("Failed createFilePKCS10 - %x\n", hr);
goto error;
}
else
printf("Successfully created file containing PKCS10\n");
error:
// Clean up resources and so on.
if ( bstrFileName )
SysFreeString( bstrFileName );
if ( bstrDN )
SysFreeString( bstrDN );
if ( bstrOID )
SysFreeString( bstrOID );
if ( pEnroll )
pEnroll->Release();
CoUninitialize();
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | xenroll.h |
Library | Uuid.lib |
[DLL] | Xenroll.dll |