finicity.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package rules
  2. import (
  3. "github.com/rs/zerolog/log"
  4. "github.com/zricethezav/gitleaks/v8/config"
  5. "github.com/zricethezav/gitleaks/v8/detect"
  6. )
  7. func FinicityClientSecret() *config.Rule {
  8. // define rule
  9. r := config.Rule{
  10. Description: "Finicity Client Secret",
  11. RuleID: "finicity-client-secret",
  12. Regex: generateSemiGenericRegex([]string{"finicity"}, alphaNumeric20),
  13. SecretGroup: 1,
  14. Keywords: []string{"finicity"},
  15. }
  16. // validate
  17. tps := []string{
  18. generateSampleSecret("finicity", sampleAlphaNumeric20Token),
  19. }
  20. d := detect.NewDetector(config.Config{
  21. Rules: []*config.Rule{&r},
  22. })
  23. for _, tp := range tps {
  24. if len(d.DetectString(tp)) != 1 {
  25. log.Fatal().Msg("Failed to validate finicity-client-secret")
  26. }
  27. }
  28. return &r
  29. }
  30. func FinicityAPIToken() *config.Rule {
  31. // define rule
  32. r := config.Rule{
  33. Description: "Finicity API token",
  34. RuleID: "finicity-api-token",
  35. Regex: generateSemiGenericRegex([]string{"finicity"}, hex32),
  36. SecretGroup: 1,
  37. Keywords: []string{"finicity"},
  38. }
  39. // validate
  40. tps := []string{
  41. generateSampleSecret("finicity", sampleHex32Token),
  42. }
  43. return validate(r, tps)
  44. }