MCPcopy
hub / github.com/smallstep/cli / updateSCEPDetails

Function updateSCEPDetails

command/ca/provisioner/update.go:981–1045  ·  view source on GitHub ↗
(ctx *cli.Context, p *linkedca.Provisioner)

Source from the content-addressed store, hash-verified

979}
980
981func updateSCEPDetails(ctx *cli.Context, p *linkedca.Provisioner) error {
982 data, ok := p.Details.GetData().(*linkedca.ProvisionerDetails_SCEP)
983 if !ok {
984 return errors.New("error casting details to SCEP type")
985 }
986 details := data.SCEP
987
988 if ctx.IsSet("force-cn") {
989 details.ForceCn = ctx.Bool("force-cn")
990 }
991 if ctx.IsSet("challenge") {
992 details.Challenge = ctx.String("challenge")
993 }
994 if ctx.IsSet("capabilities") {
995 details.Capabilities = ctx.StringSlice("capabilities")
996 }
997 if ctx.IsSet("min-public-key-length") {
998 details.MinimumPublicKeyLength = cast.Int32(ctx.Int("min-public-key-length"))
999 }
1000 if ctx.IsSet("include-root") {
1001 details.IncludeRoot = ctx.Bool("include-root")
1002 }
1003 if ctx.IsSet("exclude-intermediate") {
1004 details.ExcludeIntermediate = ctx.Bool("exclude-intermediate")
1005 }
1006 if ctx.IsSet("encryption-algorithm-identifier") {
1007 details.EncryptionAlgorithmIdentifier = cast.Int32(ctx.Int("encryption-algorithm-identifier"))
1008 }
1009
1010 decrypter := details.GetDecrypter()
1011 if decrypter == nil {
1012 decrypter = &linkedca.SCEPDecrypter{}
1013 }
1014 if ctx.IsSet("scep-decrypter-certificate-file") {
1015 decrypterCertificateFile := ctx.String("scep-decrypter-certificate-file")
1016 data, err := parseSCEPDecrypterCertificate(decrypterCertificateFile)
1017 if err != nil {
1018 return fmt.Errorf("failed parsing certificate from %q: %w", decrypterCertificateFile, err)
1019 }
1020 decrypter.Certificate = data
1021 details.Decrypter = decrypter
1022 }
1023 if ctx.IsSet("scep-decrypter-key-uri") {
1024 decrypter.KeyUri = ctx.String("scep-decrypter-key-uri")
1025 details.Decrypter = decrypter
1026 }
1027 if decrypterKeyFile := ctx.String("scep-decrypter-key-file"); decrypterKeyFile != "" {
1028 data, err := readSCEPDecrypterKey(decrypterKeyFile)
1029 if err != nil {
1030 return fmt.Errorf("failed reading decrypter key from %q: %w", decrypterKeyFile, err)
1031 }
1032 decrypter.Key = data
1033 details.Decrypter = decrypter
1034 }
1035 if decrypterKeyPasswordFile := ctx.String("scep-decrypter-key-password-file"); decrypterKeyPasswordFile != "" {
1036 decrypterKeyPassword, err := utils.ReadPasswordFromFile(decrypterKeyPasswordFile)
1037 if err != nil {
1038 return fmt.Errorf("failed reading decrypter key password from %q: %w", decrypterKeyPasswordFile, err)

Callers 1

updateActionFunction · 0.85

Calls 5

Int32Function · 0.92
ReadPasswordFromFileFunction · 0.92
readSCEPDecrypterKeyFunction · 0.85
StringMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…