Для преобразования было бы проще использовать Lockbox 2 для расшифровки вашего зашифрованного текста и использовать Lockbox 3 для его повторного шифрования.
Причина в том, что из того, что я могу сказать, Lockbox 2 заточил реализациюзаполнение блока RSA типа 2 , означающее, что шифрование RSA в Lockbox 2 несовместимо с расшифровкой RSA кого-либо еще.
Шифрование RSA в Lockbox 2 неправильно выводит сообщение следующим образом (определяется путем помещенияточка останова и проверка памяти в biBlock.Fi.IntBuf.pBuf):
message-bytes 0x00 random-padding-bytes 0x02 0x00
например, 'test' дополняется до:
$01C883AC 74 65 73 74 00 D4 50 50 test..PP
$01C883B4 A7 BO E5 51 7A 4C C2 BC ...QzL..
$01C883BC 8C B8 69 8A 97 DF AA 1D ..I.....
$01C883C4 78 67 1E OE 8B AB 02 00 xg......
Но это должнобыть дополненным (например, посмотрите на этот обработанный пример ):
0x00 0x02 random-padding-bytes 0x00 message-bytes
Lockbox 2 не просто хранит байты в обратном порядке (в противном случае сообщение "test "также будет перевернутым) или обратным 32-битным прямым порядком байтов (в противном случае также будет поменяться местами 02 00).Все работает до тех пор, пока вы используете Lockbox 2 для шифрования и дешифрования.
Также я заметил еще одну ошибку, когда Lockbox 2 вызывает e.RandomSimplePrime () для генерации открытого показателя e, но он генерирует четное число, то есть довольнозаслуживающая внимания ошибка в RandomSimplePrime (), а?Я только посмотрел на Lockbox 2.07.Lockbox 3 был полностью переписан, поэтому в нем не будет этих ошибок.