<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gotp, branch v0.3.1</title>
<subtitle>CLI to manage Time-based OTP.</subtitle>
<id>http://git.kilabit.info/gotp/atom?h=v0.3.1</id>
<link rel='self' href='http://git.kilabit.info/gotp/atom?h=v0.3.1'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/'/>
<updated>2023-05-25T11:34:33Z</updated>
<entry>
<title>Release gotp v0.3.1 (2023-05-25)</title>
<updated>2023-05-25T11:34:33Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-25T11:34:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=479e33040d93e582aa10f19c299b2633f2270d24'/>
<id>urn:sha1:479e33040d93e582aa10f19c299b2633f2270d24</id>
<content type='text'>
===  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.
</content>
</entry>
<entry>
<title>all: load private key only when needed</title>
<updated>2023-05-19T15:31:56Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-19T15:31:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=a31b534b36eda669bab99819e4b45fa343ff38d9'/>
<id>urn:sha1:a31b534b36eda669bab99819e4b45fa343ff38d9</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Release gotp v0.3.0 (2023-05-17)</title>
<updated>2023-05-18T09:08:26Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-18T09:08:26Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=dded88bf1546f30185e2fc30c11e4f1322abd213'/>
<id>urn:sha1:dded88bf1546f30185e2fc30c11e4f1322abd213</id>
<content type='text'>
=== 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
</content>
</entry>
<entry>
<title>all: add command to remove the private key</title>
<updated>2023-05-15T17:20:40Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-15T17:20:40Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=de4158b930a2afcfa59947ae2cd7127943751805'/>
<id>urn:sha1:de4158b930a2afcfa59947ae2cd7127943751805</id>
<content type='text'>
The remove-private-key decrypt the issuer's value back using previous
private key and store it back to file as plain text.
</content>
</entry>
<entry>
<title>all: add command to set private key</title>
<updated>2023-05-15T17:06:39Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-15T17:06:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=6a9e476354d23da316a94d0d5a7f8b14a273910e'/>
<id>urn:sha1:6a9e476354d23da316a94d0d5a7f8b14a273910e</id>
<content type='text'>
The set-private-key command encrypt the issuer's value (hash:secret...)
in the file using private key.
The supported private key is RSA.
</content>
</entry>
<entry>
<title>all: check for zero file on config save</title>
<updated>2023-05-15T16:38:45Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-15T16:38:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=6fd1ef57498aad5b73808f2b2260ccfe76ae649c'/>
<id>urn:sha1:6fd1ef57498aad5b73808f2b2260ccfe76ae649c</id>
<content type='text'>
If the file is not set, do nothing.
</content>
</entry>
<entry>
<title>all: add method MarshalText to config</title>
<updated>2023-05-15T16:36:58Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-15T16:36:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=f002873db4dca0631960ae4e770b5747e365bae1'/>
<id>urn:sha1:f002873db4dca0631960ae4e770b5747e365bae1</id>
<content type='text'>
The MarshalText convert the config object back to INI format.
</content>
</entry>
<entry>
<title>all: group the key for testing into testdata/keys</title>
<updated>2023-05-15T16:34:15Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-15T16:34:15Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=bee390efcc5ab2c03738ee36e06a0bac108ad392'/>
<id>urn:sha1:bee390efcc5ab2c03738ee36e06a0bac108ad392</id>
<content type='text'>
</content>
</entry>
<entry>
<title>all: load the private key in loadConfig</title>
<updated>2023-05-15T16:23:41Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-15T16:23:41Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=bb1160d3f13514bebcb81e89c082198c5278b89e'/>
<id>urn:sha1:bb1160d3f13514bebcb81e89c082198c5278b89e</id>
<content type='text'>
This changes require the loadPrivateKey method detached from Cli and
become function.
</content>
</entry>
<entry>
<title>all: add function loadConfig</title>
<updated>2023-05-15T13:37:59Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2023-05-15T13:37:59Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gotp/commit/?id=f59e59c029a0332e7fd63e0cd5ea7fb30eb7d991'/>
<id>urn:sha1:f59e59c029a0332e7fd63e0cd5ea7fb30eb7d991</id>
<content type='text'>
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.
</content>
</entry>
</feed>
