private byte[] PerformCalculation(byte[] src, RSACalculateDelegate method) { // Big integer requires little endian order! Array.Reverse(src); BigInteger data = new BigInteger(src); data = method(data); return(data.ToByteArray(false)); }
private byte[] DoEncrypt(byte[] src, RSACalculateDelegate method) { if (src.Length > this._parameters.ModulesBlockSize) { throw new ArgumentException("Src is to long to encrypt."); } byte[] data = this.pkcs1pad(src); return(this.PerformCalculation(data, method)); }
private byte[] DoDecrypt(byte[] src, RSACalculateDelegate method) { byte[] data = this.PerformCalculation(src, method); return(this.pkcs1unpad(data)); }