Balou is an android app that reads GPG encoded text from QR codes and puts it onto the system clipboard.
This exists because I want to send passwords from my desktop to my phone without a network connection.
I am in no way a security expert. This will generate a key pair and store it on your phone. The passphrase for the key is hard coded. To me this is okay, because I just need to make sure that nobody grabs a photo of the QR code to steal my password.
I need a password on my phone. I do not keep passwords on my phone out of principle. The password is on my desktop machine. I display the encrypted password as a QR code on my desktop screen. I scan it on my phone with Balou, it gets put onto my phone's clipboard. I paste the password onto where I need it.
(Be aware that the clipboard does not get cleared and the password will be there until you put something else onto it.)
- Svelte/SvelteKid (https://svelte.dev/)
- Tailwind CSS (https://tailwindcss.com/)
- shadcn for Svelte (https://github.com/huntabyte/shadcn-svelte)
- FontAwesome (https://github.com/FortAwesome/Font-Awesome)
- Capacitor (https://capacitorjs.com/)
- openpgpjs (https://github.com/openpgpjs/openpgpjs)
"Balou" is the name of my mom's dog. He is good a keeping secrets. This app might be too...
Clone the project and install dependencies with npm install.
Then start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --openTo create a production version of the svelte app:
npm run buildYou can preview the production build with npm run preview.
Build, sync and open up android studio:
npm run build
npx cap sync
npx cap open android
This will fail all the time. Let us hope that Capacitor keeps up with Google.
This might help: https://capacitorjs.com/docs/android/troubleshooting#recreating-your-project
If this actually works you can deploy the app to your phone.
- generate a key pair on your phone with balou
- somehow move the public key to your desktop (use balou's share button)
- put it on a file like
test.puband import it
gpg --import test.pub
- (optional: trust and sign the public key)
gpg --list-keys
take note of the key id or email and then:
gpg --edit-key <key id or email>
then inside gpg:
trust
4
lsign
y
save
echo "secret" | gpg --encrypt -a --recipient "sniffler@cats.com" | qrencode -o - | feh -
Use it with pass:
pass show "myspace.com/balou" | gpg --encrypt -a --recipient "sniffler@cats.com" | qrencode -o - | feh -
I can not help you with that.
I use arch, btw.