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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline booster  
#1 Оставлено : 11 сентября 2015 г. 14:47:29(UTC)
booster

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

Группы: Участники
Зарегистрирован: 17.03.2015(UTC)
Сообщений: 3
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Здравствуйте, возникла необходимость добавить в ЭП кастомный атрибут, содержащий UTF16 строку.
Имеется такой код:
Код:

CERT_RDN_VALUE_BLOB valueBlob;
valueBlob.cbData = (DWORD)dataLength;
valueBlob.pbData = buffer;
    
CERT_NAME_VALUE certNameValue;
certNameValue.dwValueType = CERT_RDN_UNICODE_STRING;
certNameValue.Value = valueBlob;
    
DWORD dwEncodedLength = 0;
bool result = CryptEncodeObject(TYPE_DER, X509_UNICODE_ANY_STRING, &certNameValue, NULL, &dwEncodedLength);

Функция CryptEncodeObject возвращает 0, а CSP_GetLastError() - 0x80092002.
В буфере находятся байты строки в UTF16, пробовал BigEndian и LittleEndian.
Если изменить
CERT_RDN_UNICODE_STRING на CERT_RDN_OCTET_STRING и
X509_UNICODE_ANY_STRING на X509_ANY_STRING
то кодирование происходит успешно.
Подскажите пожалуйста, в чем может быть проблема.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.