コード例 #1
0
ファイル: Program.cs プロジェクト: jc4st3lls/DH
        private static void CreateEncryptFileFor(string aliasName, string fileName, string pubFileName, bool isBinary)
        {
            DHKeyPair _aliaskeys   = RestoreKeys(aliasName);
            PublicKey _publickeyto = RestorePublicKey(pubFileName);

            IDiffieHellman _dh      = new DiffieHellman();
            DHDerivedKey   _derived = _dh.GenerateDerivedKey(_aliaskeys, _publickeyto);

            Console.WriteLine($"Derived Key:\n {BitConverter.ToString(_derived.Value)}");
            byte[]  IV     = System.Text.Encoding.UTF8.GetBytes(fileName);
            ICypher cypher = new AesCypher(_derived.Value, IV);

            byte[] encrypted;
            if (isBinary)
            {
                var content = ReadBinFile(fileName);
                encrypted = cypher.Encrypt(Convert.ToBase64String(content));
            }
            else
            {
                encrypted = cypher.Encrypt(ReadTextFile(fileName));
            }


            WriteBinFile($"{fileName}{extfile}", encrypted);

            Console.WriteLine($"{fileName}{extfile} encrypt file created.");
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: jc4st3lls/DH
        private static void RestoreEncryptFileFrom(string aliasName, string fileName, string pubFileName, bool isBinary)
        {
            DHKeyPair _aliaskeys   = RestoreKeys(aliasName);
            PublicKey _publickeyto = RestorePublicKey(pubFileName);

            IDiffieHellman _dh      = new DiffieHellman();
            DHDerivedKey   _derived = _dh.GenerateDerivedKey(_aliaskeys, _publickeyto);

            Console.WriteLine($"Derived Key:\n {BitConverter.ToString(_derived.Value)}");

            string fileout = fileName.Replace(extfile, string.Empty);

            byte[]  IV     = System.Text.Encoding.UTF8.GetBytes(fileout);
            ICypher cypher = new AesCypher(_derived.Value, IV);

            byte[] read = ReadBinFile(fileName);

            string content = cypher.Decrypt(read);

            if (isBinary)
            {
                var bcontent = Convert.FromBase64String(content);
                WriteBinFile(fileout, bcontent);
            }
            else
            {
                WriteTextFile(fileout, content);
            }


            Console.WriteLine($"{fileout} decrypt file created.");
        }