How raed-j3mli/razelock---rock works
Rock 2FA is a browser-based authenticator: a signed-in user adds a service’s TOTP secret by scanning a setup QR code or entering it manually, then views generated codes in the vault. Account and security settings are stored locally; signed-in accounts can synchronize through Firebase. Settings also cover passcode and biometric locking. The excerpts show route-to-storage and route-to-auth ownership; implementation details for TOTP, biometrics, and QR display are inferred only from module names and documented policy text.
Main entry points: app/page.tsx Vault page · AuthContext.tsx Auth provider · add/page.tsx Add account page · storage.ts Browser storage
Components 16
App experience
- Vault page
app/page.tsx - Add account page
app/add/page.tsx - QR and manual entry
components/AddAccountContent.tsx - Account cards
components/AccountCard.tsx - QR viewer
components/QRCodeViewerModal.tsx - Settings page
app/settings/page.tsx - Security settings UI
components/SettingsContent.tsx
Identity and sync
- Auth provider
lib/AuthContext.tsx - Firebase Auth and Firestore
lib/firebase.ts
Local security
- Browser storage
lib/storage.ts - Passcode cryptography
lib/crypto.ts - Biometric and lock logic
lib/biometrics.ts
Authenticator core
- TOTP operations
lib/totp.ts
Other components
- User
- Firebase services
- Device camera
Connections 23
- User → Vault page: opens vault
- Vault page → Auth provider: reads session
- Vault page → Browser storage: reads accounts
- Vault page → Account cards: renders accounts
- Account cards → QR viewer: opens QR
- User → Add account page: adds account
- Add account page → Auth provider: reads session
- Add account page → QR and manual entry: renders entry
- QR and manual entry → Device camera: requests video
- QR and manual entry → TOTP operations: parses or generates secret
- Add account page → Browser storage: saves account
- Vault page → TOTP operations: uses account codes
- User → Settings page: opens settings
- Settings page → Security settings UI: renders settings
- Settings page → Browser storage: reads and saves settings
- Vault page → Biometric and lock logic: checks lock policy
- Browser storage → Biometric and lock logic: uses security defaults
- Auth provider → Passcode cryptography: hashes and verifies passcodes
- Auth provider → Browser storage: reads and saves settings
- Auth provider → Firebase Auth and Firestore: authenticates and syncs
- Firebase Auth and Firestore → Firebase services: uses Auth and Firestore
- Vault page → Auth provider: syncs account changes
- Add account page → Auth provider: syncs added accounts