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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline akulema  
#1 Оставлено : 22 декабря 2008 г. 14:25:41(UTC)
akulema

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.10.2008(UTC)
Сообщений: 70

Есть придуманное расширение для сертификата - роль пользователя. Пытаюсь записать ее, но получаю вместо русских букв крокозябликов, уж извините.

Код:
  
                char *strRoles= new char [sUserRoles.GetLength()+1];
		strcpy(strRoles, certInfo.sUserRoles);

               CERT_NAME_VALUE roles;
		roles.dwValueType = CERT_RDN_UNICODE_STRING;
		roles.Value.cbData = sUserRoles.GetLength()+1;
		roles.Value.pbData = (PBYTE)strRoles;

		CryptEncodeObject(APL_ENCODING_TYPE, X509_UNICODE_ANY_STRING, &roles,
			NULL, &cbExtEncodedRole);
		pbExtEncodedRole= new BYTE [cbExtEncodedRole];
		CryptEncodeObject(APL_ENCODING_TYPE, X509_UNICODE_ANY_STRING, &roles,
			pbExtEncodedRole, &cbExtEncodedRole);

		//запись ролей
		CertExtension[CertInfo.cExtension].pszObjId= szOID_USER_ROLE_SET;
		CertExtension[CertInfo.cExtension].fCritical= FALSE;
		CertExtension[CertInfo.cExtension].Value.cbData = cbExtEncodedRole;
		CertExtension[CertInfo.cExtension].Value.pbData = pbExtEncodedRole;

		CertInfo.cExtension++;


Может, что то не так делаю?
Offline Kirill Sobolev  
#2 Оставлено : 22 декабря 2008 г. 15:19:36(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
А в каком месте эти крокозяблики видны?
Техническую поддержку оказываем тут
Наша база знаний
Offline akulema  
#3 Оставлено : 22 декабря 2008 г. 15:40:05(UTC)
akulema

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.10.2008(UTC)
Сообщений: 70

Открываю сертификат, смотрю его расширения. Отображаются точки в значении. Если Записывать английскими буквами, то все нормально
Offline Kirill Sobolev  
#4 Оставлено : 22 декабря 2008 г. 17:33:34(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
потому что "char *strRoles" - не юникодная строка, соответственно и окно ее так воспринимает.
Техническую поддержку оказываем тут
Наша база знаний
Offline akulema  
#5 Оставлено : 22 декабря 2008 г. 18:09:10(UTC)
akulema

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.10.2008(UTC)
Сообщений: 70

Попробовал вот так (подобным образом я записывал русские буквы в основные поля сертификата)

Код:
                      WCHAR* unicodeConvertedString = T2W(certInfo.sUserRoles.GetBuffer());
				certInfo.sUserRoles.ReleaseBuffer();

				CERT_NAME_VALUE roles;
				roles.dwValueType = CERT_RDN_UNICODE_STRING;
				roles.Value.cbData = strlen(certInfo.sUserRoles)*2;
				roles.Value.pbData = (BYTE*)(unicodeConvertedString);
		
				CryptEncodeObject(APL_ENCODING_TYPE, X509_UNICODE_ANY_STRING, &roles,
					NULL, &cbExtEncodedRole);
				pbExtEncodedRole= new BYTE [cbExtEncodedRole];
				CryptEncodeObject(APL_ENCODING_TYPE, X509_UNICODE_ANY_STRING, &roles,
					pbExtEncodedRole, &cbExtEncodedRole);
		
				//запись ролей
				CertExtension[CertInfo.cExtension].pszObjId= szOID_USER_ROLE_SET;
				CertExtension[CertInfo.cExtension].fCritical= FALSE;
				CertExtension[CertInfo.cExtension].Value.cbData = cbExtEncodedRole;
				CertExtension[CertInfo.cExtension].Value.pbData = pbExtEncodedRole;


Ну так тоже не показывает
Offline Kirill Sobolev  
#6 Оставлено : 22 декабря 2008 г. 19:45:51(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
можно посмотреть на оба сертифката, с английскими и русскими буквами?
Техническую поддержку оказываем тут
Наша база знаний
Offline akulema  
#7 Оставлено : 24 декабря 2008 г. 19:26:50(UTC)
akulema

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.10.2008(UTC)
Сообщений: 70

К сожалению сейчас не могу, но при первой возможности выложу, спасибо.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.