Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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)));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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)));
        }