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."); }
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."); }