Gamma Форум

Общий раздел => Общие вопросы => Тема начата: Almat91 от 29 Июль 2015, 16:19:50

Название: Как получить файл .sign
Отправлено: Almat91 от 29 Июль 2015, 16:19:50
Подскажите как получить файл .sign?

Сейчас подпись в виде строки, но УЦГО не принимает такую подпись, требуют файл

var hash = '#{javascript: var base64EncodedDoc = new kz.my.cert.utils.getHashCodeFromDoc(); return base64EncodedDoc.getHashChief(srDocument.getDocument());}';
var signedData = createPkcs7_Str(device, hash, 1, false, object, password, 'gost', '1.3.6.1.4.1.6801.1.2.1')
document.getElementById('#{id:signDataChief}').value = signedData;

Код который подписывает сейчас. Работает через апплет на странице

В библиотеке не нашел функцию который делал бы что нибудь похожее на файл, хотя я бегло осмотрел.
Название: Re: Как получить файл .sign
Отправлено: Sergey от 29 Июль 2015, 16:25:59
Добрый день.
Для получения файла .sign нужно знать его формат.
Какую библиотеку используете?
Название: Re: Как получить файл .sign
Отправлено: Almat91 от 29 Июль 2015, 17:14:13
Честно говоря, мне ЭЦП просто скинули. До этого другой сотрудник разрабатывал, уволился. Так что извиняюсь если немного не то говорю)

Насколько я понял все зависит от этих файлов

crypto-hardware.jar
crypto.gammaprov.jar
commons-logging.jar
sign-applet.jar
xmlsec-1.3.0.jar

Надеюсь я ответил на ваш вопрос)
Название: Re: Как получить файл .sign
Отправлено: Almat91 от 30 Июль 2015, 09:35:05
Никто не может мне помочь?

Дайте какой нибудь пример хотя бы(
Название: Re: Как получить файл .sign
Отправлено: Sergey от 30 Июль 2015, 10:07:09
Тут сложно дать какой нибудь ответ, когда нет понимания что именно надо.
В текущих библиотеках есть методы работы с файловой системой:
crypto-hardware.jar - kz.gamma.hardware.core.file
Пример сохранения данных в файл:
FileHelper fileHelper = new FileHelper();
fileHelper.saveData("данные для сохранения".getBytes(), "C:\\file.bin");

Мы также не разрабатывали систему УЦГО и нам не известны форматы файлов.
Можно предположить что для того чтобы сохранить текущую подпись из первого примера нужно вызвать функцию:
/**
     * Сохранение данных в файл. Данные должны быть закодированы в BASE64 кодировке.
     * Перед сохранением данных они декодируются из BASE64.
     *
     * @param data Данные для сохранения в BASE64 кодировке
     * @param path Путь к файлу
     * @return true, если все ок. Если возвратился false, значит данные не были сохранены.
     * В этом случае смотрите лог Java Console.
     * Получить последнюю возникшую ошибку можно через метод {@link #getLastError()}
     */
    public boolean saveData(String data, String path)

Данная функция тоже экспортируется из библиотеки crypto-hardware.jar, в классе CryptoApplet.
Название: Re: Как получить файл .sign
Отправлено: etbandung от 08 Июль 2021, 00:08:06
прямо как то, что я ищу