aboutsummaryrefslogtreecommitdiff
path: root/gotp.go
AgeCommit message (Collapse)Author
2025-12-27Release gotp v0.6.2 (2025-12-27)HEADv0.6.2maindevShulhan
This is the last release for year 2025. [CHORE] _doc: merge index into README. This is so we can serve the _doc/ directory under https://kilabit.info/project/gotp/ . [CHORE] Update minimum Go version to 1.24.0 and update all dependencies. Happy holidays!
2025-02-03Release gotp v0.6.1 (2025-02-03)v0.6.1Shulhan
This releases mostly contains chores that update the dependencies and tooling. [CHORE] We have replace all linters from third party and external program to use internal command and "go vet" only. This should simplify setting up development. [CHORE] The CHANGELOG has been moved to the root of repository. This is to allow people to see the CHANGELOG directly without going to subdirectory first. [CHORE] The "gotp version" now set from output of "git describe" and set using "-ldflags" during build option. The output also changes from "go v<SEMVER>" to "go version <SEMVER>".
2024-06-22Release gotp v0.6.0 (2024-06-22)v0.6.0Shulhan
=== New features all: implement command "export":: The "export" command export all issuers to file or standard output, $ gotp export <FORMAT> [FILE] List of known supported FORMAT is: uri. If FILE is not defined it will print to standard output. The list of exported issuers are printed in order of its label. === Bug fix Fix "gen" command due to lower case secret:: Sometimes, provider provide base32 of secret in lowercase. But, to decode it, all of the characters must be in upper case otherwise it will be failed.
2024-06-22all: implement command "export"Shulhan
The "export" command export all issuers to file or standard output, $ gotp export <FORMAT> [FILE] List of known supported FORMAT is: uri. If FILE is not defined it will print to standard output. The list of exported issuers are printed in order of its label.
2024-02-08Release gotp v0.5.0 (2024-02-08)v0.5.0Shulhan
=== Breaking changes * all: make the path to private key static Instead of prompting user, make the private key static, located at "$XDG_CONFIG_DIR/gotp/gotp.key". If the key exist, the issuer will be encrypted. === Enhancements * all: ask for passphrase when removing or renaming label Even though "rename" command does not read the encrypted secret, as long as the private key is in use, it should ask for passphrase. The remove operation allow only the one that know the private key can modify the issuer. * _sys: fix the bash completion installation directory In POSIX system, the correct installation for bash completion script should be /usr/share/bash-completion not under /etc directory.
2024-01-30all: use [lib/crypto.LoadPrivateKeyInteractive]Shulhan
The lib/crypto.LoadPrivateKeyInteractive provides a simple way to read passphrase from stdin that also support SSH_ASKPASS. While at it, add test for Cli with passphrase.
2024-01-28all: make the path to private key staticShulhan
Instead of prompting user, make the private key static, located at "$XDG_CONFIG_DIR/gotp/gotp.key". Implements: https://todo.sr.ht/~shulhan/gotp/1
2023-11-11Release gotp v0.4.0 (2023-11-11)v0.4.0Shulhan
=== New features * all: implement command "get" The "get" command get and print the issuer by its LABEL. This will print the issuer secret, unencrypted. === Enhancements * all: unfold private key path before reading By unfolding, user can set the path to private key using "~" that points to their home. This make the key can works across home directory, in case user have multiple homes (Linux and macOS have different home path and maybe user name, but both can use "~" as substitution for $HOME) * Makefile: add task to install and uninstall gotp in macOS
2023-10-06all: pass the configuration directory parameter to NewCliShulhan
Previously, the configuration directory initialized inside NewCli. This changes we make the NewCli accept the config directory so we can changes it during testing.
2023-10-06all: add task linter and fix all warningsShulhan
We use revive [1], fieldalignment [2], and shadow [3] as linters. [1] https://github.com/mgechev/revive [2] https://pkg.go.dev/golang.org/x/tools@v0.13.0/go/analysis/passes/fieldalignment/cmd/fieldalignment [3] https://pkg.go.dev/golang.org/x/tools@v0.13.0/go/analysis/passes/shadow/cmd/shadow
2023-05-25Release gotp v0.3.1 (2023-05-25)v0.3.1Shulhan
=== Bug fix * all: load private key only when needed In case the configuration use private key with passphrase, the bash completion will hang due to the command ask for passphrase. This changes fix this issue by loading private key only when doing add, generate, import, or remote-private-key.
2023-05-18Release gotp v0.3.0 (2023-05-17)v0.3.0Shulhan
=== New features * all: add command to remove the private key * all: add command to set private key === Chores * all: update Go version to 1.19 and all dependencies
2023-05-15all: remove setting Version in Makefile using ldflagsShulhan
Use the constant Version instead, no need to automate this. While at it, fix the test coverage HTML output file name.
2023-02-13Release gotp v0.2.3 (2023-02-12)v0.2.3Shulhan
=== Enhancements * all: add bash completion script === Chores * all: move the installation steps in AUR to Makefile * make: change the build and install directory The build task now create binary under _sys/usr/bin/, while the install task install the binary based on $DESTDIR environment variable, not $GOBIN.
2022-09-06Release gotp v0.2.2 (2022-09-06)v0.2.2Shulhan
=== Bug fix * all: fix the go:embed reference to symbolic link === Chores * all: add task to serve and preview the documentation at _doc * all: group all documents into directory _doc
2022-08-07Release gotp v0.2.1 (2022-08-07)v0.2.1Shulhan
=== Bug fixes * all: fix base32 decoding on secret === Chores * _AUR: add package build for Arch Linux * go.mod: set minimum Go version to 1.18 and update all modules
2022-08-07cmd/gotp: add subcommand "version"Shulhan
The "version" command print the module version based on the latest tag, with additional commit number and hash.
2022-08-07all: clean up codeShulhan
Changes, * Replace variable declaration ":=" using explicit one * Use raw string literal whenever possible * Realign struct Config from 56 to 40 bytes (-16 bytes) * Realign struct Issuer from 88 to 72 bytes (-16 bytes)
2022-03-14all: re-licensing gotp under GPL-3.0 or laterShulhan
See https://kilabit.info/journal/2022/gpl/ for more information.
2021-10-27gotp: command line interface for Time-based One Time Password (TOTP)Shulhan
The gotp currently has the following features, * add: add new TOTP issuer with their label and secret * gen: generate password * import: import TOTP from other provider, currently support Aegis * list: print all registered TOTP configuration by labels * remove: delete a TOTP configuration from file by label * rename: changes the TOTP configuration by its label