VAlex Опубликовано 30 Сентября 2013 Жалоба Поделиться Опубликовано 30 Сентября 2013 Добрый день!Необходимо подписывать в браузере бинарные файлы, формируемые на сервере.Проблема в том, что и 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. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Echo Опубликовано 20 Декабря 2013 Жалоба Поделиться Опубликовано 20 Декабря 2013 Ответы от разработчиков:>Будет ли в ITCCSPCOM правильно подписывать данные в формате BinaryString?Почему бы и нет. Вопрос в том будут ли использоваться иные средства проверки подписи. В такой системе должно действовать некоторое соглашение о кодировании данных для подписи так что бы данные представлялись в одинаковом виде для подписи и для проверки подписи.для подписи файлов не надо использовать COM. Для подписи данных, представленных в виде файла есть функция CryptSignMessage которую и следует использовать. COM объекты предназначены больше именно для работы с полями Web форм и потому принимают на вход данные именно в текстовом виде.По третьему вопросу пока ответа не было, вообще, если Вы занимаетесь встраиванием CSP в ваше ПО, рекомендую обращаться в компанию напрямую, в службу поддержки, для начала, так быстрее можно получить помощь от разработчиков и, возможно, решить имеющиеся проблемы... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.