~shulhan/gotp

Release gotp v0.4.0 (2023-11-11)

=== 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
go.mod: update all dependencies
Makefile: add task to install and uninstall gotp in macOS
all: convert the issuer's label to lowercase in NewIssuer
all: implement command "get"

The "get" command get and print the issuer by its LABEL.
This will print the issuer secret, unencrypted.
all: pass the configuration directory parameter to NewCli

Previously, the configuration directory initialized inside NewCli.
This changes we make the NewCli accept the config directory so we can
changes it during testing.
all: replace encrypt and decryption functions from "lib/crypto"

The "lib/crypto" DecryptAoep and EncryptAoep support large message.
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)
Release gotp v0.3.1 (2023-05-25)

===  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.
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.
Release gotp v0.3.0 (2023-05-17)

=== 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
all: add command to remove the private key

The remove-private-key decrypt the issuer's value back using previous
private key and store it back to file as plain text.
all: add command to set private key

The set-private-key command encrypt the issuer's value (hash:secret...)
in the file using private key.
The supported private key is RSA.
all: check for zero file on config save

If the file is not set, do nothing.
all: add method MarshalText to config

The MarshalText convert the config object back to INI format.
all: group the key for testing into testdata/keys
all: load the private key in loadConfig

This changes require the loadPrivateKey method detached from Cli and
become function.
all: add function loadConfig

The loadConfig load the configuration from raw bytes.
This replace part of newConfig with loadConfig to minimize duplicate.

The idea of loadConfig is to simplify testing later.
all: remove setting Version in Makefile using ldflags

Use the constant Version instead, no need to automate this.

While at it, fix the test coverage HTML output file name.
Next