Skip to content

TurtlPass/turtlpass-android

Repository files navigation

logo

TurtlPass Android

TurtlPass Android sends a hash of the user's inputs (App Domain, Account ID, and PIN) to the TurtlPass Firmware via USB connection. When the physical button on the device is pressed, the firmware emulates an external keyboard and types the generated password.

Releases

Firmware Repo Chrome Extension Repo

⚡ Features

  • Easy app selection: Choose the app you want to generate a password for from the list of installed apps on your device.
  • Gravar integration: Load image associated to the user account when the account doesn't have a contact photo already.
  • Communication with hardware: Use the TurtlPass firmware device to communicate with the app via USB serial port.
  • Secure password generation: The TurtlPass device generates unique, secure passwords using the HKDF algorithm and a seed stored in the flash memory.
  • Automatic typing: Don't worry about remembering or typing your passwords - TurtlPass device will do it for you!
  • User-friendly design: Enjoy a smooth and intuitive user experience.

🔑 How to Use

  1. Plug the TurtlPass device into your phone's USB port & enable USB connections
  2. Choose the App you want a password for
  3. Type in your Account ID, typically your email address
  4. Click Unlock & type in your 6-digit PIN
  5. (TurtlPass device generates your password)
  6. Now press the button on the TurtlPass device to have it type your password

🏛️ Clean Architecture

Third-party libraries used in the project:

Hilt, Coil, OkHttp, UsbSerial, Argon2, Lottie, etc.

Libraries used in the Unit Tests:

JUnit, Mockk, Truth & Turbine

🔮 Future improvements

  • Add support for Browser Apps
  • Read NDEF message ID from an external NFC Tag

📦 Lottie Animations

📸 Screenshots

# # # #

📄 License

TurtlPass Android is released under the MIT License.