Skip to content

A Blazor WASM web application that offers end-to-end encrypted file and message transfer using Libsodium, Entity Framework, Hangfire, Docker, NUnit, and Mailkit.

License

Notifications You must be signed in to change notification settings

Crypter-File-Transfer/Crypter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crypter

Licensing

Crypter is open-source software with a dual license, with one exception.

Personal and Non-Commercial Use

The entirety of Crypter is licensed under the AGPLv3 for free and non-commercial use.

A copy of the AGLPv3 is provided in LICENSE.md.

Commercial Use

Contact the current copyright holder in order to purchase a commercial license.

Email: [email protected]

Exception

A portion of the Crypter.Web source code was originally authored by ProtonMail and licensed under GPLv3. Therefore, the requirement to obtain a commercial license does not apply to the Crypter.Web project. Crypter.Web is only licensed under the AGPLv3 license.

Getting Started

Check out these documents to get started working on Crypter:

Also take a look at some of the articles that have come in handy while working on the project:

If you have any questions, please add an issue or send an email to [email protected]. I would love to hear from you.

Projects

Crypter.API

A RESTful API written using ASP.NET.

Crypter.Benchmarks

A sandbox for benchmarking various things.

Crypter.Common

A small class library containing domain models and data types that may be used in any project.

Crypter.Common.Client

A class library containing various interfaces and most of their implementations for use in client applications.

The "Repository" interfaces must be implemented per-environment, since these implementations must decide where and how to store data on the client device. These decisions and locations are device-specific. For example, storing data in a browser is likely to be different than storing data on a mobile phone.

Crypter.Core

All back-end business logic.

Crypter.Crypto.Common

A class library containing interfaces and portable implementations of various cryptographic primitives.

Crypter.Crypto.Providers.Browser

An implementation of the Crypter.Crypto.Common interfaces for use in browsers. This uses libsodium through the BlazorSodium nuget package.

Crypter.Crypto.Providers.Default

An implementation of the Crypter.Crypto.Common interfaces for use in non-browser platforms. This uses libsodium through the Geralt nuget package, as well as System.Security.Cryptography for random number generation.

Crypter.DataAccess

A class library containing code to interact with the PostgreSQL database.

Crypter.Test

A project containing NUnit unit tests.

Crypter.Web

A web application written using ASP.NET Blazor web-assembly.

Acknowledgements

Thank you to the following people and organizations for helping make this project possible:

And special thanks to the C# and Web Dev Buddies Discord servers for answering all my questions and providing motivation to continue working on this project.

About

A Blazor WASM web application that offers end-to-end encrypted file and message transfer using Libsodium, Entity Framework, Hangfire, Docker, NUnit, and Mailkit.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project