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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline coldplay  
#1 Оставлено : 16 февраля 2016 г. 11:43:45(UTC)
coldplay

Статус: Активный участник

Группы: Участники
Зарегистрирован: 16.02.2016(UTC)
Сообщений: 60

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Здравствуйте. Имеется зашифрованный подписанный файл file.sig.enc.xml. Прочитав эту тему http://www.cryptopro.ru/....aspx?g=posts&t=7242 , пытаюсь расшифровать используя код :


Код:
 
final byte[] var1 = Array.readFile(new File(encrypted_file_path));
        String keystoreFilename = keystore_folder_path;

        final Asn1BerEncodeBuffer ebuf = new Asn1BerEncodeBuffer();
        final byte[] encodedPub = ebuf.getMsgCopy();

        //Загрузка хранилища
        HDImageStore.setDir(keystoreFilename);
        KeyStore hdImageStore = KeyStore.getInstance("HDImageStore");
        hdImageStore.load(null, null);
        char[] password = "password".toCharArray();
        String alias = "alias";

        //получатель - закрытый ключ
        final PrivateKey responderKey = (PrivateKey) hdImageStore.getKey(alias, password);

        Certificate var2 = generateCert(keystoreFilename+"/certificate.cer");

        ByteArrayOutputStream decryptedByteDataStream = new ByteArrayOutputStream();
        EnvelopedSignature signature = null;
        signature = new EnvelopedSignature(new ByteArrayInputStream(var1));
        signature.decrypt((X509Certificate) var2, responderKey, decryptedByteDataStream);
        byte[] decryptedData = decryptedByteDataStream.toByteArray();
        System.out.println(new String(decryptedData));


На методе signature.decrypt() получаю ошибку :

Exception in thread "main" ru.CryptoPro.CAdES.exception.EnvelopedException: Decoding of encrypted context failed
at ru.CryptoPro.CAdES.EnvelopedSignature.decrypt(Unknown Source)
at aaa.DecodeJCP.main(DecodeJCP.java:154)
Caused by: ru.CryptoPro.CAdES.exception.EnvelopedException: Input cipher initiation failed
at ru.CryptoPro.CAdES.a.a.b.<init>(Unknown Source)
at ru.CryptoPro.CAdES.a.a.c.getRecipientOperator(Unknown Source)
at org.bouncycastle.cms.KeyTransRecipientInformation.getRecipientOperator(Unknown Source)
at org.bouncycastle.cms.RecipientInformation.getContentStream(Unknown Source)
at org.bouncycastle.cms.RecipientInformation.getContent(Unknown Source)
... 2 more
Caused by: java.security.InvalidKeyException: Signature key is not allowed for this operation.
at ru.CryptoPro.Crypto.Cipher.TransportCipher.engineInit(Unknown Source)
at javax.crypto.Cipher.init(Cipher.java:1210)
at javax.crypto.Cipher.init(Cipher.java:1153)
... 7 more

Что может быть не так ? Заранее спасибо !

Отредактировано пользователем 16 февраля 2016 г. 12:07:19(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 16 февраля 2016 г. 11:55:19(UTC)
Андрей *

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

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

Сказал «Спасибо»: 553 раз
Поблагодарили: 2243 раз в 1749 постах
Автор: coldplay Перейти к цитате
Здравствуйте. Имеется зашифрованный подписанный файл file.enc.sig.xml.

Здравствуйте.
Исходя из следования расширений .enc.sig. - это подписанный зашифрованный файл.
Т.е. сначала нужно "снять подпись", извлечь подписанные данные, а только потом расшифровать и получить XML.
Техническую поддержку оказываем тут
Наша база знаний
Offline coldplay  
#3 Оставлено : 16 февраля 2016 г. 12:06:54(UTC)
coldplay

Статус: Активный участник

Группы: Участники
Зарегистрирован: 16.02.2016(UTC)
Сообщений: 60

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Извините , опечатка =) Пример имени файла 2016_02_07_06_00_00.sig.enc.xml
Поправил в первом сообщении.

Отредактировано пользователем 16 февраля 2016 г. 12:08:16(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 16 февраля 2016 г. 12:26:39(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте.

Автор: coldplay Перейти к цитате
Caused by: java.security.InvalidKeyException: Signature key is not allowed for this operation.
at ru.CryptoPro.Crypto.Cipher.TransportCipher.engineInit(Unknown Source)


Видимо, используется ключ подписи. Для key_transport структуры должен использоваться ключ обмена. Как было сфомировано сообщение?

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
coldplay оставлено 24.02.2016(UTC)
Offline coldplay  
#5 Оставлено : 24 февраля 2016 г. 12:59:20(UTC)
coldplay

Статус: Активный участник

Группы: Участники
Зарегистрирован: 16.02.2016(UTC)
Сообщений: 60

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Спасибо, за подсказку. Проблема была в ключах.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.