Перейти к контенту

Применение Vipnet Csp Для Подписывания Бинарных Файлов


Рекомендуемые сообщения

Добрый день!

Необходимо подписывать в браузере бинарные файлы, формируемые на сервере.

Проблема в том, что и Capicom и ITCCSPCOM имеют входной параметр символьного типа.

В интернете нашлось решение: с помощью вспомогательного объекта Capicom.Utilities преобразовывать данные

в так называемый тип "BinaryString". Насколько я понял, это просто приведение массива байт к строке символов Юникода, т.е.

каждые 2 байта рассматриваются без преобразования как 1 символ строки. При подписывании Capicom подписывает

массив байтов. При этом интернет говорит, что при использовании Capicom возникает проблема с урезанием последнего байта,

если длина файла является нечетным числом и различные способы обхода этой проблемы.

В результате я пришел к следующему варианту:

Для передачи данных с сервера в браузер использую кодировку base64.

На клиенте с помощью Capicom.Utilities строка base64 перекодируется в "BinaryString".

Полученный результат передается как параметр в метод SignData ITCCSPCOM.

Собственно вопросы:

1) будет ли в ITCCSPCOM правильно подписывать данные в формате BinaryString?

2) Может быть есть более простой способ подписать бинарные данные?

3) Метод SelectCertificate имеет параметр wLastCert. По документации сказано, что можно передавать "идентификатор ключа субъекта последнего

использованного сертификата". Как его получить с помощью ITCCSPCOM ?

PS. В идеале было бы замечательно, если бы ITCCSPCOM поддерживал подписывание бинарных данныx, закодированных строкой в кодировке base64 или hex.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...

Ответы от разработчиков:

  1. >Будет ли в ITCCSPCOM правильно подписывать данные в формате BinaryString?

Почему бы и нет. Вопрос в том будут ли использоваться иные средства проверки подписи. В такой системе должно действовать некоторое соглашение о кодировании данных для подписи так что бы данные представлялись в одинаковом виде для подписи и для проверки подписи.

  1. для подписи файлов не надо использовать COM. Для подписи данных, представленных в виде файла есть функция CryptSignMessage которую и следует использовать. COM объекты предназначены больше именно для работы с полями Web форм и потому принимают на вход данные именно в текстовом виде.

По третьему вопросу пока ответа не было, вообще, если Вы занимаетесь встраиванием CSP в ваше ПО, рекомендую обращаться в компанию напрямую, в службу поддержки, для начала, так быстрее можно получить помощь от разработчиков и, возможно, решить имеющиеся проблемы...

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...

Важная информация

Продолжая пользоваться сайтом вы принимаете Условия использования.