Releases: Buct0r/PassPort
Releases · Buct0r/PassPort
v0.3.0
Features
- Introduced search bar for GUI application. You can now search for a desired password in your list.
- Now you can press the Enter key on you keyboard instead of pressing the buttons with the mouse when typing in text entry widgets, like the search bar or the password entry for authentication at the start of the GUI application
Bug fixes
CLI: whitespace characters errors on input
- Changed input method for CLI to prevent whitespaces errors when typing the name of a service
CLI: Menu infinite loop on non-numeric input
- Previously: Entering "abc" instead of a number caused infinite loop because bad input was never consumed from stdin
- Fixed:
fmt.Scanln()error is now checked, and bad input is explicitly discarded withfmt.Scanln(&discard)before continuing
CLI: setupMasterPassword memory leak on password mismatch
- Previously:
password = nilandconfirmation = nilonly changed the slice pointer, not the underlying byte array - Fixed: Now uses
zeroBytes(password)andzeroBytes(confirmation)to explicitly clear all bytes before returning error
CLI: changeMasterPassword silent data loss on decryptData failure
- Previously: Error from
decryptData()was NOT checked immediately, could print "success" on actual failure - Fixed: Error is checked IMMEDIATELY after
decryptData()call, returns error to user instead of silently proceeding - Also fixed:
json.Unmarshalerror at lines 505-509 is properly checked
GUI: Search bar duplicate container.Add calls
- Previously:
container.NewBorder()already contained elements, thenAdd()was called again for the same elements - Fixed: Extra
searchContainer.Add(searchBar)andsearchContainer.Add(searchButton)calls removed
GUI: Error messages printed to console instead of shown in dialogs
- Previously:
fmt.Println("Error:", err)was invisible to GUI users - Fixed: All error paths now use
dialog.ShowError(err, w)to display errors to users - Affected functions:
deletePasswordGUI,editPasswordGUI,addPasswordGUI
GUI: Session timeout not re-checked inside button callbacks
- Previously: Timeout checked only at function entry, not inside button callbacks
- Fixed: All 3 sensitive button callbacks now re-check session timeout before performing the actual file write
- Fixed locations:
deletePasswordGUIconfirm callback,editPasswordGUIsave callback,addPasswordGUIsave callback
CLI: Improved stdin input handling
- Added
readLine()helper usingbufio.Reader.ReadString('\n') - Replaced 7
bufio.NewScanner(os.Stdin)calls with sharedbufio.ReaderinsavePassword()andmodifyPassword() - Added
reader.Discard(reader.Buffered())beforeReadPassword()calls
GUI: Session timeout refresh across all actions
- Changed
startparameter fromtime.Timeto*time.TimeindeletePasswordGUI,editPasswordGUI,addPasswordGUI,editMasterPasswordGUI - Updated
start = time.Now()to*start = time.Now()andtime.Since(start)totime.Since(*start) - External callers pass
&startinstead ofstart
Other
- Increased time to reveal password for CLI application
- Added "-c" parameter for CLI mode
Changelog
v0.2.0
Bug Fixes
Security
- Fixed session expiry bypass — all 4 guarded functions (
deletePasswordGUI,editPasswordGUI,addPasswordGUI,editMasterPasswordGUI) now properly return after session timeout instead of continuing the operation - Fixed invisible error dialogs —
setupMasterPasswordGUIno longer passesnilparent window todialog.ShowInformation - Fixed password byte cleanup —
authenticate()in GUI now zeroes the password byte slice after use viaVerifyPassword+nilassignment - Fixed CLI password leak on mismatch — passwords not matching now zero the
passwordslice before returning (pending fix incli/functions.go) - Fixed dead nil checks —
bytes.TrimSpaceresults no longer have unreachable== nilconditions
UX & Correctness
- Fixed password length check — changed
fortoifand now checks trimmed length (len(passwordN)) instead of raw input (len(password)) - Fixed
editMasterPasswordGUIClose button — no longer callsonComplete(false), which previously showed a misleading "Failed to update master password" error - Fixed unchecked
os.WriteFileerrors — both occurrences ineditMasterPasswordGUInow properly handle write failures - Fixed theme config path —
saveConfignow creates the config file path when it doesn't exist instead of silently failing
CLI
- Fixed discarded errors —
deletePasswordandmodifyPasswordin CLI now check the error fromAuthenticateUser()instead of discarding it - Fixed authentication retry —
modifyPasswordnow checksAuthenticateUsererrors during retry loop
Build & Cross-Platform
- Fixed version inconsistency — both CLI and GUI now report
v0.1.2 - Fixed dead code — removed
exec.Command("")fromsrc/main.go - Fixed binary name case — all binary names changed to lowercase (
passport/passport-cli) for consistency on case-sensitive filesystems- Updated:
.goreleaser.yaml,.goreleaser-macos.yaml,AGENTS.md,README.md, CI workflows, Homebrew formula
- Updated:
- Fixed Homebrew cask — replaced broken
passport-guicask (referenced non-existentPassPort.app) with two formulae:passport(combined GUI + CLI viaresourcemechanism)passport-cli(CLI-only, no longer renames topassport)- Updated:
.github/workflows/homebrew-publish.yml
Changelog
v0.1.1
Important !!!
I highly recommend to manually uninstall the old version of the application and then install the new one to avoid any PATH variable conflicts on windows.
Don't worry, you won't loose any of your saved passwords and you will not need to update your master password