Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Подпись ГОСТовским ключем. Как? / 5 сообщений из 5, страница 1 из 1
23.08.2012, 09:00
    #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
24.08.2012, 10:22
    #37928974
stateistat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подпись ГОСТовским ключем. Как?
Никто не сталкивался с подобным?
...
Рейтинг: 0 / 0
05.09.2012, 10:57
    #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
Период между сообщениями больше года.
10.06.2014, 00:32
    #38665784
Vepr1985
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подпись ГОСТовским ключем. Как?
А не приходилось ли вам тривиально подписать XML при помощи CSP?
...
Рейтинг: 0 / 0
11.06.2014, 08:23
    #38667084
WGA
WGA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подпись ГОСТовским ключем. Как?
Vepr1985А не приходилось ли вам тривиально подписать XML при помощи CSP?С КриптоПро CSP это Вам не в этот форум. Если имелось в виду КриптоПро JCP, то почитайте здесь . Ну и на форуме почитайте, там много вопросов по СМЭВу и подписи XML вообще.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Подпись ГОСТовским ключем. Как? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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