ICertRequest2 :: Отправить данные CSR Совместимость ASCII в BSTR - PullRequest
0 голосов
/ 11 июня 2009

У меня есть мой certrequest в качестве данных PEM base64. См. Данные ниже.

1) Насколько я понимаю, это тип данных ASCII, а не UNICODE формат. Пожалуйста, уточните.

----- НАЧАТЬ НОВЫЙ ЗАПРОС СЕРТИФИКАТА ----- MIIBTjCBuAIBADARMQ8wDQYDVQQDEwZ3dTAwMzEwgZ0wDQYJKoZIhvcNAQEBBQAD gYsAMIGHAoGBAKP48eljetv3fVicT6g6hKjmLpsySJaZ / NnepEJEqtQQNbwsluhW yWxhHWzPoNPV9uqjZBW7EnqYjxyPp1A0vOK35uxmmcNrgmuSjO1WBkD0YVZwzh2u OovRCOwJKklQtJnQWoM + yT8CyBVk7raVJOrLDMC8FR5AMknVCIlt7HppAgEDoAAw DQYJKoZIhvcNAQEFBQADgYEAAK5G10e39GxiNiPXdrOAwtuIiLd1UTWn3VYY7nYY 74LhydUBjo0Xi6HBTTNVlPNoRB9GOe5P1Qgq0EJ6gLIriFY + Gxdl2Y4lSo7FmpxB + 87bRCLpC3mxQltNm97ZysmS4I4diYhPDSS / 2acKeH2cBgAtQVG9KsuZ41qxUQ10 EY8 = ----- КОНЕЦ НОВОГО ЗАПРОСА СЕРТИФИКАТА -----

2) Если вышеуказанные данные находятся в ASCII, как я могу преобразовать их в BSTR, как ICertRequest2 :: Submit требует, чтобы данные были строкой Юникода.

3) Могу ли я преобразовать данные ASCII напрямую в BSTR

Спасибо Радж

Ответы [ 2 ]

0 голосов
/ 12 июня 2009

Или:

  1. Используйте MultiByteToWideChar перед вызовом SysAllocString (или SysAllocStringLen)

  2. Используйте _bstr_t или CComBSTR, которые являются оболочками C ++ для BSTR.

0 голосов
/ 11 июня 2009

US-ASCII является подмножеством UTF-8. Кодированной формой любого символа ASCII является кодировка UTF-8, поэтому преобразование не требуется.

Просто передайте строку как есть, установив флаг CR_IN_BASE64HEADER.

...