All Projects โ†’ 4f77616973 โ†’ Wristkey

4f77616973 / Wristkey

Licence: MIT license
A free and open-source offline authenticator app for Wear OS.

Programming Languages

kotlin
9241 projects
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Wristkey

Twelveish
๐Ÿ•› Twelveish - Android Wear/Wear OS Watch Face
Stars: โœญ 29 (-55.38%)
Mutual labels:  watch, android-wear, wear-os
extract otp secret keys
Extract two-factor authentication (2FA, TFA) secret keys from export QR codes of "Google Authenticator" app
Stars: โœญ 217 (+233.85%)
Mutual labels:  google-authenticator, qr-codes, 2fa
twothy
Two factor authenticator for CLI
Stars: โœญ 39 (-40%)
Mutual labels:  authenticator, google-authenticator, 2fa
GoFIT SDK Android
GoFIT SDK for Android โ€” GOLiFE ๆ‰‹็’ฐ App ไป‹ๆŽฅ SDK
Stars: โœญ 32 (-50.77%)
Mutual labels:  smartwatch, wearables
node-identif
๐Ÿ”‘ Helper class to verify one's identity via personal channels(SMS, Phone, E-Mail and more!)
Stars: โœญ 27 (-58.46%)
Mutual labels:  phone, 2fa
Python Bna
Python implementation of the mobile Blizzard Authenticator (TOTP)
Stars: โœญ 165 (+153.85%)
Mutual labels:  authenticator, 2fa
Aspnetcoreid4external
external OpenID Connect Login to IdentityServer4 with AAD
Stars: โœญ 63 (-3.08%)
Mutual labels:  authenticator, 2fa
react-native-android-wear-demo
Showcase of a two-way communication between React Native and Android Wear apps.
Stars: โœญ 93 (+43.08%)
Mutual labels:  watch, android-wear
Freeotpplus
Enhanced fork of FreeOTP-Android providing a feature-rich 2FA authenticator
Stars: โœญ 223 (+243.08%)
Mutual labels:  authenticator, 2fa
MobyDroid
Android Device Manager with a Graphic User Interface (GUI) โ€“ Manage Android on Linux, Windows and MacOS.
Stars: โœญ 76 (+16.92%)
Mutual labels:  adb, phone
totp
Time-Based One-Time Password Code Generator
Stars: โœญ 76 (+16.92%)
Mutual labels:  authenticator, 2fa
Authenticatorpro
๐Ÿ“ฑ Two-Factor Authentication (2FA) client for Android + Wear OS
Stars: โœญ 155 (+138.46%)
Mutual labels:  authenticator, 2fa
Aegis
A free, secure and open source app for Android to manage your 2-step verification tokens.
Stars: โœญ 2,692 (+4041.54%)
Mutual labels:  authenticator, 2fa
Go Guardian
Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication.
Stars: โœญ 204 (+213.85%)
Mutual labels:  authenticator, 2fa
Twofa
A TouchID-aware 2-factor authenticator for macOS
Stars: โœญ 105 (+61.54%)
Mutual labels:  authenticator, 2fa
apache 2fa
Apache two-factor (2FA) authentication with Google Authenticator based on Time-based One-Time Password (TOTP) or HMAC-based one-time password (HOTP) Algorithms.
Stars: โœญ 63 (-3.08%)
Mutual labels:  google-authenticator, 2fa
plugin-Authenticator
2FA authentication plugin for sysPass based on TOTP algorithm (RFC 6238)
Stars: โœญ 18 (-72.31%)
Mutual labels:  authenticator, 2fa
eye drop
Eye Drop is a set of bottles containing a digital liquid made of shiny particles. Eye Drop uses a Huawei smartwatch and a lens from Google Cardboard to give an impression of immersive screen.
Stars: โœญ 19 (-70.77%)
Mutual labels:  android-wear, smartwatch
Otplib
๐Ÿ”‘ One Time Password (OTP) / 2FA for Node.js and Browser - Supports HOTP, TOTP and Google Authenticator
Stars: โœญ 916 (+1309.23%)
Mutual labels:  authenticator, 2fa
Authenticator
Authenticator generates 2-Step Verification codes in your browser.
Stars: โœญ 979 (+1406.15%)
Mutual labels:  authenticator, 2fa

