다음을 통해 공유


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"입니다. 두 글자 접두사 없는 경우 OID( 개체 식별자 )를 대신 제공할 수 있습니다.

[in] Usage

생성되는 인증서의 용도(예: 개별 또는 상업용 Authenticode 인증서 또는 클라이언트 인증)를 설명하는 OID 입니다. 쉼표로 구분된 여러 OID를 지정할 수도 있습니다.

OID는 PKCS #10 요청에 전달됩니다. 컨트롤은 OID를 검사하지 않습니다.

[in] wszPKCS10FileName

BASE64로 인코딩된 PKCS #10( BSTR 형식)이 저장되는 파일의 이름입니다. 이 파일의 내용은 처리를 위해 인증 기관에 제출될 수 있습니다.

반환 값

VB

반환 값은 HRESULT입니다. S_OK 값은 성공을 나타냅니다.

메서드가 실패하면 반환 값은 오류를 나타내는 HRESULT 입니다. 일반적인 오류 코드 목록은 일반 HRESULT 값을 참조하세요.

설명

기본적으로 Microsoft 기본 암호화 공급자가 사용되고 고유한 서명 키가 만들어집니다.

스크립트에서 이 메서드를 호출하면 메서드는 사용자가 인증서 요청 생성을 허용할지 여부와 사용자가 파일 시스템에 대한 쓰기 작업을 허용할지 여부를 묻는 사용자 인터페이스를 표시합니다.

예제

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
라이브러리 Uuid.lib
DLL Xenroll.dll