diff options
| author | Shulhan <ms@kilabit.info> | 2023-05-16 00:06:39 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2023-05-16 00:06:39 +0700 |
| commit | 6a9e476354d23da316a94d0d5a7f8b14a273910e (patch) | |
| tree | 2b3cd9df782fa41edde4b3282b7375825684be40 /cli_test.go | |
| parent | 6fd1ef57498aad5b73808f2b2260ccfe76ae649c (diff) | |
| download | gotp-6a9e476354d23da316a94d0d5a7f8b14a273910e.tar.xz | |
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.
Diffstat (limited to 'cli_test.go')
| -rw-r--r-- | cli_test.go | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/cli_test.go b/cli_test.go index c91d11e..a900ede 100644 --- a/cli_test.go +++ b/cli_test.go @@ -4,6 +4,7 @@ package gotp import ( + "bytes" "fmt" "os" "testing" @@ -137,3 +138,74 @@ private_key = test.Assert(t, cli.cfg.file, c.expConfig, string(got)) } } + +func TestCli_SetPrivateKey(t *testing.T) { + var ( + tdata *test.Data + err error + ) + + tdata, err = test.LoadData(`testdata/cli_SetPrivateKey_test.txt`) + if err != nil { + t.Fatal(err) + } + + var ( + cli = &Cli{} + rawConfig []byte + cfg *config + ) + + rawConfig = tdata.Input[`config.ini.before`] + + cfg, err = loadConfig(rawConfig) + if err != nil { + t.Fatal(err) + } + cli.cfg = cfg + + // Set the private key. + + err = cli.SetPrivateKey(tdata.Flag[`private_key_openssl`]) + if err != nil { + t.Fatal(err) + } + + // Change the private key. + + err = cli.SetPrivateKey(tdata.Flag[`private_key_openssl`]) + if err != nil { + t.Fatal(err) + } + + rawConfig, err = cli.cfg.MarshalText() + if err != nil { + t.Fatal(err) + } + + // Load the encrypted raw config and compare the issuer. + + cfg, err = loadConfig(rawConfig) + if err != nil { + t.Fatal(err) + } + cli.cfg = cfg + + var ( + gotLabels []string = cli.List() + label string + issuer *Issuer + got bytes.Buffer + ) + + for _, label = range gotLabels { + issuer, err = cli.cfg.get(label) + if err != nil { + t.Fatal(err) + } + + fmt.Fprintf(&got, "%s = %s\n", label, issuer.String()) + } + + test.Assert(t, `get all labels`, string(tdata.Output[`issuers`]), got.String()) +} |
