(ctx *cli.Context, p *linkedca.Provisioner)
| 979 | } |
| 980 | |
| 981 | func 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) |
no test coverage detected
searching dependent graphs…