Crypter is open-source software with a dual license, with one exception.
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.
Contact the current copyright holder in order to purchase a commercial license.
Email: [email protected]
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.
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.
A RESTful API written using ASP.NET.
A sandbox for benchmarking various things.
A small class library containing domain models and data types that may be used in any project.
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.
All back-end business logic.
A class library containing interfaces and portable implementations of various cryptographic primitives.
An implementation of the Crypter.Crypto.Common
interfaces for use in browsers.
This uses libsodium through the BlazorSodium nuget package.
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.
A class library containing code to interact with the PostgreSQL database.
A project containing NUnit unit tests.
A web application written using ASP.NET Blazor web-assembly.
Thank you to the following people and organizations for helping make this project possible:
- Santiago Escalante and Steve Peters-Luciani for helping create Crypter as a final project for school.
- Legion of the Bouncy Castle for writing the BouncyCastle cryptographic library.
- Frank Denis et al. for writing the libsodium cryptographic library.
- Samuel Lucas for writing the Geralt C# language binding for libsodium.
- Marek Fisera and Pavel Savara for all the help with BlazorSodium and Blazor in general.
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.