Сообщение
  • Пожалуйста, прежде пройдите авторизацию

Новый SDK - Подписывание файла JavaApplet
(0 чел.) 
  • Страница:
  • 1

ТЕМА: Новый SDK - Подписывание файла JavaApplet

Новый SDK - Подписывание файла JavaApplet 4 года, 2 мес. назад #1649

  • TROYNIK
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 1
Добрый день.
подписываю файл на стороне клиента с помощью JavaApplet (из SDK)
методом createCMSSignatureFromFile с включением содержимого файла. А также отдельно отправляю файл на сервер.
Если проверять на стороне клиента подпись, то все нормально JavaApplet возвращает что это валидная подпись.
Но проблемы при проверки подписи на стороне сервера и сравнения подписанных данных с оригинальным файлом.

Проверку на сервере делаю на C#. Вот код
using (BIO CurBio = new BIO(Convert.FromBase64String(tbxSignResult.Text)))
{
using (CMS_ContentInfo cms_1 = CMS_ContentInfo.FromDER(CurBio))
{
using (BIO BIOforVerify = BIO.File("c:\\test.png", "r"))
{
if (cms_1.VerifySign(BIOforVerify))
rtbVerifyResult.Text = "Подпись корректна";
else rtbVerifyResult.Text = "Подпись не корректна";
}
}
}

Здесь tbxSignResult.Text - хранится возвращенный JavaApplet-ом текст после подписания
test.png - это оригинальный подписанный файл.

Так здесь метод cms_1.VerifySign(BIOforVerify) Возвращает false.
а вызов метода cms_1.ExtractData() возвращает вообще другой набор байтов нежели чем оригинальный подписанный файл.
Я что-то делаю не так?

Кстати хотелось бы добавить, что если подписывать на стороне сервера и там же проверять (C#), то все работает корректно
Изменено: 4 года, 2 мес. назад от TROYNIK.

Re: Новый SDK - Подписывание файла JavaApplet 4 года, 2 мес. назад #1665

  • TROYNIK
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 1
Добрый день.
Этот вопрос для нашей организации важен.
дайте пожалуйста ответ.
Пока что может быть содержимое файла переводит в base64 и его подписывать как строку?
Тогда смена например название файла (или других свойств файла) не приведет к некорректному эцп.
Только изменения содержимого приведет к неправильному эцп.
Это корректно или нет? Для нас важно только содержимое файла
Изменено: 4 года, 2 мес. назад от TROYNIK.

Re: Новый SDK - Подписывание файла JavaApplet 4 года, 2 мес. назад #1666

  • ugotbug
  • Завсегдатай
  • Постов: 225
  • Репутация: 14
Здравствуйте, пришлите нам, пожалуйста, исходный файл, который подписываете и саму полученную подпись.
Могущественный обладатель кольца Знаний

Re: Новый SDK - Подписывание файла JavaApplet 4 года, 2 мес. назад #1667

  • TROYNIK
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 1
Вот код на JavaScript для подписания файла
       
        //Функция подписания файла
        function createCMSSignatureFromFile() {
            var SignResult = null;
            var filePath = "C:\Users\bokibayev.n\Desktop\1.png";
            SignResult = appletControl.createCMSSignatureFromFile(strStorageAlias, strCertPath, strCertKeyAlias, strCertPassword, filePath, true);
                if (SignResult.getErrorCode() === "NONE") {
                    $("#FileSignResult").val(SignResult.getResult());
                }
                else {
                    $("#FileSignResult").val("");
                    ShowError(KSP_GetErrorText(SignResult.getErrorCode()));
                }            
        }

сам подписываемый файл во вложении под названием 1.png
результат подписания во втором вложенном файле Result.txt (кодировка "utf-8")
Вложения:
Изменено: 4 года, 2 мес. назад от TROYNIK.
  • Страница:
  • 1
FaLang translation system by Faboba