Files
wehub-resource-sync 48b3ccf279
gitleaks / gitleaks (push) Has been skipped
Test / test (ubuntu-latest) (push) Failing after 0s
Test / test (windows-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:12:29 +08:00

62 lines
1.9 KiB
Go

package rules
import (
"github.com/zricethezav/gitleaks/v8/cmd/generate/config/utils"
"github.com/zricethezav/gitleaks/v8/config"
"github.com/zricethezav/gitleaks/v8/regexp"
)
func PrivateKey() *config.Rule {
// define rule
r := config.Rule{
RuleID: "private-key",
Description: "Identified a Private Key, which may compromise cryptographic security and sensitive data encryption.",
Regex: regexp.MustCompile(`(?i)-----BEGIN[ A-Z0-9_-]{0,100}PRIVATE KEY(?: BLOCK)?-----[\s\S-]{64,}?KEY(?: BLOCK)?-----`),
Keywords: []string{"-----BEGIN"},
}
// validate
tps := []string{`-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDAC4AWkdwKYSd8
Ks14IReLcYgADhoXk56ZzXI=
-----END PRIVATE KEY-----`,
`-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAn6/O8li+SX4m98LLYt/PKSzEmQ++ZBD7Loh9P13f4yQ92EF3
yxR5MsXFu9PRsrYQA7/4UTPHiC4y2sAVCBg4C2yyBpUEtMQjyCESi6Y=
-----END RSA PRIVATE KEY-----
`,
`-----BEGIN PGP PRIVATE KEY BLOCK-----
lQWGBGSVV4YBDAClvRnxezIRy2Yv7SFlzC0iFiRF/O/jePSw+XYhvcrTaqSYTGic
=8xQN
-----END PGP PRIVATE KEY BLOCK-----`,
} // gitleaks:allow
fps := []string{
`-----BEGIN PRIVATE KEY-----
anything
-----END PRIVATE KEY-----`,
`-----BEGIN OPENSSH PRIVATE KEY----------END OPENSSH PRIVATE KEY-----`,
}
return utils.Validate(r, tps, fps)
}
func PrivateKeyPKCS12File() *config.Rule {
// https://en.wikipedia.org/wiki/PKCS_12
r := config.Rule{
RuleID: "pkcs12-file",
Description: "Found a PKCS #12 file, which commonly contain bundled private keys.",
Path: regexp.MustCompile(`(?i)(?:^|\/)[^\/]+\.p(?:12|fx)$`),
}
// validate
tps := map[string]string{
"security/es_certificates/opensearch/es_kibana_client.p12": "",
"cagw_key.P12": "",
"ToDo/ToDo.UWP/ToDo.UWP_TemporaryKey.pfx": "",
}
fps := map[string]string{
"doc/typenum/type.P126.html": "",
"scripts/keeneland/syntest.p1200.sh": "",
}
return utils.ValidateWithPaths(r, tps, fps)
}