Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Cyrick  
#1 Оставлено : 13 апреля 2017 г. 16:32:11(UTC)
Cyrick

Статус: Новичок

Группы: Участники
Зарегистрирован: 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 - менять не могу.
Что я делаю не так?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.