Skip to content

Dev Overview

tjado mäcke edited this page Dec 10, 2023 · 2 revisions

Architecture

Java Packages

Package/Folder Description
net.tjado.authorizer USB Keyboard output and scancode mappings for different languages. Handles the writes to /dev/hidg device file to send keystrokes to connected device. Includes utilities to execute commands as root.
net.tjado.bluetooth Bluetooth backend to handle the over Bluetooth Profile registration & state for HID (Keyboard or CTAP2).
net.tjado.webauthn Logic for U2F and WebAuthn (CTAP and CTAP2) and abstraction to PasswdSafe credential store for the keys.
org.pwsafe.lib Implemented format for psafe3 file and crypto abstraction that uses C++ code.
com.google.adrnoid.apps.authenticator Base32String: Encodes arbitrary byte arrays as case-insensitive base-32 strings. Used for OTP.
net.tjado.passwdsafe Main code base.
net.tjado.passwdsafe/db Database abstraction for recent files, backups and co.
net.tjado.passwdsafe/file Implements file logic for psafe3.
net.tjado.passwdsafe/lib Various like AppCompat, Permission Manager and co
net.tjado.passwdsafe/otp OTP implementation (based on FreeOTP). Needs major rework!
net.tjado.passwdsafe/pref Extended logic for preferences.
net.tjado.passwdsafe/util Various (maybe should be merged with lib?).
net.tjado.passwdsafe/view Additional classes to support the view layer.

Other

Folder Description
authorizer/src/main/assets Contains the license details of all dependencies in a specific format. This will be parsed to show all licenses in the app.
authorizer/src/main/cpp Crypto functions and memory utilities in C++.
doc File format specification of psafe3.
sign Gradle script to extend the build config with signing keys for comfortable development & testing.
test Several psafe3 files for testing.
.githug GitHub Actions
Clone this wiki locally