-- OpenPGP keyring metadata. Secret key material is stored outside SQLite. CREATE TABLE IF NOT EXISTS pgp_keys ( fingerprint TEXT PRIMARY KEY, key_id TEXT NOT NULL, email TEXT NOT NULL DEFAULT '', user_id TEXT NOT NULL DEFAULT '', public_key_armor TEXT NOT NULL, secret_key_path TEXT, has_secret INTEGER NOT NULL DEFAULT 0, trust TEXT NOT NULL DEFAULT 'unknown', source TEXT NOT NULL DEFAULT 'import', created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE INDEX IF NOT EXISTS idx_pgp_keys_email ON pgp_keys(lower(email)); CREATE TABLE IF NOT EXISTS pgp_preferences ( id INTEGER PRIMARY KEY CHECK (id = 1), wkd_enabled INTEGER NOT NULL DEFAULT 1, hkp_enabled INTEGER NOT NULL DEFAULT 0, require_trusted_encryption INTEGER NOT NULL DEFAULT 0, updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); INSERT OR IGNORE INTO pgp_preferences (id) VALUES (1);