Skip to content

🌐 Connect Chrome to your TurtlPass device β€” passwords are generated and typed locally, straight from your hardware.

License

Notifications You must be signed in to change notification settings

TurtlPass/turtlpass-chrome-extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Logo

πŸ”— TurtlPass Ecosystem

🐒 Firmware β€’ πŸ’Ύ Protobuf β€’ πŸ’» Host β€’ 🌐 Chrome β€’ πŸ“± Android


🌐 TurtlPass Chrome Extension

A secure, hardware-backed password generator that connects your browser to the TurtlPass USB device via Web Serial & Protobuf. Passwords are generated on-device, and when you press the physical button, the device emulates a keyboard and types your password β€” safely and locally, without ever exposing it online.


⚑ Features

  • πŸ”’ Hardware-assisted password generation
  • 🧩 Communicates with the device via Protobuf
  • 🌐 Auto-detects the active Domain
  • πŸ’Ύ Remembers your Account ID
  • ⌨️ One-button password typing (no clipboard needed)
  • πŸ‘ Press Ctrl to reveal/hide your password

🧠 Architecture Overview

The Chrome Extension handles hashing and serialization, while the MCU validates input, generates the password using a KDF, and types it directly via USB keyboard emulation.

+--------------------------+     Protobuf over USB     +------------------+
|     Chrome Extension     |  <--------------------->  | TurtlPass Device |
|--------------------------|                           |------------------|
| Hash(Argon2ID + SHA-512) |    Serialized Commands:   |     Generate     |
|            of            |   β†’ genPassword(hash) β†’   |     Password     |
| Domain + AccountID + PIN |    ← isSuccess(bool) ←    |      (KDF)       |
+--------------------------+                           +------------------+
             |                                                   |
             └──────────< Types password via HID keyboard <β”€β”€β”€β”€β”€β”€β”˜

πŸ“¦ Installation

  1. Download and unzip this repository
  2. Go to Chrome Extensions: chrome://extensions
  3. Enable Developer mode
  4. Click Load Unpacked β†’ select the unzipped folder
  5. Done! πŸš€

πŸš€ Usage

  1. Open a login page (e.g., GitHub Login)
  2. Click the TurtlPass icon β€” the domain auto-fills
  3. Enter your Account ID (auto-saved next time)
  4. Click Get Password and enter your 6-digit PIN
  5. Choose your TurtlPass device β†’ click Connect
  6. Press the device button β€” it types your password securely in the focused input field

🌐 Supported Browsers

Browser Status
Google Chrome βœ… Supported
Gener8 βœ… Supported

Not supported: Firefox, Brave, Opera, Safari, Arc


🧰 Troubleshooting

If the extension cannot connect to the device:

chrome://flags/#enable-experimental-web-platform-features

Enable the Web Serial API feature.


πŸ“š Dependencies


πŸ“œ License

This repository is licensed under the MIT License.