public byte[] Cipher(byte[] data) { byte[] dataToDivide = BlockCipherSupport.AddPadding(data, BlockSize); List <byte[]> blocks = BlockCipherSupport.DivideIntoBlocks(dataToDivide, BlockSize); List <byte[]> cipheredBlocks = CipherBlocks(blocks); return(BlockCipherSupport.ConcatenateBlocks(cipheredBlocks)); }
public byte[] Decipher(byte[] data) { RSAParameters parameters = rsa.ExportParameters(); int keySize = parameters.Modulus.Length; List <byte[]> blocks = BlockCipherSupport.DivideIntoBlocks(data, keySize); List <byte[]> decipheredBlocks = DecipherBlocks(blocks); return(BlockCipherSupport.RemovePadding(BlockCipherSupport.ConcatenateBlocks(decipheredBlocks))); }
public byte[] Cipher(byte[] data) { byte[] dataToDivide = BlockCipherSupport.AddPadding(data, BlockSize); List <byte[]> blocks = BlockCipherSupport.DivideIntoBlocks(dataToDivide, BlockSize); for (int i = 0; i < blocks.Count; i++) { blocks[i] = rsa.Encrypt(blocks[i]); } return(BlockCipherSupport.ConcatenateBlocks(blocks)); }
public byte[] Decipher(byte[] data) { RSAParameters parameters = rsa.ExportParameters(); int keySize = parameters.Modulus.Length; List <byte[]> blocks = BlockCipherSupport.DivideIntoBlocks(data, keySize); for (int i = 0; i < blocks.Count; i++) { blocks[i] = rsa.Decrypt(blocks[i]); blocks[i] = BlockCipherSupport.PadWithZeros(blocks[i], BlockSize); } return(BlockCipherSupport.RemovePadding(BlockCipherSupport.ConcatenateBlocks(blocks))); }