Вот мой процесс:
КриптоAPI:
- Сгенерировать сеансовый ключ AES
- Используйте открытый ключ получателя для шифрования и экспорта (1) в SIMPLEBLOB с RSA
- Отправить SIMPLEBLOB получателю
Джава:
- Получатель получает (3)
- Получатель хочет расшифровать SIMPLEBLOB, используя свой закрытый ключ
Это довольно стандартно, я считаю. Необходимо побайтно перевернуть полученный массив байтов (из шага 4 выше). Однако по какой-то причине количество полученных байтов превышает максимально допустимое количество байтов, которое может расшифровать алгоритм RSA. Ошибка: «javax.crypto.IllegalBlockSizeException: данные не должны быть длиннее 256 байт». Значит, происходит что-то еще, чего я не понимаю. Может кто-нибудь объяснить, как правильно расшифровать SIMPLEBLOB в Java? Ресурсы помогут.
CryptExportKey
, содержат определенный заголовок в дополнение к фактическому зашифрованному тексту. - person Igor Tandetnik   schedule 02.08.2013