次の方法で共有


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