explaingit

domenkozar/factorseal

Analysis updated 2026-07-26

4RustAudience · developerComplexity · 4/5Setup · hard

TLDR

FactorSeal is a local credential manager that locks your passwords to your computer's hardware security chip, requiring either the hardware itself or an optional YubiKey to unlock stored secrets.

Mindmap

mindmap
  root((repo))
    What it does
      Local credential storage
      Hardware-locked vault
      No secrets in repos
    Security model
      Secure Enclave on macOS
      TPM 2.0 on Windows Linux
      Refuses software fallback
      Wipes memory after use
    Second factor
      Optional YubiKey support
      Vault key split in two
      PIN required on device
    How to use
      Command line interface
      Rust library keyring API
      Password migration mode
    Warnings
      Unaudited prototype
      Not for production secrets

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Store passwords and API keys locally with hardware-level protection on macOS, Windows, or Linux.

USE CASE 2

Add a YubiKey as a second unlock factor so neither the machine nor the key alone can open the vault.

USE CASE 3

Integrate credential storage into a Rust application using the standard keyring API.

USE CASE 4

Migrate older password vaults to the newer hardware-backed encrypted format.

What is it built with?

RustTPM 2.0Secure EnclaveYubiKeyXChaCha20-Poly1305

How does it compare?

domenkozar/factorseal6elphegor/warpadoslabsproject-gif/liara-toolkit
Stars444
LanguageRustRustRust
Setup difficultyhardeasyhard
Complexity4/55/54/5
Audiencedeveloperresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires a machine with TPM 2.0 (Windows/Linux) or Secure Enclave (macOS), and optionally a pre-configured YubiKey for second-factor authentication.

In plain English

FactorSeal is a local credential manager written in Rust that ties secret storage to your machine's hardware. It stores passwords and other credentials using the standard "service plus account" naming convention that existing keyring APIs already use, so applications can interact with it through familiar interfaces. An encrypted vault stays on your local machine, and there are no encrypted secret files left sitting in your project repositories. By default, FactorSeal relies on hardware security features available on your platform. On macOS it uses the Secure Enclave, and on Windows and Linux it uses TPM 2.0. The tool is strict about its security guarantees: if it detects that hardware protection is unavailable and a software fallback would be used instead, it refuses to operate. A vault created with one hardware backend cannot be silently switched to another. Every credential is encrypted individually using a cipher called XChaCha20-Poly1305, and the system takes care to keep decrypted values in memory only briefly, wiping them as soon as they are no longer needed. FactorSeal also supports an optional second factor using a YubiKey. When this feature is enabled, the vault key is split into two separate pieces. One piece is protected by your machine's hardware, and the other is protected by a PIN required on the YubiKey itself. Both pieces are required to unlock the vault, meaning neither factor alone can grant access. The YubiKey must already have a compatible key configured in a specific slot, and FactorSeal will never overwrite or create keys on the device. The project provides a command line interface for creating a vault, storing a credential, retrieving it, and checking status. Developers can also use it as a library through a keyring API. A password migration mode exists for moving older vaults to the newer hardware-backed format, but it is intentionally not a fallback for hardware vaults. The README notes that a desktop unlock agent is on the roadmap. This agent would authorize once, hold the vault key for a limited session, and serve requests without caching plaintext credentials. The author includes a prominent warning that FactorSeal is an unaudited prototype and should not be used for production secrets until it receives independent security review.

Copy-paste prompts

Prompt 1
Help me set up FactorSeal on my machine, how do I create a vault and store my first credential using the command line interface?
Prompt 2
I have a YubiKey configured with a key in a specific slot. How do I enable it as a second factor for my FactorSeal vault so both the hardware chip and the YubiKey are required to unlock?
Prompt 3
How do I use FactorSeal as a Rust library to store and retrieve credentials through the keyring API in my own application?
Prompt 4
What happens if FactorSeal can't detect a hardware security feature like TPM 2.0 or Secure Enclave on my machine, and how do I check whether my system is supported?

Frequently asked questions

What is factorseal?

FactorSeal is a local credential manager that locks your passwords to your computer's hardware security chip, requiring either the hardware itself or an optional YubiKey to unlock stored secrets.

What language is factorseal written in?

Mainly Rust. The stack also includes Rust, TPM 2.0, Secure Enclave.

How hard is factorseal to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is factorseal for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.