powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Подпись ГОСТовским ключем. Как?
5 сообщений из 5, страница 1 из 1
Подпись ГОСТовским ключем. Как?
    #37927385
stateistat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть следующая задача:
Web приложение должно подписывать PDF файлы так, что в нем видна валидная подпись. Web крутится на Томкате. Соответственно оперируем явой. Ключ лежит на eTokene. Ключ обязательно ГОСТовский. В наличии также есть CryptoPro CSP. Подпись валидируется CryptoPro PDF.
Что достигнуто на данный момент:
1) eToken + CAPICOM(Web) + CryptoPro CSP = документ PDF валидно подписанный RSA ключем.
2) eToken + CryptoPro JCP + чистая Ява = документ PDF валидно подписанный ГОСТ ключем.
3) eToken + CAPICOM(Web) + CryptoPro CSP + CryptoPro JCP = документ PDF подписанный ГОСТ ключем, но пишет, что подписанный контент был изменен.
Выяснилось, что CAPICOM корячит строку в Unicode. Возможно это дает эффект измененного контента.
Подозреваю, что те, кто реализовал алгоритмы под RSA учитывали такую особенность CAPICOM. CryptoPro на это забил. Но это только предположение.

Соответственно вопрос: могу я что-то выкрутить ещё из этого программного комплекта или можно попробовать что-то ещё? Желательно небольшими затратами.
Ещё раз повторюсь. Нужно: eToken + ГОСТ + Web + PDF = CryptoPro PDF показывает полностью валидную подпись в PDF.
...
Рейтинг: 0 / 0
Подпись ГОСТовским ключем. Как?
    #37928974
stateistat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никто не сталкивался с подобным?
...
Рейтинг: 0 / 0
Подпись ГОСТовским ключем. Как?
    #37944067
stateistat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказалась, проблема решается тривиально.

Код: javascript
1.
var signature = SignedData.Sign(Signer, true(!!!!!), CAPICOM_ENCODE_BASE64);



То что возвращает Sign кладем в

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
            PdfReader reader = new PdfReader(path + fileName);
            PdfStamper stamper = PdfStamper.createSignature(reader, new FileOutputStream(OUT_DIR + fileName), '\0');
            PdfSignatureAppearance sap = stamper.getSignatureAppearance();
            sap.setSignDate(new GregorianCalendar());
            Certificate cert = getCertificate();
            Certificate[] chain = {cert};
            sap.setCrypto(null, chain, null, null);
            sap.setAcro6Layers(true);
            sap.setRenderingMode(PdfSignatureAppearance.RenderingMode.DESCRIPTION);

            PdfName filterName = new PdfName("CryptoPro PDF");

            PdfSignature dic;
            dic = new PdfSignature(filterName, PdfName.ADBE_PKCS7_DETACHED);
            dic.setDate(new PdfDate(sap.getSignDate()));
            dic.setName(PdfPKCS7.getSubjectFields((X509Certificate)cert).getField("CN"));
            sap.setCryptoDictionary(dic);
            HashMap<PdfName, Integer> exc = new HashMap<PdfName, Integer>();
            exc.put(PdfName.CONTENTS, new Integer(csize * 2 + 2));
            sap.preClose(exc);

            byte[] hash = IOUtils.toByteArray(sap.getRangeStream()); // Это отправляем на подпись!!!!!


            byte[] data = // Сюда кладем возвращенное из CAPICOM!!!!!

            byte[] outc = new byte[csize];
            PdfDictionary dic2 = new PdfDictionary();
            System.arraycopy(data, 0, outc, 0, data.length);
            dic2.put(PdfName.CONTENTS, new PdfString(outc).setHexWriting(true));
            appearance.close(dic2);



И всё! Все сложные примеры из iText in Action только усложнили поиск решения.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Подпись ГОСТовским ключем. Как?
    #38665784
Vepr1985
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не приходилось ли вам тривиально подписать XML при помощи CSP?
...
Рейтинг: 0 / 0
Подпись ГОСТовским ключем. Как?
    #38667084
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
Vepr1985А не приходилось ли вам тривиально подписать XML при помощи CSP?С КриптоПро CSP это Вам не в этот форум. Если имелось в виду КриптоПро JCP, то почитайте здесь . Ну и на форуме почитайте, там много вопросов по СМЭВу и подписи XML вообще.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Подпись ГОСТовским ключем. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]