コード例 #1
0
        public static long AES_Encrypt(string inName, string pubKey)
        {
            var key     = Crypto.RSA.ParsePEM <AsymmetricKeyParameter>(pubKey);
            var outName = inName + "_enc";
            var fin     = new FileStream(inName, FileMode.Open, FileAccess.Read);
            var fout    = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

            fout.SetLength(0);
            Console.WriteLine("Encrypting to " + outName);
            Console.WriteLine("Any such file will be overwritten!");

            // Set Parameters
            var aesParams = new AESParameters()
            {
                AlgorithmId = Algorithm.Rijndael256,
                CipherMode  = CipherMode.CBC,
                PaddingMode = PaddingMode.PKCS7,
                BlockSize   = AESParameters.DEFAULT_BLOCKSIZE_BITCOUNT,
                IVLength    = AESParameters.DEFAULT_BLOCKSIZE_BITCOUNT,
                KeyLength   = AESParameters.DEFAULT_KEY_BITCOUNT,
                IV          = RndBytes(AESParameters.DEFAULT_BLOCKSIZE_BITCOUNT / 8),
                Key         = RndBytes(AESParameters.DEFAULT_KEY_BITCOUNT / 8),
            };
            // Write Header
            var header = new Header.Header(aesParams, key);

            fout.Write(header.ToArray(), 0, Header.Header.HEADER_SIZE);

            // Encrypt the rest
            var total = AES.ProcessInput(true, fin, fout, aesParams);

            return(total + Header.Header.HEADER_SIZE);
        }
コード例 #2
0
ファイル: AES.cs プロジェクト: aadilraza/AES-Encryption
        public HttpResponseMessage AESAlgorithumEncrypt([FromBody] AESParameters param)
        {
            string encrypted = Encrypt(param.PlainText, param.Key);
            //string decrypted = Decrypt(encrypted, param.Key);
            AESManaged obj = new AESManaged()
            {
                Encrypted = encrypted
                            // Decrypted = decrypted
            };

            try
            {
                var json = new JavaScriptSerializer().Serialize(obj);
                var resp = new HttpResponseMessage()
                {
                    Content = new StringContent(json)
                };
                resp.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                return(resp);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
コード例 #3
0
ファイル: AESCipher.cs プロジェクト: Shumeras/AESEncryption
 public AESCipher(AESParameters _parameters)
 {
     parameters = _parameters;
 }
コード例 #4
0
ファイル: AESCipher.cs プロジェクト: Shumeras/AESEncryption
 public AESCipher(byte[] key, KeySize size = KeySize.bit128)
 {
     parameters = new AESParameters(key, size);
 }
コード例 #5
0
        public void ValidHeaderConversionTest(AESParameters aesParams)
        {
            var h1   = new Header(aesParams, privateKey.Public);
            var a1   = h1.ToAESParameters(privateKey.Private);
            var buff = h1.ToArray();
            var h2   = new Header(buff);
            var a2   = h2.ToAESParameters(privateKey.Private);

            // Simple tests
            Assert.That(h1.AlgorithmId == h2.AlgorithmId);
            Assert.That(h1.PaddingMode == h2.PaddingMode);
            Assert.That(h1.CipherMode == h2.CipherMode);
            Assert.That(h1.BlockSize.Length == h2.BlockSize.Length);
            Assert.That(h1.KeyLength.Length == h2.KeyLength.Length);
            Assert.That(h1.IVLength.Length == h2.IVLength.Length);
            Assert.That(h1.IV.Length == h2.IV.Length);
            Assert.That(h1.Key.Length == h2.Key.Length);

            // iterative tests
            for (var i = 0; i < Header.BYTESTREAM_BYTE_OFFSTET; i++)
            {
                Assert.That(h1.IVLength[i] == h2.IVLength[i]);
                Assert.That(h1.KeyLength[i] == h2.KeyLength[i]);
                Assert.That(h1.BlockSize[i] == h2.BlockSize[i]);
            }

            for (var i = 0; i < h1.Key.Length; i++)
            {
                Assert.That(h1.Key[i] == h2.Key[i]);
            }
            for (var i = 0; i < h1.IV.Length; i++)
            {
                Assert.That(h1.IV[i] == h2.IV[i]);
            }

            // AESParams -> Header -> AESParams test
            Assert.That(aesParams.AlgorithmId == a1.AlgorithmId);
            Assert.That(aesParams.AlgorithmId == a2.AlgorithmId);
            Assert.That(aesParams.PaddingMode == a1.PaddingMode);
            Assert.That(aesParams.PaddingMode == a2.PaddingMode);
            Assert.That(aesParams.CipherMode == a1.CipherMode);
            Assert.That(aesParams.CipherMode == a2.CipherMode);
            Assert.That(aesParams.BlockSize == a2.BlockSize);
            Assert.That(aesParams.BlockSize == a1.BlockSize);
            Assert.That(aesParams.IVLength == a1.IVLength);
            Assert.That(aesParams.IVLength == a2.IVLength);
            Assert.That(aesParams.KeyLength == a1.KeyLength);
            Assert.That(aesParams.KeyLength == a2.KeyLength);
            Assert.That(aesParams.IV.Length == a2.IV.Length);
            Assert.That(aesParams.IV.Length == a1.IV.Length);
            Assert.That(aesParams.Key.Length == a1.Key.Length);
            Assert.That(aesParams.Key.Length == a2.Key.Length);

            for (var i = 0; i < aesParams.IV.Length; i++)
            {
                Assert.That(aesParams.IV[i] == a1.IV[i]);
                Assert.That(aesParams.IV[i] == a2.IV[i]);
            }


            for (var i = 0; i < aesParams.Key.Length; i++)
            {
                Assert.That(aesParams.Key[i] == a1.Key[i]);
                Assert.That(aesParams.Key[i] == a2.Key[i]);
            }
        }