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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline engineer  
#1 Оставлено : 2 июля 2008 г. 18:56:31(UTC)
engineer

Статус: Участник

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

Добрый день!

Задача:
Подписать на web-клиенте бинарные данные (данные будут переданы с сервера, например в формате Base64).

Проблема:
1. Свойство CAPICOM.SignedData.Content, имеет тип String.
http://msdn.microsoft.co...ary/aa387724(VS.85).aspx
[Property Content As String]

2. JavaScript не работает с бинарными данными.

Вопрос:
Возможно ли на web-клиенте через JavaScript + CAPICOM, подписать бинарные данные полученные с сервера?

P.S. Разумно было предположить, что если свойство Content имеет текстовый тип, то возможно бинарные данные можно подписать, если предварительно их преобразовать в некий текстовый формат, я натолкнулся на некий класс "Utilities Object", который предоставляет методы преобразования бинарных данных в B64 и "Binary String".
Offline Kirill Sobolev  
#2 Оставлено : 2 июля 2008 г. 19:37:08(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
String для CAPICOM - это не обязательно именно текст, там могут лежать и бинарные данные, полученные например, как Вы правильно заметили, с помощью CAPICOM.Utilities. Так что если Вам удалось в скрипте получить бинарную строку каким-то образом - можете смело ее передавать в SignedData.Content.
Техническую поддержку оказываем тут
Наша база знаний
Offline engineer  
#3 Оставлено : 5 июля 2008 г. 18:43:34(UTC)
engineer

Статус: Участник

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

Удалось организовать работу с бинарой следующим образом:
1. Серверная сторона трансформирует бинарный контент в Base64
2. Клиент перед передачей в SignedData.Content производит соответственно обратную трансформацию из Base64, средствами CAPICOM.Utilites.
Меня только смущает, что метод Base64Decode из CAPICOM.Utilites (http://msdn.microsoft.com/en-us/library/aa388177(VS.85).aspx), имеет сигнатуру:

Код:
Function Base64Decode( _
  ByVal EncodedString As String _
) As String


,т.е. возвращает строку (!). По скольку BSTR хранит свой размер, и следовательно строка может содержать char(0)
(Internally, the BSTR string is length prefixed, null terminated and may contain nulls within the body of the string. - http://www.geocities.com/Jeff_Louie/bstr.html)

, то bin-данные вида: "0_____1" (где '_' - char(0)) совершенного нормального проходят через эту цепочку трансформаций, а не 'рубятся' на "0_".
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.