Command line and GUI interface to pass, the Unix password manager.
Go to file
Greg Pomerantz a022236d87 Guard against Gio's null-view detach event (recents-wipe SIGABRT)
Gio's GioView.onDestroyView sends ViewEvent{View: 0} as its detach
signal when the view is destroyed — i.e. the activity going away on a
recents-wipe. handleEvent passed that zero straight through to
InitPgp/registerFragment, whose GetObjectClass(null) aborts the process
(JNI DETECTED ERROR: java_object == null in call to GetObjectClass).

Guard on both sides: handleEvent ignores the View == 0 detach signal
(a re-attach arrives as a fresh event with a live view), InitPgp
returns early on a zero view so unfiltered callers are covered, and
registerFragment null-checks as defense in depth. Same fix as pad
(fdbffc9); verified there on a Pixel 9 Pro / Android 17 where the
recents swipe used to crash the app.
2026-08-20 22:16:13 -04:00
cmd Guard against Gio's null-view detach event (recents-wipe SIGABRT) 2026-08-20 22:16:13 -04:00
.gitignore Update to latest Gio release. Install a system font on Darwin to 2019-12-18 14:01:05 -05:00
go.mod Migrating to new Gio version (non-working version). 2020-08-31 17:03:07 -04:00
go.sum Migrating to new Gio version (non-working version). 2020-08-31 17:03:07 -04:00
impl_android.go Guard against Gio's null-view detach event (recents-wipe SIGABRT) 2026-08-20 22:16:13 -04:00
impl_darwin.go Convert to git.wow.st/gmp/clip for Darwin clipboard. 2019-10-01 13:54:35 -04:00
impl_linux.go Fix build tags. 2019-09-10 14:50:56 -04:00
impl_shared.go Fix build tags. 2019-09-10 14:50:56 -04:00
jni_android.c Guard against Gio's null-view detach event (recents-wipe SIGABRT) 2026-08-20 22:16:13 -04:00
jni_android.go Migrating to new Gio version (non-working version). 2020-08-31 17:03:07 -04:00
jni_android.h Migrating to new Gio version (non-working version). 2020-08-31 17:03:07 -04:00
main.go Add cmd/passgo-gui files updated for Android implementation. 2019-11-20 14:30:43 -05:00
openpgp-api.jar Start of Android implementation. 2019-11-20 11:52:19 -05:00
PgpConnect.jar Migrating to new Gio version (non-working version). 2020-08-31 17:03:07 -04:00
PgpConnect.java Migrating to new Gio version (non-working version). 2020-08-31 17:03:07 -04:00
README.md Documentation. 2019-11-26 13:31:21 -05:00

passgo

This repository includes Go code to interact with pass, the Unix password manager. Library code is provided to open a password store, list saved passwords, and decrypt specified passwords. The library provides a simple passphrase input function, or, if gpg-agent is running (on MacOS), it will connect automatically to request your GPG passphrase. On Android, passgo connects to OpenKeychain. MacOS and Android users can also ask passgo to copy a password directly to the clipboard.

store := passgo.Store{}
// directory defaults to ~/.password-store, or set it manually here:
// store.Dir = "/home/me/.pw-store"
err := passgo.GetStore(&store)
if err != nil { ... }
passlist := store.List()
for _,x := range passlist {
	if x.Pathname == "myPass" {
		p, err := store.Decrypt(x.Pathname)
		if err == nil {
			passgo.Clip(p) // put on the clipboard
		} else {
			log.Fatal("Cannot decrypt ", x.Pathname)
		}
	}
}
/// or just do:
p, err := store.Decrypt("myPass")
...

Also included is a simple GUI front-end using Gio that works on MacOS and Android. See cmd/passgo-gui.