Descriptografia C # RSA usando o Castelo Insuflável
Recebi uma string criptografada Codificada em Base64, que foi criptografada em Java usando o Bouncy Castle. Exemplo de trecho de Java abaixo:
<code>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); </code>
Preciso descriptografar a string resultante usando o Bouncy Castle, mas em C # recebi um trecho de código sobre como fazer isso em Java, mas não consigo converter isso em C # (o motivo é que estamos construindo um site .net e será um iFrame em um site Java. O site Java transmitirá a string RSA Encrypted para o site .NET). Exemplo de código Java para descriptografar abaixo:
<code>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"); </code>
Eu baixei os exemplos dehttp://www.bouncycastle.org/csharp/ mas não parece haver um exemplo de entrada de um valor de string para ser criptografado, passando então pelo processo de criptografia / descriptografia.
Eu tenho dado valores paramódulo, expoente público, expontent privado, prime P, prime q, primeiro expoente p, expoente principal q ecoeficiente crt.
Eu vi que posso usar o seguinte:
<code>IAsymmetricBlockCipher signer = new Pkcs1Encoding(new RsaEngine()); signer.Init(true, pubParameters); </code>
Mas osigner
objeto não parece ter os mesmos métodos que os exemplos de Java acima.
O único método que posso usar é
<code>ProcessBlock(byte[] inbuf, int inOff, int inLen); </code>
Mas não consigo ver como usar isso no meu contexto.
Qualquer ajuda aqui seria muito apreciada.