Wear OS Kotlin License Open Source? Security Policy Latest Version Download APK

Wristkey

Wristkey logo

Need 2FA codes quickly, right on your Wear watch without needing a phone? Wristkey is an open-source 2FA client for Wear OS watches that does just that! Supports Android Wear 7.1 (Nougat) and above. Get the APK here.

mockup

FEATURES

  • Works without being paired to phone (standalone) and without internet connection.

  • Direct import from Aegis Authenticator, andOTP, Bitwarden and Google Authenticator.

  • Secure app by locking via PIN, pattern and password.

  • Safe data storage using 256-bit encryption.

  • Time and counter mode OTPs, upto SHA-512 and 4-8 digits.

  • Supports round and square devices and customization via theming.

  • Backup options via QR code and JSON.

USAGE

Adding items

Wristkey supports importing data from multiple sources for ease-of-use, though the procedures differ slightly for each of them. For example, for Bitwarden, a JSON file is parsed and the totp field is extracted from each account. For website QR codes, the QR Code is scanned and the resulting otpauth:// URL is parsed.

add

Transferring data

Via phone

If your watch is paired to an Android phone, you can use a third-party Wear OS file manager like myWear File Explorer or Nav Explorer to transfer PNG / JSON files from your phone's storage to your watch.

Via ADB
  1. Enable ADB Debugging on your watch by going to Settings โ†’ System โ†’ About and tapping 'Build Number' 7 times.

  2. Go back and tap on Developer Settings, then scroll down and enable "ADB Debugging".

  3. Make sure Wristkey has storage permissions. On your watch, go to Settings โ†’ Apps & notifications โ†’ App info โ†’ Wristkey โ†’ Permissions and enable 'Storage'.

ADB over USB
  1. Connect your watch to your computer via USB. When prompted on watch, tap 'Always allow from this computer'.
ADB over Bluetooth
  1. Enable Bluetooth Debugging on your watch by going to Settings โ†’ System โ†’ About and tapping 'Build Number' 7 times.

  2. Now on your Android phone / tablet, open the Wear OS app and tap the top right mennu button and tap on 'Settings'.

  3. Enable 'Debugging over Bluetooth'. Youโ€™ll should see

    Host: disconnected
    Target: connected
    
  4. Connect your Android phone / tablet to your computer via USB. Then open a new terminal and run the following commands

    adb forward tcp:4444 localabstract:/adb-hub
    adb connect localhost:4444
    
  5. On your phone, the Wear OS app should display

    Host: connected
    Target: connected
    

Google Authenticator and normal QR Code imports

  1. If using a QR Code from a website, save it as a screenshot and make sure it is clearly visible with no pixelation. If importing from Google Authenticator, tap the three dots on the top right corner, then tap on 'Export accounts'. Then select the accounts you'd like to export and tap the export button 'Export'. Take a picture or screenshot of the QR code that is displayed and make sure it is a PNG or JPG file and is clear with no blurring, glare or pixelation.

  2. Open a terminal on your computer and place this PNG or JPG file on the main directory of your watch (/sdcard/) via the following command

    adb push <filename>.png /sdcard/
    
  3. On your watch, open Wristkey, scroll down and tap the add icon '+', then select your import option.

  4. After your accounts are imported, delete the PNG or JPG file from your watch via the following commands

    adb shell
    cd /sdcard/
    rm <filename>.png
    exit
    

Aegis Authenticator, andOTP, Bitwarden and Wristkey backup imports

  1. Export your data in an unencrypted JSON format. Make sure you don't rename the file.

  2. Open a terminal on your computer and place this JSON file on the main directory of your watch (/sdcard/). If using a Wristkey backup file, do not place it in the /Wristkey folder. Do this via the following command

    adb push <filename> /sdcard/
    
  3. On your watch, open Wristkey, scroll down and tap the add icon '+', then select your import option.

  4. After your accounts are imported, delete the JSON file from your watch via the following commands

    adb shell
    cd /sdcard/
    rm <filename>
    exit
    

Manual entry

  1. On your watch, open Wristkey, scroll down and tap the add icon '+', then tap Manual Entry. The default settings are for Google Authenticator codes (SHA-1, 6 digits, time-based).

  2. Scroll down and tap the tick button 'โœ“' at the at the bottom when done.

addadd

Editing and Deleting items

