Jump to content
Sign in to follow this  
VAlex

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

Recommended Posts

Добрый день!

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

Проблема в том, что и 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.

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site, you agree to our Terms of Use.