Статус: Новичок
Группы: Участники
Зарегистрирован: 21.01.2008(UTC) Сообщений: 1 Откуда: Санкт-Петербург
|
Попробовал встроить вашу реализацию Cipher, напоролся на кучу ошибок. 1) Некорректно работает вызов update() с массивом из 1-2х байтов в режимах гаммирования (если его вызывать более 1 раза) - полученные данные потом не расшифровать. 2) Не работает метод doFinal() без аргументов, вылетает NullPointerException. Этим методом пользуются стандартные классы CipherInputStream/CipherOutputStream, соответственно их использование становится невозможным. 3) Полученый объект Cipher нельзя инициализировать повторно. Стандартная реализация от Sun это позволяет, в документации так же запретов нет. Вот кратенький тест всего этого безобразия (в формате JUnit): Код:public void testCipher() throws Exception
{
KeyGenerator keyGen = KeyGenerator.getInstance("GOST28147");
SecretKey key = keyGen.generateKey();
Cipher cipher = Cipher.getInstance("GOST28147/CFB/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cipherIV = cipher.getIV();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] sendedText = new byte[10];
// 1) Ошибка при побайтном шифровании
baos.write( cipher.update(sendedText,0,1) );
baos.write( cipher.update(sendedText,1,1) );
baos.write( cipher.update(sendedText,2, sendedText.length-2) );
/*
baos.write( cipher.update(sendedText,0,2) );
baos.write( cipher.update(sendedText,2,2) );
baos.write( cipher.update(sendedText,4, sendedText.length-4) );
*/
// baos.write( cipher.update(sendedText,0, sendedText.length) );
// 2) Вылетает NPE
baos.write( cipher.doFinal() );
// baos.write( cipher.doFinal(new byte[0]) );
// 3) Требуется новый экземпляр
// cipher = Cipher.getInstance("GOST28147/CFB/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(cipherIV));
byte[] encryptedText = baos.toByteArray();
byte[] receivedText = cipher.doFinal(encryptedText);
assertTrue( "Secret text differs", Arrays.equals(sendedText, receivedText) );
}
ЗЫ. Версия JCP: 1.0.33
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 23.01.2008(UTC) Сообщений: 207
Поблагодарили: 3 раз в 3 постах
|
Выложена новая версия JCP.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close