To edit or delete an item, tap and hold on its name. This was made difficult on purpose so that accounts aren't accidentally edited or deleted. To delete an item, scroll all the way to the bottom of the edit screen and tap the trash icon.

Exporting

exportqrcode

Since watches are tiny devices that can be misplaced, backing up and exporting your secrets and storing them in a safe place is always a a good idea.

Single account

To transfer a code from your watch to an Authenticator app on your phone, just press and hold the 2FA code number on your watch. You can then scan the QR code that is displayed on your watch screen in any 2FA application.

Tip: Tap the QR Code to dim it for better scanning.

All accounts

To backup all content, open Wristkey, tap the settings icon 'โš™๏ธ', then scroll down and tap Backup all data.

Via QR code

Tap 'QR code' to get a (not compatible with Authenticator) QR Code data. This QR code cannot be scanned in any 2FA application and is purely for extraction purposes.

Via file
  1. Tap 'File' to get your backups in the form of a file. The data will be placed in /sdcard/wristkey/.

  2. Open a terminal on your computer and extract this file via the following command

    adb pull /sdcard/wristkey/
    
  3. To delete the directory, type

    adb shell rm /sdcard/wristkey/
    

Note: The exported data is unencrypted and must be handled with care. Delete it when not in use.

TROUBLESHOOTING

Wrong TOTP codes are shown

Make sure you set your secret key, digit length and algorithm correctly. If the displayed codes are still wrong, your watch may have the time set incorrectly. Please set the time by pairing it to a phone or connecting to WiFi.

File import not working

Make sure Wristkey has storage permissions in your watch's Settings app. If importing from JSON, make sure the file you export is an Unencrypted file in JSON format. If importing from Authenticator, make sure the screenshot or picture is in PNG or JPG format and is clear. If using a Wristkey backup file, make sure it has the .backup extension.

File export not working

Make sure Wristkey has storage permissions in your watch's Settings app. If already enabled, disable and enable storage permissions again.

SECURITY

Further reading: Security Policy

Importing files

To prevent data extraction, snooping and theft, make sure you delete the JSON, PNG or JPG files from your watch's storage once you're done importing them. You can confirm the existence of items by connecting your watch via ADB and running the adb shell ls /sdcard/ command.

In-app storage

All sensitive data within Wristkey (including secrets to generate OTPs) is stored encrypted using 256-bit AES encryption, with the decryption key stored locally on your watch. No backdoor on my end. ;)

Privacy

Wristkey can be set to unlock after entering your watch's password / PIN / pattern. To enable screen locking for the app, go to your watch's Settings โ†’ Personalization โ†’ Screen Lock and set a PIN / pattern / password. To override this setting, open Wristkey, tap the settings icon 'โš™๏ธ', then scroll down and disable Screen locking

Wristkey doesn't use Wear OS's Ambient Mode by default to prevent bystanders from peeking at your 2FA codes. To enable Ambient Mode, open Wristkey, tap the settings icon 'โš™๏ธ', then scroll down and enable Ambient mode.

CHANGELOG

A detailed changelog is available on the releases page. The latest release is Release.

CONTRIBUTION

Contributing

I made this app for myself because the LG G Watch W100 I use doesn't support internet access when paired with iOS and Google scrapped their Authenticator app from the Wear OS Play Store. However, anyone can contribute to this project. Click here to read the rules if you'd like to.

Code of Conduct

Make sure to adhere to the code of conduct when interacting with others on this project.

ACKNOWLEDGEMENTS

The Aegis Authenticator, andOTP, Google Authenticator and Bitwarden names, data export formats, logos and trademarks belong to their respective owners.

Please star and support these developers for their hard work. All libraries, dependencies and tools used belong to their respective owners.

Marcel Kliemannel - Kotlin Onetimepassword (to generate OTPs)

Androidmads - QR Generator library (to generate QR Codes)

Zxing (to scan QR codes for Google Authenticator imports)

GSON (to parse data)

EncryptedSharedPreferences (to store data in an encrypted format securely)

Roland Kurmann - extract_otp_secret_keys (to extract Google Authenticator data)

Chaquo Ltd - Chaquopy (to run Python to decode protobuf3 data)

LICENSE

Multimedia licensed under License: CC BY-NC-SA 4.0

Copyright ยฉ 2021 Owais Shaikh

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].