create: add additional flag to signal creation of additional key.p15

This commit is contained in:
Greg T. Wallace 2024-06-04 18:59:36 -04:00
parent f0253ccaf2
commit b44b49cd19
2 changed files with 18 additions and 10 deletions

View file

@ -47,19 +47,13 @@ func (app *app) cmdCreate(_ context.Context, args []string) error {
keyFileName = *app.config.create.outKeyFilePath keyFileName = *app.config.create.outKeyFilePath
} }
// write files // write file(s)
err = os.WriteFile(keyCertFileName, apcKeyCertFile, 0600) err = os.WriteFile(keyCertFileName, apcKeyCertFile, 0600)
if err != nil { if err != nil {
return fmt.Errorf("create: failed to write apc p15 key+cert file (%s)", err) return fmt.Errorf("create: failed to write apc p15 key+cert file (%s)", err)
} }
app.stdLogger.Printf("create: apc p15 key+cert file %s written to disk", keyCertFileName) app.stdLogger.Printf("create: apc p15 key+cert file %s written to disk", keyCertFileName)
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)
// if debug, write additional debug files (b64 format to make copy/paste into asn1 decoder // if debug, write additional debug files (b64 format to make copy/paste into asn1 decoder
// easy to do e.g., https://lapo.it/asn1js) // easy to do e.g., https://lapo.it/asn1js)
if app.config.debugLogging != nil && *app.config.debugLogging { if app.config.debugLogging != nil && *app.config.debugLogging {
@ -77,13 +71,25 @@ func (app *app) cmdCreate(_ context.Context, args []string) error {
} }
app.debugLogger.Printf("create: apc p15 key+cert file header %s written to disk", keyCertFileNameHeaderDebug) app.debugLogger.Printf("create: apc p15 key+cert file header %s written to disk", keyCertFileNameHeaderDebug)
keyFileNameDebug := keyFileName + ".b64" }
err = os.WriteFile(keyFileNameDebug, []byte(base64.StdEncoding.EncodeToString(keyFile)), 0600)
// make key p15 ?
if app.config.create.makeKeyP15 != nil && *app.config.create.makeKeyP15 {
err = os.WriteFile(keyFileName, keyFile, 0600)
if err != nil { if err != nil {
return fmt.Errorf("create: failed to write apc p15 key file (%s)", err) 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) 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 return nil

View file

@ -29,6 +29,7 @@ type config struct {
create struct { create struct {
keyCertPemCfg keyCertPemCfg
outFilePath *string outFilePath *string
makeKeyP15 *bool
outKeyFilePath *string outKeyFilePath *string
} }
install struct { install struct {
@ -73,6 +74,7 @@ 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.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.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.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") cfg.create.outKeyFilePath = createFlags.StringLong("outkeyfile", createDefaultOutKeyFilePath, "path and filename to write the key p15 file to")
createCmd := &ff.Command{ createCmd := &ff.Command{