summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2023-05-15 23:23:41 +0700
committerShulhan <ms@kilabit.info>2023-05-15 23:23:41 +0700
commitbb1160d3f13514bebcb81e89c082198c5278b89e (patch)
treec46307c2c252c5dac2b8523f4be4cb019c3d550d
parentf59e59c029a0332e7fd63e0cd5ea7fb30eb7d991 (diff)
downloadgotp-bb1160d3f13514bebcb81e89c082198c5278b89e.tar.xz
all: load the private key in loadConfig
This changes require the loadPrivateKey method detached from Cli and become function.
-rw-r--r--cli.go18
-rw-r--r--config.go7
-rw-r--r--config_test.go2
3 files changed, 16 insertions, 11 deletions
diff --git a/cli.go b/cli.go
index f1efc85..a381b85 100644
--- a/cli.go
+++ b/cli.go
@@ -53,14 +53,12 @@ func NewCli() (cli *Cli, err error) {
if err != nil {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
- }
- if len(cli.cfg.PrivateKey) > 0 {
- cli.cfg.privateKey, err = cli.loadPrivateKey(cli.cfg.PrivateKey, nil)
- if err != nil {
- return nil, fmt.Errorf(`%s: %w`, logp, err)
+ if len(cli.cfg.PrivateKey) > 0 {
+ cli.cfg.privateKey, err = loadPrivateKey(cli.cfg.PrivateKey, nil)
+ if err != nil {
+ return nil, fmt.Errorf(`%s: %w`, logp, err)
+ }
}
- }
- if cli.cfg.isNotExist {
err = cli.cfg.save()
if err != nil {
return nil, fmt.Errorf(`%s: %w`, logp, err)
@@ -80,9 +78,7 @@ func (cli *Cli) inputPrivateKey(stdin *os.File) (privateKeyFile string, err erro
}
// loadPrivateKey parse the RSA private key with optional passphrase.
-func (cli *Cli) loadPrivateKey(privateKeyFile string, pass []byte) (
- rsaPrivateKey *rsa.PrivateKey, err error,
-) {
+func loadPrivateKey(privateKeyFile string, pass []byte) (rsaPrivateKey *rsa.PrivateKey, err error) {
if len(privateKeyFile) == 0 {
return nil, nil
}
@@ -122,7 +118,7 @@ func (cli *Cli) loadPrivateKey(privateKeyFile string, pass []byte) (
return nil, fmt.Errorf(`%s %q: %w`, logp, privateKeyFile, err)
}
- return cli.loadPrivateKey(privateKeyFile, pass)
+ return loadPrivateKey(privateKeyFile, pass)
}
rsaPrivateKey, ok = privateKey.(*rsa.PrivateKey)
if !ok {
diff --git a/config.go b/config.go
index 813c222..699d886 100644
--- a/config.go
+++ b/config.go
@@ -77,6 +77,13 @@ func loadConfig(content []byte) (cfg *config, err error) {
return nil, fmt.Errorf(`%s: %w`, logp, err)
}
+ if len(cfg.PrivateKey) > 0 {
+ cfg.privateKey, err = loadPrivateKey(cfg.PrivateKey, nil)
+ if err != nil {
+ return nil, fmt.Errorf(`%s: %w`, logp, err)
+ }
+ }
+
return cfg, nil
}
diff --git a/config_test.go b/config_test.go
index c0b1993..e27172d 100644
--- a/config_test.go
+++ b/config_test.go
@@ -52,6 +52,8 @@ func TestNewConfig(t *testing.T) {
continue
}
+ gotConfig.privateKey = nil
+
test.Assert(t, `Issuer`, c.expConfig, gotConfig)
}
}