Trinity Wallet is an eIDAS 2.0 compliant digital identity wallet designed for Trinity College students. It leverages Microsoft Azure for authentication, OpenID4VCI for credential issuance, OpenID4VP for credential presentation, and encrypted SQLite (SQLCipher) for on-device storage. BLE capabilities are integrated to unlock smart locks, and ECDSA-based signing allows for secure digital signatures. It serves as a robust blueprint for building digital identity wallets compliant with eIDAS 2.0 standards.
-
Microsoft Azure Authentication: Secure login using Trinity College credentials.
-
6-Digit PIN & Face ID: Access controlled with bcrypt-hashed PIN and biometric authentication.
-
Credential Management:
- Request credentials from the eIDAS Expert Group Issuer using OpenID4VCI.
- Securely store credentials in an encrypted SQLite database.
- View and delete credentials with a clean UI.
-
Credential Presentation:
-
Present credentials to the eIDAS Expert Group Verifier using OpenID4VP.
-
Request and present Trinity-specific library credentials through:
-
-
Activity Logs: Real-time logging for recent activity.
-
Smart Lock Integration:
- BLE-based unlocking for KUCACCI T17 smart lock.
- Demo app available here.
-
Digital Signatures:
- Self-sign and embed digital (and handwritten) signatures into PDF documents using ECDSA.
-
Profile Customization:
- Upload profile picture, set display name, and manage personal information.
-
Home Dashboard:
- Quick access to logout, profile updates, and app details.
-
Clone the repository:
git clone https://github.com/mbirnhak/TrinityWallet.git cd TrinityWallet -
Install dependencies:
npm install
-
Prebuild the app:
npx expo prebuild
-
Start the app:
npx expo start
-
Open in:
- Android Emulator
- iOS Simulator
- Expo Go (for mobile testing)
-
Planned implementation:
- Secure database storage in Microsoft Azure.
- Shamir Secret Sharing for decryption key distribution.
- eIDAS Issuer: https://issuer.eudiw.dev/
- eIDAS Verifier: https://verifier.eudiw.dev/home
- Trinity College Issuer: TrinityWalletServer
- Trinity College Verifier: TrinityLibraryVerifier
TrinityWalletDemo.mp4
- App Logo:
TrinityWalletLogo.png - Demo Video:
TrinityWalletDemo.mp4
Located in the root directory of the repository.
- Matthew Birnhak - mbirnhak
For inquiries, reach out:
- GitHub Issues: TrinityWallet Issues
Submit a Pull Request or open an issue for enhancements or bug fixes. Contributions are welcome!
Happy Building! 🚀
