Sigma is a secure and encrypted messaging application built using .NET MAUI. This app provides end-to-end encryption for private conversations, ensuring the security and privacy of your messages.
- End-to-End Encryption: Messages are encrypted using AES and RSA algorithms to ensure privacy and security.
- User Authentication: Secure user authentication and key management.
- Real-Time Messaging: Instant messaging with real-time updates using SignalR.
- Cross-Platform Support: Available on Android, iOS, macOS, and Windows.
- .NET 6.0 SDK or later
- Visual Studio 2022 or later with .NET MAUI workload installed
- SQLite database
-
Clone the repository
git clone https://github.com/your_username/sigma-encrypted-messaging-app.git cd sigma-encrypted-messaging-app -
Restore NuGet packages
dotnet restore
-
Update the configuration
Update the configuration settings in
appsettings.jsonor relevant configuration files. -
Run the application
Open the solution in Visual Studio and run the project on your preferred platform.
-
Register a New User
- Open the app and register with a unique username.
- The app generates RSA key pairs and stores them securely.
-
Add Contacts
- Navigate to the "Add Contact" page.
- Enter the username of the contact you want to add.
-
Start a Conversation
- Select a contact from your contacts list.
- Start a new conversation and send encrypted messages.
- Models: Contains data models such as
User,Message, andConversation. - ViewModels: Contains view models to manage the UI logic.
- Views: Contains XAML pages and their code-behind files.
- Services: Contains services for encryption, decryption, and API interactions.
- Converters: Contains value converters for data binding in XAML.
- Key Size: 256-bit
- Mode: CBC (Cipher Block Chaining)
- Padding: PKCS7
- Key Size: 2048-bit or higher
- Usage: Encrypting AES keys for secure transmission
- Algorithm: HMAC-SHA256
- Usage: Ensuring message integrity and authenticity
Contributions are welcome! Please fork the repository and submit pull requests for any enhancements, bug fixes, or new features.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Tom Muir
- GitHub: tmuird
### Instructions to Customize the README
1. **Logo and Screenshots**: Add paths to your logo and screenshots in the `README.md` file.
2. **Configuration Settings**: Specify how to update configuration settings (e.g., `appsettings.json`).
3. **Contact Information**: Update your contact information and GitHub profile link.
4. **Acknowledgements**: Add any additional libraries or resources used in your project.