From bb1160d3f13514bebcb81e89c082198c5278b89e Mon Sep 17 00:00:00 2001 From: Shulhan Date: Mon, 15 May 2023 23:23:41 +0700 Subject: all: load the private key in loadConfig This changes require the loadPrivateKey method detached from Cli and become function. --- cli.go | 18 +++++++----------- config.go | 7 +++++++ config_test.go | 2 ++ 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) } } -- cgit v1.3