This library is no longer maintained. I have created a new and cleaner SharpAESCrypt implementation in the Duplicati repository.
A C# implementation of the AESCrypt file format.
This .NET AES Crypt package contains the C# class SharpAESCrypt.SharpAESCrypt, which provides file encryption and decryption using aescrypt file format.
Version 2 of the AES File Format is supported for reading and writing. Versions 0 and 1 are not verified, but there is code to read and write the formats.
If you use NuGet you can install SharpAESCrypt from NuGet.
You can download either the commandline executable version or the dll library version.
The SharpAESCrypt package works with .NET 2.0+, and is tested with:
Windows, Microsoft.Net, 32bit and 64bit Linux, various distrbutions, Mono 2.6+, 32bit and 64bit OSX 10.6+, Mono 2.6+, 32bit and 64bit
Besides a CLI runtime, no further dependencies are required.
The 1.3.3 version is built targeting the .netstandard2.0 profile and works with .Net Framwork 4.6 and .netcoreapp2.0.
Windows, Microsoft.Net
SharpAESCrypt.exe e|d password fromPath toPath
Mono, Any platform
mono SharpAESCrypt.exe e|d password fromPath toPath
Operation mode is selected with (e)ncrypt or (d)ecrypt.
Simply add a reference to SharpAESCrypt.dll, and you can use the static methods like this:
SharpAESCrypt.Encrypt("password", "inputfile", "outputfile");
SharpAESCrypt.Decrypt("password", "inputfile", "outputfile");
SharpAESCrypt.Encrypt("password", inputStream, outputStream);
SharpAESCrypt.Decrypt("password", inputStream, outputStream);
The syntax is for C# but the DLL works with any supported .NET language.
For more advanced uses, you can create a stream like this:
Stream aesStream = new SharpAESCrypt(password, inputStream, mode);
You can set various properties on the stream. Remember to either call Dispose() or FlushFinalBlock() after using the stream.
See the documentation provided with the library for further details.