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 에는 BASE64로 인코딩된 PKCS #10 요청( BSTR 형식)이 포함됩니다. 형식은 처리를 위해 웹 서버에 직접 게시할 수 있도록 합니다.

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