C #Расшифровка RSA с использованием Bouncy Castle

Мне дали зашифрованную строку в кодировке Base64, которая была зашифрована на Java с помощью Bouncy Castle. Пример фрагмента Java ниже:

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, key.getPublic());
byte[] encryptedText = cipher.doFinal("xxxxx|xxxxx".getBytes("UTF-8"));
String encodedText = new BASE64Encoder().encode(encryptedText);

Мне нужно расшифровать полученную строку с помощью Bouncy Castle, но на C #Мне дали фрагмент кода о том, как это сделать на Java, но я не могу преобразовать его по причинам C #(, потому что мы создаем сайт.net, и он будет iFrame на сайте Java. Сайт Java будет передавать зашифрованную строку RSA на сайт.NET ). Пример Java-кода для расшифровки ниже:

Cipher cipherDec = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipherDec.init(Cipher.DECRYPT_MODE, key.getPrivate());
byte[] decodedText = new BASE64Decoder().decodeBuffer(encodedText);
byte[] decryptedText = cipherDec.doFinal(decodedText);
String finalValue = new String(decryptedText, "UTF-8");

Я загрузил примеры из http://www.bouncycastle.org/csharp/, но, похоже, там нет примера ввода строкового значения для шифрования, а затем прохождения процесса шифрования/дешифрования.

Мне были даны значения для модуля , общего показателя степени , частного показателя степени , простого числа P , простого числа q , простой показатель p , простой показатель q и коэффициент crt .

Я видел, что могу использовать следующее:

IAsymmetricBlockCipher signer = new Pkcs1Encoding(new RsaEngine());
signer.Init(true, pubParameters);

Но объект signer, похоже, не имеет тех же методов, что и в приведенных выше примерах Java.

Единственный метод, который я могу использовать, это

ProcessBlock(byte[] inbuf, int inOff, int inLen);

Но я не вижу, как использовать его в моем контексте.

Будем очень признательны за любую помощь.

9
задан Wilbur Whateley 23 March 2016 в 01:48
поделиться