Я пытаюсь использовать SealedObjects для отправки данных через RMI-соединение
target - SealedObject, шифр инициализируется заранее (насколько мне известно), но когда я запускаю следующий код, я получаю IOException с сообщением
invalid stream header: 52FAA4D1
Где 54FAA4D1 - это каждая шестнадцатеричная строка из 8 символов.
Код, о котором идет речь,
target.getObject(cipher);
Ни цель, ни шифр не равны нулю, поэтому я предполагаю, что проблема в том, как настроен мой шифр. Ключ создается одинаково как на клиенте, так и на сервере, поэтому я нахожусь в тупике.
Шифр создан с использованием
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
//Do this to get the same parameters as were used on the client side
cipher.init(Cipher.ENCRYPT_MODE, this.key);
AlgorithmParameters parameters = cipher.getParameters();
//Set to decrypt mode using the same parameters
byte[] iv = parameters.getParameterSpec(IvParameterSpec.class).getIV();
cipher.init(Cipher.DECRYPT_MODE, this.key, new IvParameterSpec(iv));
Я пробовал как с, так и без использования средней секции, и ни один из них, похоже, не работает.
Если я удаляю последний параметр в cipher.init () во второй раз, когда я вызываю его, я получаю InvalidKeyException, и если я полностью удаляю средний раздел и просто использую cipher.getParameters.getParameterSpec (IVParameterSpec.class) .getIV (); Я получаю исключение NullPointerException
Так что да, полностью застрял - любая помощь, оцененная даже при понимании, в чем проблема, будет оценена.