1
0
mirror of https://github.com/smallstep/cli.git synced 2026-10-29 00:17:23 +03:00
Files
step-ca-cli/command/command.go
2022-05-20 01:32:07 +02:00

39 lines
1.2 KiB
Go

package command
import (
"strings"
"github.com/pkg/errors"
"github.com/smallstep/cli/crypto/fingerprint"
"github.com/urfave/cli"
)
// FingerprintFormatFlag returns a flag for configuring the fingerprint format.
func FingerprintFormatFlag(defaultFmt string) cli.StringFlag {
return cli.StringFlag{
Name: "format",
Usage: `The <format> of the fingerprint, it must be "hex", "base64", "base64-url", "base64-raw", "base64-url-raw" or "emoji".`,
Value: defaultFmt,
}
}
// GetFingerprintEncoding gets the fingerprint encoding from the format flag.
func GetFingerprintEncoding(format string) (fingerprint.Encoding, error) {
switch strings.ToLower(strings.TrimSpace(format)) {
case "hex", "":
return fingerprint.HexFingerprint, nil
case "base64":
return fingerprint.Base64StdFingerprint, nil
case "base64url", "base64-url":
return fingerprint.Base64URLFingerprint, nil
case "base64urlraw", "base64url-raw", "base64-url-raw":
return fingerprint.Base64RawURLFingerprint, nil
case "base64raw", "base64-raw":
return fingerprint.Base64RawStdFingerprint, nil
case "emoji", "emojisum":
return fingerprint.EmojiFingerprint, nil
default:
return 0, errors.Errorf("error parsing fingerprint format: '%s' is not a valid fingerprint format", format)
}
}