summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/en/hardenedpass/_index.md33
-rw-r--r--content/en/hardenedpass/reference/_index.md8
-rw-r--r--content/en/hardenedpass/reference/security/index.md59
-rw-r--r--content/en/hardenedpass/reference/settings/index.md65
-rw-r--r--content/en/hardenedpass/reference/troubleshooting/index.md76
-rw-r--r--content/en/hardenedpass/using/autofill/index.md5
-rw-r--r--content/en/hardenedpass/using/sync/index.md2
-rw-r--r--content/it/hardenedpass/_index.md33
-rw-r--r--content/it/hardenedpass/reference/_index.md8
-rw-r--r--content/it/hardenedpass/reference/security/index.md60
-rw-r--r--content/it/hardenedpass/reference/settings/index.md65
-rw-r--r--content/it/hardenedpass/reference/troubleshooting/index.md84
-rw-r--r--content/it/hardenedpass/using/autofill/index.md5
-rw-r--r--content/it/hardenedpass/using/sync/index.md2
-rw-r--r--static/uppies/2026/11/hardenedpass-banner.pngbin0 -> 46661 bytes
15 files changed, 455 insertions, 50 deletions
diff --git a/content/en/hardenedpass/_index.md b/content/en/hardenedpass/_index.md
index b3421a0..6175565 100644
--- a/content/en/hardenedpass/_index.md
+++ b/content/en/hardenedpass/_index.md
@@ -1,12 +1,37 @@
+++
title = "HardenedPass"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "HardenedPass is an Android client for pass, the standard Unix password manager: OpenPGP-encrypted files in a git repository, no Google Play Services, no telemetry."
draft = true
+++
-Placeholder.
+{{< image src="/uppies/2026/11/hardenedpass-banner.png" alt="The HardenedPass banner: a shield-shaped padlock with a git branch cut through it, next to the app's name." />}}
-## First heading
+I keep my passwords in [pass](https://www.passwordstore.org/): plain files, encrypted
+with OpenPGP, in a git repository I host myself. On the phone I used Android Password
+Store, until it was archived in October 2024. My phone runs GrapheneOS, I wanted a
+client I could trust there, and I did not want to go shopping for a password manager
+with a cloud. So I forked it.
-Text.
+HardenedPass picks up from upstream's last commit. The goal is simple: work flawlessly
+on GrapheneOS, with no Google Play Services and no telemetry. All the credit for the
+original work goes to the Android Password Store authors.
+
+## What is different from upstream
+
+- Reads what modern GnuPG writes. Upstream rejected the OCB messages GnuPG 2.3 and later
+ produce by default.
+- Rejects keys that have no encryption subkey when you import them.
+- Updated cryptography libraries, fixing known advisories.
+- Other apps can no longer reach the decrypt screen with arbitrary file paths.
+- No crash reporting, no Google Play Services, one single FOSS build.
+- A new interface, built with Jetpack Compose.
+- Its own application ID: it installs next to upstream instead of over it.
+
+## Where to start
+
+- Never used `pass`? Start with [Concepts]({{< relref "/hardenedpass/getting-started/concepts" >}}).
+- Have a store already? [Install]({{< relref "/hardenedpass/getting-started/install" >}}) the app, then [connect it]({{< relref "/hardenedpass/getting-started/connect" >}}).
+
+The code is on [GitHub](https://github.com/danixland/HardenedPass), under the GPL-3.0.
+Bugs and ideas go on the [issue tracker](https://github.com/danixland/HardenedPass/issues).
diff --git a/content/en/hardenedpass/reference/_index.md b/content/en/hardenedpass/reference/_index.md
index 9a07df6..7b14a54 100644
--- a/content/en/hardenedpass/reference/_index.md
+++ b/content/en/hardenedpass/reference/_index.md
@@ -1,13 +1,9 @@
+++
title = "Reference"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Reference pages for HardenedPass: every setting, the security model and fixes for common errors."
weight = 30
draft = true
+++
-Placeholder.
-
-## First heading
-
-Text.
+Look things up here when you need them. There is no need to read these pages in order.
diff --git a/content/en/hardenedpass/reference/security/index.md b/content/en/hardenedpass/reference/security/index.md
index 0c1ba30..c865c1d 100644
--- a/content/en/hardenedpass/reference/security/index.md
+++ b/content/en/hardenedpass/reference/security/index.md
@@ -1,13 +1,64 @@
+++
title = "Security"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "What HardenedPass protects, where each secret lives, what it sends over the network and which threats it does not cover."
weight = 100
draft = true
+++
-Placeholder.
+This page says what the app does for you and, just as important, what it does not do.
-## First heading
+## Where your secrets live
+
+| Secret | Where it is | How it is protected |
+|---|---|---|
+| Entries | Files in the app's private storage, and on your git server | OpenPGP, the same as `pass` on a computer |
+| OpenPGP private key | The app's private storage | Its own passphrase |
+| Key passphrase | Nowhere, unless you enable caching | If cached: AES-GCM under an Android Keystore key |
+| Git and proxy passwords | The app's private storage, if you tell it to remember them | AES-GCM under an Android Keystore key |
+| SSH key made on the phone | Android Keystore | The system, plus your screen lock if you ask for it |
+| SSH key you imported | The app's private storage | Its own passphrase, if it has one |
+
+Android Keystore keys are held by the system and cannot be copied out of the phone, even
+by the app that uses them.
+
+## What the app does
+
+- **No telemetry.** No analytics, no crash reports, no Google Play Services. The app
+ only connects to the git server you configured, and to your proxy if you set one.
+- **Blocks screenshots of secrets.** Entries, the editor, the generator, passphrase
+ dialogs and autofill windows cannot be captured by screenshots, and do not appear in
+ the recent apps view.
+- **Clears the clipboard.** A copied password is removed after a timeout.
+- **Checks the SSH server.** The server's host key is saved on first connection and
+ checked after that. The first connection is trusted without asking, so make it on a
+ network you trust.
+- **Trusts known browsers only.** Autofill works only in browsers whose signing
+ certificate the app recognizes, and warns you if an app's publisher changes. See
+ [Autofill]({{< relref "/hardenedpass/using/autofill" >}}).
+- **Refuses outside files.** Other apps can open the app, but it only opens paths that
+ really are inside your store.
+
+## What the app does not protect you from
+
+- **A compromised phone.** Malware that controls an unlocked phone can see what you
+ see. Keep the system up to date.
+- **Your keyboard.** A keyboard app sees everything you type, the passphrase included.
+ Use one you trust, with network access off if your system allows that.
+- **Other apps reading the clipboard** before the timeout runs out. Autofill avoids the
+ clipboard altogether.
+- **A weak passphrase.** If someone gets your key file, the passphrase is all that is
+ left.
+- **Your git server seeing names.** Entry and folder names are file names, and they are
+ not encrypted, so the server can read them, along with the dates of your commits.
+- **Biometric lock as encryption.** **Enable biometric authentication** is a gate at app
+ start. It keeps out someone holding your unlocked phone for a moment, and it does not
+ encrypt anything.
+- **Losing your key.** No one can recover a store without its private key and passphrase.
+
+## Passphrase caching
+
+Caching is convenient, but while the passphrase is cached, anyone who gets into the
+unlocked app can open every entry. It is experimental. If you use it, turn on
+**Automatically clear passphrase cache** as well.
-Text.
diff --git a/content/en/hardenedpass/reference/settings/index.md b/content/en/hardenedpass/reference/settings/index.md
index 81a68ad..d856f93 100644
--- a/content/en/hardenedpass/reference/settings/index.md
+++ b/content/en/hardenedpass/reference/settings/index.md
@@ -1,13 +1,70 @@
+++
title = "Settings"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Every HardenedPass setting and what it does, section by section: general, autofill, passwords, repository, misc and PGP."
weight = 90
draft = true
+++
-Placeholder.
+Open **Settings** from the three dots in the list's search bar, or from the welcome
+screen. Settings are grouped in six sections.
-## First heading
+## General
-Text.
+| Setting | What it does |
+|---|---|
+| **App theme** | Light, dark or following the battery saver. |
+| **Password file organization** | How autofill names the files it saves, for example `work/example.org.gpg` or `work/example.org/alice@example.org.gpg`. |
+| **Password sort order** | Folders first, or recently used first. |
+| **Disable pull to sync action** | Stops the pull down gesture on the list from starting a sync. |
+| **Recursive filtering** | Search also looks inside the folders below the current one. |
+| **Open search on start** | Opens the search bar when the app starts. |
+| **Show all files and folders** | Lists files that are not passwords as well. |
+| **Enable biometric authentication** | Asks for your fingerprint when the app starts. See [Security]({{< relref "/hardenedpass/reference/security" >}}) for what this does and does not protect. |
+
+## Autofill
+
+| Setting | What it does |
+|---|---|
+| **Enable Autofill** | Makes HardenedPass the autofill service. See [Autofill]({{< relref "/hardenedpass/using/autofill" >}}). |
+| **Default username** | Used when autofill cannot find a username in the entry or its path. |
+| **Custom domains** | Domains whose subdomains autofill treats as separate sites. |
+
+## Passwords
+
+| Setting | What it does |
+|---|---|
+| **Password generator type** | The generator that opens first: Classic (the Random tab) or Diceware. |
+| **Password copy timeout** | Seconds a copied password stays in the clipboard, 45 by default. 0 means forever. |
+| **Show the password** | Whether a decrypted password is visible right away. Copying still works when it is hidden. |
+| **Automatically copy password** | Copies the password as soon as an entry is decrypted. |
+
+## Repository
+
+| Setting | What it does |
+|---|---|
+| **Rebase on pull** | On, your local commits go on top of the server's. Off, a merge commit is made instead. On by default. |
+| **Edit Git server settings** | Changes the repository URL and how you log in. |
+| **HTTP(S) proxy settings** | Sets a proxy. Shown for HTTPS remotes only. |
+| **Local Git config & utilities** | Commit name and email, commit log, and the recovery tools described in [Sync]({{< relref "/hardenedpass/using/sync" >}}). |
+| **Import SSH key** | Reads a private SSH key from a file. |
+| **Generate SSH key pair** | Makes a new SSH key on the phone. |
+| **View generated public SSH key** | Shows the public half, to add to your server. |
+| **Delete repository** | Deletes the local copy of the store. The server's copy is not touched, and neither are local commits you did not sync: those are gone. |
+
+## Misc
+
+| Setting | What it does |
+|---|---|
+| **Export passwords** | Copies the store, still encrypted, to a folder you choose. |
+| **Workaround clipboard history feature** | On phones with a clipboard history, fills it with numbers to push passwords out. |
+| **Debug logging** | Turns on debug logs, after an app restart. Release builds only. |
+
+## PGP settings
+
+| Setting | What it does |
+|---|---|
+| **Key manager** | Lists imported keys, imports new ones and deletes old ones. |
+| **Encrypt in ASCII armor mode** | Writes entries as text instead of binary. Leave it off unless you know you need it. |
+| **Enable passphrase caching** | Remembers the key's passphrase, so that entries open without asking. Experimental, and needs an active screen lock. |
+| **Automatically clear passphrase cache** | Forgets the passphrase when the screen turns off. |
diff --git a/content/en/hardenedpass/reference/troubleshooting/index.md b/content/en/hardenedpass/reference/troubleshooting/index.md
index 4221c83..3dfce92 100644
--- a/content/en/hardenedpass/reference/troubleshooting/index.md
+++ b/content/en/hardenedpass/reference/troubleshooting/index.md
@@ -1,13 +1,81 @@
+++
title = "Troubleshooting"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Common HardenedPass errors, what they mean and how to fix them: passphrase, keys, SSH, push rejected, detached head, autofill."
weight = 110
draft = true
+++
-Placeholder.
+## Keys and passphrases
-## First heading
+**The app asks for the passphrase again and says it is wrong.** The passphrase does not
+match the private key. If you changed the key's passphrase on a computer, the app
+needs the new one. If caching is on, it asks again and replaces the old value.
-Text.
+**`Failed to import PGP key`.** The file is not a key the app can use. Keys without an
+encryption subkey are rejected, because they could not decrypt anything. Check that you
+exported the **private** key, with `gpg --armor --export-secret-keys`.
+
+**An entry will not open and no key matches.** The store is encrypted for a key that is
+not imported. Compare **Store recipients** on the import screen, or the `.gpg-id` file,
+with the keys in **Key manager**. A public key alone cannot decrypt: import the private
+one.
+
+**The key is on a smartcard.** GnuPG exports a stub for such a key, with no secret
+material in it. The app cannot decrypt with that. It needs the real private key.
+
+**`Found .gpg-id, but it contains an invalid key ID, fingerprint or user ID`.** The
+`.gpg-id` file has something the app does not understand. Check it on a computer: one
+key ID, fingerprint or address per line.
+
+## Connecting
+
+**`The provided repository URL is not valid`.** See the address forms in
+[Connect the app]({{< relref "/hardenedpass/getting-started/connect" >}}).
+
+**`Wrong password` or `Wrong passphrase`.** For a repository password or an SSH key's
+passphrase. Many hosting services want an access token rather than the account password.
+
+**`Selected file does not appear to be an SSH private key`.** You picked the public key,
+or a file in another format. Choose the file without `.pub`.
+
+**The sync fails after the server was reinstalled or moved.** Its host key changed. If
+you are sure why, use **Clear saved host key** on the repository screen, under **Edit
+Git server settings**. If you are not, treat it as an attack until you know better.
+
+**SSH login is refused.** Check that the public key is on the server, for the right
+account. **View generated public SSH key** shows it for a key made on the phone.
+
+## Syncing
+
+**`Push was rejected by remote, run pull before pushing again`.** The server has commits
+you do not have. Use **Synchronize repository**, which pulls and then pushes.
+
+**`Pull has failed, you're in a detached head`.** A conflict stopped the rebase.
+[Sync]({{< relref "/hardenedpass/using/sync" >}}) has the steps.
+
+**`Merge has failed, you're in a conflicting state`.** The same conflict, with **Rebase
+on pull** off. The way out is the hard reset in
+[Sync]({{< relref "/hardenedpass/using/sync" >}}), after saving anything you need.
+
+**`The repository must be cloned before syncing changes`.** The store on the phone has no
+remote. Set one under **Edit Git server settings** and clone it.
+
+## Autofill
+
+**No suggestions appear.** Check that HardenedPass is the selected autofill service in
+Android's settings, and that the browser is on the list in
+[Autofill]({{< relref "/hardenedpass/using/autofill" >}}).
+
+**Only the password gets filled.** That is the browser's support level, as with Vanadium.
+
+**`This app is currently not supported`.** The app cannot save from there. You can still
+add the entry by hand.
+
+**Nothing happens after tapping Save.** Android 14 and later hold back background
+windows, and the app has a workaround: update to the latest version.
+
+## Still stuck?
+
+Open an issue on the [tracker](https://github.com/danixland/HardenedPass/issues). Say
+which version you run and what you did. Never paste passwords, keys or real entry names.
diff --git a/content/en/hardenedpass/using/autofill/index.md b/content/en/hardenedpass/using/autofill/index.md
index 43b7855..7455c23 100644
--- a/content/en/hardenedpass/using/autofill/index.md
+++ b/content/en/hardenedpass/using/autofill/index.md
@@ -11,7 +11,7 @@ not need to copy anything.
## Turn it on
-Open **Settings** and turn on **Enable Autofill**. The app explains what will happen and
+Open **Settings**, then **Autofill**, and turn on **Enable Autofill**. The app explains what will happen and
lists your installed browsers with how well each one is supported. Tap OK, choose
HardenedPass in Android's autofill settings and confirm.
@@ -52,7 +52,8 @@ filled in. Save the entry there, then remember to
[sync]({{< relref "/hardenedpass/using/sync" >}}).
Firefox also shows its own save prompt. That one is Firefox's password manager, not
-HardenedPass, and you can dismiss it.
+HardenedPass, and you can dismiss it. To stop it for good, turn off saving passwords in
+Firefox's settings: only the HardenedPass prompt remains.
## The phishing warning
diff --git a/content/en/hardenedpass/using/sync/index.md b/content/en/hardenedpass/using/sync/index.md
index 2351d5b..fe00355 100644
--- a/content/en/hardenedpass/using/sync/index.md
+++ b/content/en/hardenedpass/using/sync/index.md
@@ -32,7 +32,7 @@ pick a winner. The app uses a rebase by default (**Rebase on pull**), and the sy
stops with an error saying the pull failed and that you are in a detached head. Your
work is not lost.
-Open **Settings**, then **Local Git config & utilities**. You have two ways out:
+Open **Settings**, then **Repository**, then **Local Git config & utilities**. You have two ways out:
### Keep your changes
diff --git a/content/it/hardenedpass/_index.md b/content/it/hardenedpass/_index.md
index b3421a0..ab4e027 100644
--- a/content/it/hardenedpass/_index.md
+++ b/content/it/hardenedpass/_index.md
@@ -1,12 +1,37 @@
+++
title = "HardenedPass"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "HardenedPass è un client Android per pass, il gestore di password standard di Unix: file cifrati con OpenPGP in un repository git, senza Google Play Services e senza telemetria."
draft = true
+++
-Placeholder.
+{{< image src="/uppies/2026/11/hardenedpass-banner.png" alt="Il banner di HardenedPass: un lucchetto a forma di scudo attraversato da un ramo git, accanto al nome dell'app." />}}
-## First heading
+Tengo le mie password in [pass](https://www.passwordstore.org/): semplici file, cifrati con
+OpenPGP, in un repository git che ospito io. Sul telefono usavo Android Password Store, finché
+non è stato archiviato a ottobre 2024. Il mio telefono usa GrapheneOS, volevo un client di cui
+fidarmi lì, e non avevo voglia di andare a cercare un gestore di password con il suo cloud.
+Così ne ho fatto un fork.
-Text.
+HardenedPass riparte dall'ultimo commit di upstream. L'obiettivo è semplice: funzionare in modo
+impeccabile su GrapheneOS, senza Google Play Services e senza telemetria. Tutto il merito del
+lavoro originale va agli autori di Android Password Store.
+
+## Cosa cambia rispetto a upstream
+
+- Legge quello che scrive il GnuPG moderno. Upstream rifiutava i messaggi OCB che GnuPG 2.3 e
+ successivi producono di default.
+- Rifiuta in fase di importazione le chiavi senza sottochiave di cifratura.
+- Librerie crittografiche aggiornate, che risolvono vulnerabilità note.
+- Le altre app non possono più raggiungere la schermata di decifratura con percorsi arbitrari.
+- Niente report di crash, niente Google Play Services, un'unica build FOSS.
+- Una nuova interfaccia, fatta con Jetpack Compose.
+- Un application ID tutto suo: si installa accanto a upstream, non sopra.
+
+## Da dove partire
+
+- Non hai mai usato `pass`? Parti da [Concetti]({{< relref "/hardenedpass/getting-started/concepts" >}}).
+- Hai già un archivio? [Installa]({{< relref "/hardenedpass/getting-started/install" >}}) l'app, poi [collegala]({{< relref "/hardenedpass/getting-started/connect" >}}).
+
+Il codice è su [GitHub](https://github.com/danixland/HardenedPass), sotto licenza GPL-3.0.
+Bug e idee vanno sul [tracker](https://github.com/danixland/HardenedPass/issues).
diff --git a/content/it/hardenedpass/reference/_index.md b/content/it/hardenedpass/reference/_index.md
index 9c2811b..5b27491 100644
--- a/content/it/hardenedpass/reference/_index.md
+++ b/content/it/hardenedpass/reference/_index.md
@@ -1,13 +1,9 @@
+++
title = "Riferimento"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Le pagine di riferimento di HardenedPass: ogni impostazione, il modello di sicurezza e le soluzioni agli errori più comuni."
weight = 30
draft = true
+++
-Placeholder.
-
-## First heading
-
-Text.
+Consulta queste pagine quando ti servono. Non c'è bisogno di leggerle in ordine.
diff --git a/content/it/hardenedpass/reference/security/index.md b/content/it/hardenedpass/reference/security/index.md
index 7b8cd2b..aef0f43 100644
--- a/content/it/hardenedpass/reference/security/index.md
+++ b/content/it/hardenedpass/reference/security/index.md
@@ -1,13 +1,65 @@
+++
title = "Sicurezza"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Cosa protegge HardenedPass, dove sta ogni segreto, cosa invia in rete e quali minacce non copre."
weight = 100
draft = true
+++
-Placeholder.
+Questa pagina dice cosa fa l'app per te e, altrettanto importante, cosa non fa.
-## First heading
+## Dove stanno i tuoi segreti
-Text.
+| Segreto | Dove sta | Come è protetto |
+|---|---|---|
+| Voci | File nella memoria privata dell'app e sul tuo server git | OpenPGP, come `pass` su un computer |
+| Chiave privata OpenPGP | Memoria privata dell'app | La sua passphrase |
+| Passphrase della chiave | Da nessuna parte, a meno che attivi la memorizzazione | Se memorizzata: AES-GCM con una chiave Android Keystore |
+| Password di git e del proxy | Memoria privata dell'app, se le fai ricordare | AES-GCM con una chiave Android Keystore |
+| Chiave SSH creata sul telefono | Android Keystore | Il sistema, più il blocco schermo se lo richiedi |
+| Chiave SSH importata | Memoria privata dell'app | La sua passphrase, se ne ha una |
+
+Le chiavi di Android Keystore sono custodite dal sistema e non si possono copiare fuori dal
+telefono, nemmeno dall'app che le usa.
+
+## Cosa fa l'app
+
+- **Nessuna telemetria.** Niente analytics, niente report di crash, niente Google Play
+ Services. L'app si collega solo al server git che hai configurato, e al proxy se ne
+ hai impostato uno.
+- **Blocca gli screenshot dei segreti.** Voci, editor, generatore, finestre della
+ passphrase e finestre della compilazione automatica non si possono catturare con uno
+ screenshot e non appaiono tra le app recenti.
+- **Pulisce gli appunti.** Una password copiata viene rimossa dopo un timeout.
+- **Controlla il server SSH.** La chiave host del server viene salvata alla prima
+ connessione e controllata in seguito. La prima connessione viene accettata senza
+ chiedere, quindi falla da una rete di cui ti fidi.
+- **Si fida solo dei browser noti.** La compilazione automatica funziona solo nei browser
+ di cui l'app riconosce il certificato di firma, e ti avvisa se l'editore di un'app
+ cambia. Vedi [Autofill]({{< relref "/hardenedpass/using/autofill" >}}).
+- **Rifiuta i file esterni.** Altre app possono aprire l'app, ma questa apre solo percorsi
+ che stanno davvero dentro il tuo archivio.
+
+## Da cosa l'app non ti protegge
+
+- **Un telefono compromesso.** Un malware che controlla un telefono sbloccato vede quello
+ che vedi tu. Tieni aggiornato il sistema.
+- **La tua tastiera.** Un'app tastiera vede tutto quello che digiti, passphrase compresa.
+ Usane una di cui ti fidi, senza accesso alla rete se il sistema lo permette.
+- **Altre app che leggono gli appunti** prima che scada il timeout. La compilazione
+ automatica evita del tutto gli appunti.
+- **Una passphrase debole.** Se qualcuno ottiene il file della chiave, la passphrase è
+ tutto quello che resta.
+- **Il server git che vede i nomi.** I nomi di voci e cartelle sono nomi di file, non sono
+ cifrati, quindi il server li può leggere, insieme alle date dei commit.
+- **Il blocco biometrico come cifratura.** **Abilita autenticazione biometrica** è un
+ cancello all'avvio dell'app. Ferma chi ha in mano per un attimo il tuo telefono sbloccato,
+ ma non cifra nulla.
+- **La perdita della chiave.** Nessuno può recuperare un archivio senza chiave privata e
+ passphrase.
+
+## Memorizzare la passphrase
+
+È comodo, ma finché la passphrase è memorizzata chiunque entri nell'app sbloccata può aprire
+ogni voce. La funzione è sperimentale. Se la usi, attiva anche **Cancella automaticamente le
+frasi segrete memorizzate**.
diff --git a/content/it/hardenedpass/reference/settings/index.md b/content/it/hardenedpass/reference/settings/index.md
index c21dade..d0f8733 100644
--- a/content/it/hardenedpass/reference/settings/index.md
+++ b/content/it/hardenedpass/reference/settings/index.md
@@ -1,13 +1,70 @@
+++
title = "Impostazioni"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Ogni impostazione di HardenedPass e cosa fa, sezione per sezione: generale, autofill, password, repository, varie e PGP."
weight = 90
draft = true
+++
-Placeholder.
+Apri **Impostazioni** dai tre puntini nella barra di ricerca dell'elenco, o dalla
+schermata di benvenuto. Le impostazioni sono divise in sei sezioni.
-## First heading
+## Generale
-Text.
+| Impostazione | Cosa fa |
+|---|---|
+| **Tema dell'App** | Chiaro, scuro, o secondo il risparmio energetico. |
+| **Organizzazione dei file delle password** | Come la compilazione automatica nomina i file che salva, per esempio `work/example.org.gpg` o `work/example.org/alice@example.org.gpg`. |
+| **Ordine password** | Prima le cartelle, oppure prima le usate di recente. |
+| **Disattiva la sincronizzazione trascinando** | Il gesto di trascinare in basso l'elenco non avvia più una sincronizzazione. |
+| **Filtro ricorsivo** | La ricerca guarda anche nelle cartelle sotto quella corrente. |
+| **Apri ricerca all'avvio** | Apre la barra di ricerca all'avvio dell'app. |
+| **Mostra tutti i file e cartelle** | Elenca anche i file che non sono password. |
+| **Abilita autenticazione biometrica** | Chiede l'impronta all'avvio dell'app. In [Sicurezza]({{< relref "/hardenedpass/reference/security" >}}) trovi cosa protegge e cosa no. |
+
+## Autofill
+
+| Impostazione | Cosa fa |
+|---|---|
+| **Attiva la compilazione automatica** | Rende HardenedPass il servizio di compilazione automatica. Vedi [Autofill]({{< relref "/hardenedpass/using/autofill" >}}). |
+| **Nome utente predefinito** | Usato quando la compilazione automatica non trova un nome utente nella voce o nel suo percorso. |
+| **Domini personalizzati** | Domini i cui sottodomini vengono trattati come siti separati. |
+
+## Password
+
+| Impostazione | Cosa fa |
+|---|---|
+| **Tipo di generatore di password** | Il generatore che si apre per primo: Classic (la scheda Casuale) o Diceware. |
+| **Timeout copia della password** | Per quanti secondi una password copiata resta negli appunti, 45 di default. 0 significa per sempre. |
+| **Mostra la password** | Se una password decifrata è subito visibile. La copia funziona anche quando è nascosta. |
+| **Copia automaticamente la password** | Copia la password appena una voce viene decifrata. |
+
+## Repository
+
+| Impostazione | Cosa fa |
+|---|---|
+| **Rebase al pull** | Attivo, i tuoi commit locali vanno sopra quelli del server. Spento, viene creato un merge commit. Attivo di default. |
+| **Modifica impostazioni del server di Git** | Cambia l'URL del repository e il modo di accedere. |
+| **Impostazioni proxy HTTP(S)** | Imposta un proxy. Appare solo per i remote HTTPS. |
+| **Configurazione Git locale e utilità** | Nome ed email dei commit, cronologia e gli strumenti di recupero descritti in [Sincronizzazione]({{< relref "/hardenedpass/using/sync" >}}). |
+| **Importa chiave SSH** | Legge una chiave SSH privata da un file. |
+| **Genera coppia di chiavi SSH** | Crea una nuova chiave SSH sul telefono. |
+| **Visualizza la chiave SSH pubblica generata** | Mostra la metà pubblica, da aggiungere al server. |
+| **Elimina repository** | Elimina la copia locale dell'archivio. Quella sul server non viene toccata, ma i commit locali non sincronizzati vanno persi. |
+
+## Varie
+
+| Impostazione | Cosa fa |
+|---|---|
+| **Esporta password** | Copia l'archivio, sempre cifrato, in una cartella a tua scelta. |
+| **Aggira la cronologia degli appunti** | Sui telefoni con una cronologia degli appunti, la riempie di numeri per farne uscire le password. |
+| **Registrazione di debug** | Attiva i log di debug, dopo un riavvio dell'app. Solo nelle build di release. |
+
+## Impostazioni PGP
+
+| Impostazione | Cosa fa |
+|---|---|
+| **Gestione chiavi** | Elenca le chiavi importate, ne importa di nuove ed elimina le vecchie. |
+| **Cifra in formato ASCII armor** | Scrive le voci come testo invece che in binario. Lascialo spento se non sai di averne bisogno. |
+| **Memorizza le frasi segrete** | Ricorda la passphrase della chiave, così le voci si aprono senza chiederla. Sperimentale, e richiede un blocco schermo attivo. |
+| **Cancella automaticamente le frasi segrete memorizzate** | Dimentica la passphrase allo spegnimento dello schermo. |
diff --git a/content/it/hardenedpass/reference/troubleshooting/index.md b/content/it/hardenedpass/reference/troubleshooting/index.md
index c87671c..43253b9 100644
--- a/content/it/hardenedpass/reference/troubleshooting/index.md
+++ b/content/it/hardenedpass/reference/troubleshooting/index.md
@@ -1,13 +1,89 @@
+++
title = "Risoluzione dei problemi"
date = 2026-11-05T00:00:00Z
-description = ""
+description = "Gli errori più comuni di HardenedPass, cosa significano e come risolverli: passphrase, chiavi, SSH, push rifiutato, detached HEAD, autofill."
weight = 110
draft = true
+++
-Placeholder.
+I messaggi qui sotto sono riportati in inglese, come nel codice dell'app. Con l'app in
+italiano ne vedi la traduzione.
-## First heading
+## Chiavi e passphrase
-Text.
+**L'app chiede di nuovo la passphrase e dice che è sbagliata.** La passphrase non
+corrisponde alla chiave privata. Se hai cambiato la passphrase della chiave su un computer,
+l'app vuole quella nuova. Con la memorizzazione attiva, la richiede e sostituisce il vecchio
+valore.
+
+**`Failed to import PGP key`.** Il file non è una chiave che l'app può usare. Le chiavi senza
+una sottochiave di cifratura vengono rifiutate, perché non potrebbero decifrare nulla.
+Controlla di aver esportato la chiave **privata**, con `gpg --armor --export-secret-keys`.
+
+**Una voce non si apre e nessuna chiave corrisponde.** L'archivio è cifrato per una chiave
+non importata. Confronta **Destinatari dell'archivio** nella schermata di importazione, o il
+file `.gpg-id`, con le chiavi in **Gestione chiavi**. Una chiave pubblica da sola non può
+decifrare: importa quella privata.
+
+**La chiave sta su una smartcard.** Per una chiave così GnuPG esporta uno stub, senza alcun
+materiale segreto. Con quello l'app non può decifrare: serve la vera chiave privata.
+
+**`Found .gpg-id, but it contains an invalid key ID, fingerprint or user ID`.** Il file
+`.gpg-id` contiene qualcosa che l'app non capisce. Controllalo su un computer: un ID chiave,
+fingerprint o indirizzo per riga.
+
+## Connessione
+
+**`The provided repository URL is not valid`.** Guarda le forme di indirizzo in
+[Collega l'app]({{< relref "/hardenedpass/getting-started/connect" >}}).
+
+**`Wrong password` o `Wrong passphrase`.** Riguarda la password del repository o la passphrase
+di una chiave SSH. Molti servizi di hosting vogliono un token di accesso invece della password
+dell'account.
+
+**`Selected file does not appear to be an SSH private key`.** Hai scelto la chiave pubblica,
+o un file in un altro formato. Scegli il file senza `.pub`.
+
+**La sincronizzazione fallisce dopo che il server è stato reinstallato o spostato.** La sua
+chiave host è cambiata. Se sei sicuro del motivo, usa **Cancella la chiave host salvata**
+nella schermata del repository, in **Modifica impostazioni del server di Git**. Se non lo sei,
+consideralo un attacco finché non ne sai di più.
+
+**L'accesso SSH viene rifiutato.** Controlla che la chiave pubblica sia sul server, per
+l'account giusto. **Visualizza la chiave SSH pubblica generata** la mostra per una chiave
+creata sul telefono.
+
+## Sincronizzazione
+
+**`Push was rejected by remote, run pull before pushing again`.** Il server ha commit che tu
+non hai. Usa **Sincronizza repository**, che fa pull e poi push.
+
+**`Pull has failed, you're in a detached head`.** Un conflitto ha fermato il rebase. I passi
+sono in [Sincronizzazione]({{< relref "/hardenedpass/using/sync" >}}).
+
+**`Merge has failed, you're in a conflicting state`.** Lo stesso conflitto, con **Rebase al
+pull** spento. La via d'uscita è l'hard reset descritto in
+[Sincronizzazione]({{< relref "/hardenedpass/using/sync" >}}), dopo aver salvato ciò che ti
+serve.
+
+**`The repository must be cloned before syncing changes`.** L'archivio sul telefono non ha un
+remote. Impostane uno in **Modifica impostazioni del server di Git** e clonalo.
+
+## Autofill
+
+**Non appare nessun suggerimento.** Controlla che HardenedPass sia il servizio di compilazione
+automatica scelto nelle impostazioni di Android, e che il browser sia nell'elenco in
+[Autofill]({{< relref "/hardenedpass/using/autofill" >}}).
+
+**Viene compilata solo la password.** È il livello di supporto del browser, come per Vanadium.
+
+**`This app is currently not supported`.** Da lì l'app non può salvare. Puoi comunque
+aggiungere la voce a mano.
+
+**Non succede nulla dopo aver toccato Salva.** Android 14 e successivi trattengono le finestre
+in background, e l'app ha un rimedio: aggiorna all'ultima versione.
+
+## Ancora bloccato?
+
+Apri una segnalazione sul [tracker](https://github.com/danixland/HardenedPass/issues). Indica
+quale versione usi e cosa hai fatto. Non incollare mai password, chiavi o nomi di voci reali.
diff --git a/content/it/hardenedpass/using/autofill/index.md b/content/it/hardenedpass/using/autofill/index.md
index eb9b4e0..f14113a 100644
--- a/content/it/hardenedpass/using/autofill/index.md
+++ b/content/it/hardenedpass/using/autofill/index.md
@@ -11,7 +11,7 @@ app e nei browser, senza bisogno di copiare nulla.
## Attivala
-Apri **Impostazioni** e attiva **Attiva la compilazione automatica**. L'app spiega cosa
+Apri **Impostazioni**, poi **Autofill**, e attiva **Attiva la compilazione automatica**. L'app spiega cosa
succederà ed elenca i browser installati con il livello di supporto di ciascuno. Tocca
OK, scegli HardenedPass nelle impostazioni di compilazione automatica di Android e
conferma.
@@ -54,7 +54,8 @@ password già compilati. Salva lì la voce, poi ricordati di
[sincronizzare]({{< relref "/hardenedpass/using/sync" >}}).
Firefox mostra anche una sua richiesta di salvataggio. Quella è del gestore di password di
-Firefox, non di HardenedPass, e puoi ignorarla.
+Firefox, non di HardenedPass, e puoi ignorarla. Per non vederla più, disattiva il salvataggio
+delle password nelle impostazioni di Firefox: resta solo la richiesta di HardenedPass.
## L'avviso di phishing
diff --git a/content/it/hardenedpass/using/sync/index.md b/content/it/hardenedpass/using/sync/index.md
index 7a2e1de..d931c00 100644
--- a/content/it/hardenedpass/using/sync/index.md
+++ b/content/it/hardenedpass/using/sync/index.md
@@ -32,7 +32,7 @@ può scegliere un vincitore. L'app usa di default un rebase (**Rebase al pull**)
sincronizzazione si ferma con un errore che dice che il pull non è riuscito e che sei in
detached HEAD. Il tuo lavoro non è perso.
-Apri **Impostazioni**, poi **Configurazione Git locale e utilità**. Hai due vie d'uscita:
+Apri **Impostazioni**, poi **Repository**, poi **Configurazione Git locale e utilità**. Hai due vie d'uscita:
### Tieni le tue modifiche
diff --git a/static/uppies/2026/11/hardenedpass-banner.png b/static/uppies/2026/11/hardenedpass-banner.png
new file mode 100644
index 0000000..da5664c
--- /dev/null
+++ b/static/uppies/2026/11/hardenedpass-banner.png
Binary files differ