|
| 1 | +package log |
| 2 | + |
| 3 | +import ( |
| 4 | + "testing" |
| 5 | + |
| 6 | + "github.com/stretchr/testify/assert" |
| 7 | +) |
| 8 | + |
| 9 | +func TestStripSecrets(t *testing.T) { |
| 10 | + testCases := []struct { |
| 11 | + description string |
| 12 | + input []string |
| 13 | + expected []string |
| 14 | + }{ |
| 15 | + { |
| 16 | + description: "Log that does contain certs should have them stripped", |
| 17 | + input: []string{ |
| 18 | + "Some mundane log lines", |
| 19 | + "IP is foo.bar", |
| 20 | + `Secret here: printf '%s' '-----BEGIN CERTIFICATE----- |
| 21 | +MIIC4DCCAcigAwIBAgIRAMMHbb4WFRVYsCOIrfM3dqkwDQYJKoZIhvcNAQELBQAw |
| 22 | +GTEXMBUGA1UEChMObmF0aGFubGVjbGFpcmUwHhcNMTUxMDEwMDE1MDAwWhcNMTgw |
| 23 | +OTI0MDE1MDAwWjAZMRcwFQYDVQQKEw5uYXRoYW5sZWNsYWlyZTCCASIwDQYJKoZI |
| 24 | +hvcNAQEBBQADggEPADCCAQoCggEBANLMyaAZPThE6lXtXYfUMZeF0pEfO4BQ7Rv8 |
| 25 | +Q9/aIKwm8SlKNm+g+6+RoexsiaPXmAkqk04kg+f9WRgtUKC3nhaiUwTqx2HtxowY |
| 26 | +Kp7VVW9QyzwCP1r04WTNTdICzhwM5GfaCMKLmibVUfh9GqIYg4Z6eFly7t0PaN1P |
| 27 | +uaLClow1e4sWgAgkpIx7ko9ZtW+73knAnp9PPoH4KPBLS+sIPNGh62WsDlvQrOnq |
| 28 | +KDiBPIAAMxu2UefIPeGe6xxFuCG89RoJYYsB627IaR8R8iGJMwjJsiAiObGu6z8M |
| 29 | +lcWxT4dC+cEIDRu+XQmavJlAydBeHY6/gtJXzsyRExHTyDwi8xkCAwEAAaMjMCEw |
| 30 | +DgYDVR0PAQH/BAQDAgKsMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD |
| 31 | +ggEBAA5CBXPgjvxfY5bR+f6YfcDcKBWxOQ5zN+OH6jWpVzJMEUWp/ZvTQ1GcV1CT |
| 32 | +J4HDMRUOL6lQigZDKR6OJ0g/pD4cDGEQlCuPDXx0O8eenxj9TQ+X+qdtxQNkgjId |
| 33 | +QWj3k3JDHCh4BQ7h1ZJIg4SnGCUsrQQ+M8TS4Z0YZ/bZ6ZTktJgQgWMn9Uum1GN9 |
| 34 | +hXJ/fa/E9OJuRxTXou7J0WwrV9aX9sEM9syOANR88PcA1fSE7+wNSdj5ZCfY6mQn |
| 35 | +II9e8NZEf5ktPXCNi0LKI6R1berejwQI3KKHEFbdZ8SKn93HgDh/Ip/dFctj+zBt |
| 36 | +CAlTWS3abehlCERn6Ze9IfZBtpI= |
| 37 | +-----END CERTIFICATE-----' | sudo tee /etc/docker/ca.pem`, |
| 38 | + }, |
| 39 | + expected: []string{ |
| 40 | + "Some mundane log lines", |
| 41 | + "IP is foo.bar", |
| 42 | + `Secret here: printf '%s' '<REDACTED>' | sudo tee /etc/docker/ca.pem`, |
| 43 | + }, |
| 44 | + }, |
| 45 | + { |
| 46 | + description: "Log that does contain private keys should have them stripped", |
| 47 | + input: []string{ |
| 48 | + "Some mundane log lines", |
| 49 | + "IP is foo.bar", |
| 50 | + `Secret here: printf '%s' '-----BEGIN RSA PRIVATE KEY----- |
| 51 | +MIIC4DCCAcigAwIBAgIRAMMHbb4WFRVYsCOIrfM3dqkwDQYJKoZIhvcNAQELBQAw |
| 52 | +GTEXMBUGA1UEChMObmF0aGFubGVjbGFpcmUwHhcNMTUxMDEwMDE1MDAwWhcNMTgw |
| 53 | +OTI0MDE1MDAwWjAZMRcwFQYDVQQKEw5uYXRoYW5sZWNsYWlyZTCCASIwDQYJKoZI |
| 54 | +hvcNAQEBBQADggEPADCCAQoCggEBANLMyaAZPThE6lXtXYfUMZeF0pEfO4BQ7Rv8 |
| 55 | +Q9/aIKwm8SlKNm+g+6+RoexsiaPXmAkqk04kg+f9WRgtUKC3nhaiUwTqx2HtxowY |
| 56 | +Kp7VVW9QyzwCP1r04WTNTdICzhwM5GfaCMKLmibVUfh9GqIYg4Z6eFly7t0PaN1P |
| 57 | +uaLClow1e4sWgAgkpIx7ko9ZtW+73knAnp9PPoH4KPBLS+sIPNGh62WsDlvQrOnq |
| 58 | +KDiBPIAAMxu2UefIPeGe6xxFuCG89RoJYYsB627IaR8R8iGJMwjJsiAiObGu6z8M |
| 59 | +lcWxT4dC+cEIDRu+XQmavJlAydBeHY6/gtJXzsyRExHTyDwi8xkCAwEAAaMjMCEw |
| 60 | +DgYDVR0PAQH/BAQDAgKsMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD |
| 61 | +ggEBAA5CBXPgjvxfY5bR+f6YfcDcKBWxOQ5zN+OH6jWpVzJMEUWp/ZvTQ1GcV1CT |
| 62 | +J4HDMRUOL6lQigZDKR6OJ0g/pD4cDGEQlCuPDXx0O8eenxj9TQ+X+qdtxQNkgjId |
| 63 | +QWj3k3JDHCh4BQ7h1ZJIg4SnGCUsrQQ+M8TS4Z0YZ/bZ6ZTktJgQgWMn9Uum1GN9 |
| 64 | +hXJ/fa/E9OJuRxTXou7J0WwrV9aX9sEM9syOANR88PcA1fSE7+wNSdj5ZCfY6mQn |
| 65 | +II9e8NZEf5ktPXCNi0LKI6R1berejwQI3KKHEFbdZ8SKn93HgDh/Ip/dFctj+zBt |
| 66 | +CAlTWS3abehlCERn6Ze9IfZBtpI= |
| 67 | +-----END RSA PRIVATE KEY-----' | sudo tee /etc/docker/server-key.pem`, |
| 68 | + }, |
| 69 | + expected: []string{ |
| 70 | + "Some mundane log lines", |
| 71 | + "IP is foo.bar", |
| 72 | + `Secret here: printf '%s' '<REDACTED>' | sudo tee /etc/docker/server-key.pem`, |
| 73 | + }, |
| 74 | + }, |
| 75 | + { |
| 76 | + description: "Log that does not contain secrets should not change", |
| 77 | + input: []string{ |
| 78 | + "Some mundane log lines", |
| 79 | + "IP is foo.bar", |
| 80 | + }, |
| 81 | + expected: []string{ |
| 82 | + "Some mundane log lines", |
| 83 | + "IP is foo.bar", |
| 84 | + }, |
| 85 | + }, |
| 86 | + } |
| 87 | + |
| 88 | + for _, tc := range testCases { |
| 89 | + assert.Equal(t, tc.expected, stripSecrets(tc.input)) |
| 90 | + } |
| 91 | +} |
0 commit comments