A C# implementation of the AESCrypt file format
Clone or download
kenkendk Update README.md
Updated link to nuget and added platform information
Latest commit 67e711f Apr 12, 2018

README.md

SharpAESCrypt

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.

Downloads

If you use NuGet you can install SharpAESCrypt from NuGet.

You can download either the commandline executable version or the dll library version.

Requirements

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.

Using From the Command Line

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.

Using as a library in a project

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.