К сожалению, с Bouncy Castle мне не удалось.
Обновление:
Я попробовал два варианта:
- Я реализовал шифр CustomRSA:
Код: Выделить всё
public class CustomRSA : IAsymmetricBlockCipher
{
public string AlgorithmName
{
get
{
return "CustomRSA";
}
}
public int GetInputBlockSize()
{
throw new NotImplementedException();
}
public int GetOutputBlockSize()
{
return 36;
}
public void Init(bool forEncryption, ICipherParameters parameters)
{
}
public byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen)
{
return inBuf;
}
}
Код: Выделить всё
CustomRSA ls = new CustomRSA();
var ba = new OaepEncoding(ls, new Sha256Digest(), new Sha256Digest(), null);
ba.Init(false, null);
return ba.ProcessBlock(paddedData, 0, paddedData.Length);
- Другая идея заключалась в клонировании класса OAEPEncoding из надувного замка. Здесь я попытался заменить строку в методе DecodeBlock следующим образом:
Код: Выделить всё
byte[] data = engine.ProcessBlock(inBytes, inOff, inLen);
Код: Выделить всё
byte[] data = inBytes;
Подробнее здесь: https://stackoverflow.com/questions/791 ... ypted-data