Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AndyPh  
#1 Оставлено : 28 сентября 2017 г. 14:18:19(UTC)
AndyPh

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.09.2017(UTC)
Сообщений: 6
Российская Федерация
Откуда: Москва

Используем Криптопро JCP для расшифровки файла, зашифрованного через КриптоАРМ +Криптопро CSP. Используем CMSdecrypt.java из дистрибутива в качестве образца ( сборка jcp-2.0.39014)
Все хорошо, кроме одного случая. КриптоАРМ дает возможность использовать разные ГОСТ для ключа и криптопровайдера- напр, криптопровайдер по ГОСТу 34.10-2012, а ключ старый - с алгоритмом подписи ГОСТ Р 34.11/34.10-2001
Такой файл ( если он длиннее 1 КБ) расшифровать не удается, причем первые 1024 байта расшифровываются нормально.
Дайте совет, пожалуйста, какие параметры откуда взять и куда поставить, чтобы расшифровать такой файл с помощью JCP ?

Offline Евгений Афанасьев  
#2 Оставлено : 2 октября 2017 г. 9:30:06(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,005
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Здравствуйте.
Не могли бы вы привести конкретный пример для воспроизведения?
Offline AndyPh  
#3 Оставлено : 2 октября 2017 г. 11:58:15(UTC)
AndyPh

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.09.2017(UTC)
Сообщений: 6
Российская Федерация
Откуда: Москва

crypttests.zip (992kb) загружен 8 раз(а).
Offline Евгений Афанасьев  
#4 Оставлено : 4 октября 2017 г. 17:43:23(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,005
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Проверил с помощью CAdES.jar (JCP 2.0), класс EnvelopedSignature:
Код:

key12csp01.zip.enc зашифрован в адрес получателя k1707g12
key01csp12.zip.enc зашифрован в адрес получателя k1708g01
key01cspstrong.zip.enc зашифрован в адрес получателя k1708g01

Все файлы успешно расшифровались, архивы распаковываются (файл garbage.txt ~ 18.5 Mb).
Пример кода (можно расшифровывать, читая поток, при использовании другой версии decrypt):
Код:

import ru.CryptoPro.CAdES.EnvelopedSignature;
import ru.CryptoPro.JCP.JCP;
import ru.CryptoPro.JCP.tools.Array;

import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;

import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;

public class AndyPhCheck {

    private static final String PATH = "<папка_с_файлами>\";

    private static void decode(String encodedFile, String
       decodedFile, String alias, char[] password) throws Exception {

        System.out.println("Decrypting " + encodedFile);
        byte[] encoded = Array.readFile(PATH + encodedFile);

        EnvelopedSignature envelopedSignature = new EnvelopedSignature(new ByteArrayInputStream(encoded));

        KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
        keyStore.load(null, null);

        PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, password);
        X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias);

        FileOutputStream decoded = new FileOutputStream(PATH + decodedFile);
        envelopedSignature.decrypt(cert, privateKey, decoded);

        decoded.close();
        System.out.println("Decrypted.");

    }

    public static void main(String[] args) throws Exception {

        decode("key12csp01.zip.enc", "key12csp01.decoded.zip", "k1707g12", null);
        decode("key01csp12.zip.enc", "key01csp12.decoded.zip", "k1708g01", null);
        decode("key01cspstrong.zip.enc", "key01cspstrong.decoded.zip", "k1708g01", null);

    }

}

Вы иначе расшифровываете?

Отредактировано пользователем 4 октября 2017 г. 17:44:14(UTC)  | Причина: Не указана

Offline AndyPh  
#5 Оставлено : 4 октября 2017 г. 19:13:16(UTC)
AndyPh

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.09.2017(UTC)
Сообщений: 6
Российская Федерация
Откуда: Москва

Спасибо!
Мы действительно расшифровывали совсем иначе. Попробуем этот способ. CadeS мы совсем не устанавливали и не использовали ( как в примере CMSDecrypt.java)
Offline AndyPh  
#6 Оставлено : 9 октября 2017 г. 15:39:30(UTC)
AndyPh

Статус: Новичок

Группы: Участники
Зарегистрирован: 28.09.2017(UTC)
Сообщений: 6
Российская Федерация
Откуда: Москва

Проверили, с помошью CAdES все расшифровалось. спасибо!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.