mirror of
https://github.com/beemdevelopment/Aegis
synced 2024-10-06 15:59:13 +00:00
2323d89938
This patch introduces the new ``UUIDMap`` type, reducing code duplication and making UUID lookups faster. We currently already use UUIDs as the identifier for the ``DatabaseEntry`` and ``Slot`` types, but the way lookups by UUID work are kind of ugly, as we simply iterate over the list until we find a match. As we're probably going to have more types like this soon (groups and icons, for example), I figured it'd be good to abstract this away into a separate type and make it a map instead of a list. The only thing that has gotten slower is the ``swap`` method. The internal ``LinkedHashMap`` retains insertion order with a linked list, but does not know about the position of the values, so we basically have to copy the entire map to simply swap two values. I don't think it's too big of a deal, because swap operations still take less than a millisecond even with large vaults, but suggestions for improving this are welcome. I had to update gradle and JUnit to be able to use the new ``assertThrows`` assertion method, so this patch includes that as well. |
||
---|---|---|
app | ||
docs | ||
gradle/wrapper | ||
metadata/en-US | ||
scripts | ||
testdata | ||
.gitignore | ||
build.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle |
Aegis
Aegis is a free, secure and open source 2FA app for Android.
Aegis' security design and vault format is described in detail in this document.
Features
- Free and open source
- Secure
- Encryption (AES-256)
- Password (scrypt)
- Fingerprint (Android Keystore)
- Screen capture prevention
- Tap to reveal ability
- Encryption (AES-256)
- Multiple ways to add new entries
- Scan QR code
- Enter details manually
- Import from files
- andOTP
- FreeOTP
- Aegis
- Import from apps (requires root):
- Google Authenticator
- Steam
- Supported algorithms:
- Compatible with Google Authenticator
- Organization
- Custom or default icons
- Drag and drop
- Custom groups
- Advanced entry editing
- Material design with multiple themes:
- Light theme
- Dark theme
- Amoled / true dark theme
- Export (plaintext or encrypted)
Screenshots
Downloads
Aegis is available on the Google Play Store and on F-Droid.
Verification
APK releases on Google Play and GitHub are signed using the same key. They can be verified using apksigner:
apksigner verify --print-certs --verbose aegis.apk
The output should look like:
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
The certificate fingerprints should correspond to the ones listed below:
Owner: CN=Beem Development
Issuer: CN=Beem Development
Serial number: 172380c
Valid from: Sat Feb 09 14:05:49 CET 2019 until: Wed Feb 03 14:05:49 CET 2044
Certificate fingerprints:
MD5: AA:EE:86:DB:C7:B8:88:9F:1F:C9:D0:7A:EC:37:36:32
SHA1: 59:FB:63:B7:1F:CE:95:74:6C:EB:1E:1A:CB:2C:2E:45:E5:FF:13:50
SHA256: C6:DB:80:A8:E1:4E:52:30:C1:DE:84:15:EF:82:0D:13:DC:90:1D:8F:E3:3C:F3:AC:B5:7B:68:62:D8:58:A8:23
Libraries
- TextDrawable by Amulya Khare
- FloatingActionButton by Dmytro Tarianyk
- AppIntro by Paolo Rotolo
- Krop by Avito Technology
- SpongyCastle by Roberto Tyley
- Swirl by Matthew Precious
- CircleImageView by Henning Dodenhof
- barcodescanner by Dushyanth
- libsu by John Wu
License
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Attribution
The icon is largely based on a design by Freepik from Flaticon.