Статус: Участник
Группы: Участники
Зарегистрирован: 23.09.2011(UTC) Сообщений: 17
|
1) Считывается имя контейнера из сертификата. Результат - UTF16 Big Endian строка c маркером последовательности байт. 2) Менятеся порядок байт на little endian. Результат - UTF16 Little Endian строка. 3) Вызывается метод CryptAcquireContextW. 4) Метод возвращает 0, GetLastError возвращает 0.
Если вызывается метод CryptAcquireContextA с теми же параметрами что и CryptAcquireContextW, для контейнера не содержащего кирилических символов, то все работает. (Естественно имя контейра в этом случае конвертируется например в UTF8, перед вызовом CryptAcquireContextA)
Вопросы: 1) Поддерживаются ли широкие строки под Linux? 2) Если они не поддерживаются, то в какой кодировке необходимо передавать параметр szContainer в функции CryptAcquireContextA? 3) Что будет если имя контейнера содержит символы не содержащиеся в данной кодировке? 4) Как написать код под Linux, который будет всегда работать в независимости от символов в имени контейнера?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,521
Сказал(а) «Спасибо»: 42 раз Поблагодарили: 618 раз в 428 постах
|
1. да 2. в кодировке файловой системы ОС 3. контейнер не откроется 4. например так: обычно в использовании низкоуровневых ф-ций, типа CryptAcquireContext() нет необходимости. Делаете CryptAcquireCertificateProvateKey() и имя контейнера - не ваша проблема. Если что-то не работает, мы это исправляем. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close