Aegis is a modern macOS desktop application that provides secure end-to-end message encryption using a hybrid RSA-AES design. It combines the speed of symmetric AES encryption with the robust key exchange and digital signature capabilities of RSA.
|
|
|
- 🧠 Automatic key generation and storage using the macOS Keychain
- 🔐 Hybrid encryption (AES-GCM + RSA-OAEP)
- 🖋️ Digital signatures with RSA-PSS for message integrity
- 📎 Base64-encoded JSON envelope for easy sharing
- 💬 Clean SwiftUI interface only two buttons: Encrypt and Decrypt
- 💾 Local key management no servers, no data collection
- 🖥️ macOS 14.0 (Sonoma) or later
- 🧰 Optional: Homebrew for command-line installation
⚠️ Aegis is not compatible with macOS versions earlier than 14.0.
You can install Aegis directly from your terminal using Homebrew:
brew tap khalidt/aegis
brew install --cask aegisHomebrew will automatically download, verify, and place Aegis.app in your /Applications folder.
🛡️ First launch and macOS Security Note: Since Aegis is distributed outside the Mac App Store, macOS Gatekeeper may display a warning the first time you open it. Just go to System Settings → Privacy & Security → Allow Anyway, or right-click → Open to trust the app.
To update later:
brew upgrade --cask aegisTo uninstall completely:
brew uninstall --cask aegisDownload the latest version of Aegis from the Releases page:
- Download the latest Aegis-vX.X.X-app.zip or Aegis-vX.X.X.dmg file.
- Unzip it, you’ll see Aegis.app.
- Drag it into your Applications folder.
If you’d like to build Aegis yourself:
git clone https://github.com/khalidt/Aegis.git
cd Aegis
open Aegis.xcodeprojIn Xcode:
- Open
Aegis.xcodeprojin Xcode (macOS >= 14.6). - Select the Device scheme.
- Choose target “Any Mac (Apple Silicon, Intel)”.
- Build and run (
⌘R). (Go to Product → Build or Product → Run.)
Or build via Terminal:
xcodebuild -project Aegis.xcodeproj \
-scheme Device \
-configuration Release \
-destination 'platform=macOS' \
buildYour compiled app will appear under:
~/Library/Developer/Xcode/DerivedData/.../Build/Products/Release/Aegis.app
- A random 256-bit AES key is generated.
- The plaintext is encrypted using AES-GCM.
- The AES key is encrypted using RSA-OAEP with the recipient’s public key.
- The ciphertext is signed using RSA-PSS with the sender’s private key.
- The resulting Base64 JSON envelope is ready to share.
- The recipient decrypts the AES key with their RSA private key.
- The AES-GCM ciphertext is decrypted to recover the plaintext.
- The sender’s signature is verified for authenticity.
| Purpose | Algorithm |
|---|---|
| Key generation | RSA-4096 |
| Symmetric encryption | AES-256-GCM |
| Asymmetric wrapping | RSA-OAEP-SHA256 |
| Digital signature | RSA-PSS-SHA256 |
| Key fingerprint | SHA-256 |
- Swift 5 + SwiftUI
- CryptoKit : for AES-GCM encryption
- Security framework : for RSA keypair management and signing
- AppKit : for Keychain access and About panel
- macOS 15+ : native UI
- Private keys are generated and stored inside the macOS Keychain.
- AES keys are ephemeral, generated per message and never reused.
- Signatures verify both message integrity and sender authenticity.
- The app does not connect to any external server or API.
{
"alg": "RSA-OAEP-256 + AES-GCM + RSA-PSS-256",
"nonce": "a1b2c3d4e5f6g7h8",
"enc_key": "Base64(...)",
"ciphertext": "Base64(...)",
"signature": "Base64(...)"
}
GPLv3 License © 2025 — Khalid Alkhaldi See LICENSE for details.
Aegis is a modern macOS desktop application that provides secure end-to-end message encryption
using a hybrid RSA-AES design.
Copyright (C) 2025 Khalid Alkhaldi (k.t.alkhaldi@gmail.com)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
If you encounter issues, please open a GitHub Issue with details or screenshots.



