From ce9958e42275b35bac267ee0bdc84d93fd8d486f Mon Sep 17 00:00:00 2001 From: "Greg T. Wallace" Date: Thu, 6 Jun 2024 22:51:13 -0400 Subject: [PATCH] create: always produce both p15 files --- pkg/app/cmd_create.go | 32 +++++++++++++------------------- pkg/app/config.go | 2 -- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/pkg/app/cmd_create.go b/pkg/app/cmd_create.go index de9512d..1a6c88a 100644 --- a/pkg/app/cmd_create.go +++ b/pkg/app/cmd_create.go @@ -48,6 +48,12 @@ func (app *app) cmdCreate(_ context.Context, args []string) error { } // write file(s) + err = os.WriteFile(keyFileName, keyFile, 0600) + if err != nil { + return fmt.Errorf("create: failed to write apc p15 key file (%s)", err) + } + app.stdLogger.Printf("create: apc p15 key file %s written to disk", keyFileName) + err = os.WriteFile(keyCertFileName, apcKeyCertFile, 0600) if err != nil { return fmt.Errorf("create: failed to write apc p15 key+cert file (%s)", err) @@ -57,6 +63,13 @@ func (app *app) cmdCreate(_ context.Context, args []string) error { // if debug, write additional debug files (b64 format to make copy/paste into asn1 decoder // easy to do e.g., https://lapo.it/asn1js) if app.config.debugLogging != nil && *app.config.debugLogging { + keyFileNameDebug := keyFileName + ".b64" + err = os.WriteFile(keyFileNameDebug, []byte(base64.StdEncoding.EncodeToString(keyFile)), 0600) + if err != nil { + return fmt.Errorf("create: failed to write apc p15 key file (%s)", err) + } + app.debugLogger.Printf("create: apc p15 key file %s written to disk", keyFileNameDebug) + keyCertFileNameDebug := keyCertFileName + ".noheader.b64" err = os.WriteFile(keyCertFileNameDebug, []byte(base64.StdEncoding.EncodeToString(apcKeyCertFile[apcHeaderLen:])), 0600) if err != nil { @@ -73,24 +86,5 @@ func (app *app) cmdCreate(_ context.Context, args []string) error { } - // make key p15 ? - if app.config.create.makeKeyP15 != nil && *app.config.create.makeKeyP15 { - err = os.WriteFile(keyFileName, keyFile, 0600) - if err != nil { - return fmt.Errorf("create: failed to write apc p15 key file (%s)", err) - } - app.stdLogger.Printf("create: apc p15 key file %s written to disk", keyFileName) - - // debug file ? - if app.config.debugLogging != nil && *app.config.debugLogging { - keyFileNameDebug := keyFileName + ".b64" - err = os.WriteFile(keyFileNameDebug, []byte(base64.StdEncoding.EncodeToString(keyFile)), 0600) - if err != nil { - return fmt.Errorf("create: failed to write apc p15 key file (%s)", err) - } - app.debugLogger.Printf("create: apc p15 key file %s written to disk", keyFileNameDebug) - } - } - return nil } diff --git a/pkg/app/config.go b/pkg/app/config.go index a3b18c1..e8ff1fc 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -29,7 +29,6 @@ type config struct { create struct { keyCertPemCfg outFilePath *string - makeKeyP15 *bool outKeyFilePath *string } install struct { @@ -74,7 +73,6 @@ func (app *app) getConfig(args []string) error { cfg.create.keyPem = createFlags.StringLong("keypem", "", "string of the rsa-1024 or rsa-2048 key in pem format") cfg.create.certPem = createFlags.StringLong("certpem", "", "string of the certificate in pem format") cfg.create.outFilePath = createFlags.StringLong("outfile", createDefaultOutFilePath, "path and filename to write the key+cert p15 file to") - cfg.create.makeKeyP15 = createFlags.BoolLong("keyp15", "create a second p15 file with just the private key") cfg.create.outKeyFilePath = createFlags.StringLong("outkeyfile", createDefaultOutKeyFilePath, "path and filename to write the key p15 file to") createCmd := &ff.Command{