Статус: Новичок
Группы: Участники
Зарегистрирован: 13.04.2017(UTC) Сообщений: 1 Откуда: Москва
|
Добрый день! Пытаюсь создать запрос на сертификат. Часть атрибутов на русском языке. Заполняю так: Вариант 1. Код:
lValue.Attach(iStr);
const size_t liValueSize = (lValue.Length() + 1) * 2;
char *cValue = new char[liValueSize];
CW2A lcValue(lValue);
strcpy_s(cValue, liValueSize, lcValue);
mNameAttr[mAttrNum].Value.pbData = (BYTE*)cValue;
mNameAttr[mAttrNum].Value.cbData = lValue.Length();
mNameAttr[mAttrNum].dwValueType = CERT_RDN_UTF8_STRING;
Код:
lValue.Attach(iStr);
UINT lCodepage;
int lValueLen = WideCharToMultiByte(CP_UTF8, 0, lValue, lValue.Length(), NULL, 0, NULL, NULL);
LPSTR lValueStr = (LPSTR)malloc(lValueLen);
WideCharToMultiByte(CP_UTF8, 0, lValue, lValue.Length(), lValueStr, lValueLen, NULL, NULL);
mNameAttr[mAttrNum].Value.cbData = (DWORD)lValueLen;
mNameAttr[mAttrNum].Value.pbData = (BYTE*)lValueStr;
Все входные переменные - BSTR. В обоих случаях получаю корректный запрос(с точки зрения структуры). Если iStr содержит только латинские символы - все хорошо. Но вся кириллица превращается в нечитаемые иероглифы. При этом отладчик во всех случаях видит строки корректно. Что-то случается дальше. Тип атрибута должен быть CERT_RDN_UTF8_STRING - менять не могу. Что я делаю не так?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close