Ultimamente mi era capitato di scrivere una piccola astrazione per utilizzare bitwarden tramite Emacs. In futuro voglio estendere il supporto anche a KeePass. Ho quindi deciso di pulire un minimo il codice e di pubblicarlo come progetto open-source. Segue il link alla repository:
Da notare che il codice è abbastanza recente, quindi non mi sento di dare grandi garanzie rispetto alla stabilità. Dovrei gestire meglio le eccezioni in caso e fare una serie di cose.
Se trovate bug o cose strane, aprite pure issue che quando ho tempo sistemo.
Il progetto mostra anche come poter utilizzare la libreria transient.el
per creare piccole ma funzionali UI. Nello specifico, il flusso è:
- SI effettua il login con
bw/login
- Si carica un item con
bw/load-item
- A questo punto si può selezionare di copiare lo username, la password o di selezionare un URI associato all’item con le funzioni
bw/read-uris
,bw/read-username
,bw/read-password
Altre note particolari:
-
Ho deciso di non utilizzare il kill-ring per memorizzare le password, in quanto la considero una zona di memoria non adatta per salvare informazioni sensibili. Questo significa che le password copiate sono disponibili nella clipboard di X11, ma non tramite il kill-ring di Emacs.
-
Ci sono una serie di timeout che vanno ad eliminare i dati di sessione dopo una certa quantità di minuti passati. Questo sempre per minimizzare il tempo in cui dati sensibili sono accessibili nel file system.
-
Durante il login la password non viene passata dalla command line ma dallo STDIN del processo. Questo per evitare di lasciare informazioni sensibili.
In futuro cercherò di migliorarlo, se avete del feedback scrivete pure anche qui.