@@ -22,30 +22,74 @@ class TestIbmCosHmacDetector(object):
22
22
@pytest .mark .parametrize (
23
23
'payload, should_flag' ,
24
24
[
25
- ('"secret_access_key": "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
26
- ('secret_access_key=1234567890abcdef1234567890abcdef1234567890abcdef' , True ),
27
- ('secret_access_key="1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
28
- ('secret_access_key=\' 1234567890abcdef1234567890abcdef1234567890abcdef\' ' , True ),
29
- ('secret_access_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
30
25
(
31
- 'COS_HMAC_SECRET_ACCESS_KEY = "1234567890abcdef1234567890abcdef1234567890abcdef"' ,
26
+ '"secret_access_key": "{secret}"' . format ( secret = SECRET_ACCESS_KEY ) ,
32
27
True ,
33
28
),
34
29
(
35
- 'ibm_cos_SECRET_ACCESS_KEY = "1234567890abcdef1234567890abcdef1234567890abcdef"' ,
30
+ '"secret_access_key": "{secret}extra"' .format (secret = SECRET_ACCESS_KEY ),
31
+ False ,
32
+ ),
33
+ (
34
+ 'secret_access_key={secret}' .format (secret = SECRET_ACCESS_KEY ),
35
+ True ,
36
+ ),
37
+ (
38
+ 'secret_access_key={secret}extra' .format (secret = SECRET_ACCESS_KEY ),
39
+ False ,
40
+ ),
41
+ (
42
+ 'secret_access_key="{secret}"' .format (secret = SECRET_ACCESS_KEY ),
43
+ True ,
44
+ ),
45
+ (
46
+ 'secret_access_key=\' {secret}\' ' .format (secret = SECRET_ACCESS_KEY ),
47
+ True ,
48
+ ),
49
+ (
50
+ 'secret_access_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
51
+ True ,
52
+ ),
53
+ (
54
+ 'COS_HMAC_SECRET_ACCESS_KEY = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
55
+ True ,
56
+ ),
57
+ (
58
+ 'ibm_cos_SECRET_ACCESS_KEY = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
59
+ True ,
60
+ ),
61
+ (
62
+ 'ibm_cos_secret_access_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
63
+ True ,
64
+ ),
65
+ (
66
+ 'ibm_cos_secret_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
67
+ True ,
68
+ ),
69
+ (
70
+ 'cos_secret_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
71
+ True ,
72
+ ),
73
+ (
74
+ 'ibm-cos_secret_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
75
+ True ,
76
+ ),
77
+ (
78
+ 'cos-hmac_secret_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
79
+ True ,
80
+ ),
81
+ (
82
+ 'coshmac_secret_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
83
+ True ,
84
+ ),
85
+ (
86
+ 'ibmcoshmac_secret_key = "{secret}"' .format (secret = SECRET_ACCESS_KEY ),
36
87
True ,
37
88
),
38
89
(
39
- 'ibm_cos_secret_access_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' ,
90
+ 'ibmcos_secret_key = "{secret}"' . format ( secret = SECRET_ACCESS_KEY ) ,
40
91
True ,
41
92
),
42
- ('ibm_cos_secret_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
43
- ('cos_secret_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
44
- ('ibm-cos_secret_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
45
- ('cos-hmac_secret_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
46
- ('coshmac_secret_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
47
- ('ibmcoshmac_secret_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
48
- ('ibmcos_secret_key = "1234567890abcdef1234567890abcdef1234567890abcdef"' , True ),
49
93
('not_secret = notapassword' , False ),
50
94
('someotherpassword = "doesnt start right"' , False ),
51
95
],
@@ -55,6 +99,8 @@ def test_analyze_string(self, payload, should_flag):
55
99
56
100
output = logic .analyze_line (payload , 1 , 'mock_filename' )
57
101
assert len (output ) == int (should_flag )
102
+ if should_flag :
103
+ assert list (output .values ())[0 ].secret_value == SECRET_ACCESS_KEY
58
104
59
105
@patch ('detect_secrets.plugins.ibm_cos_hmac.verify_ibm_cos_hmac_credentials' )
60
106
def test_verify_invalid_secret (self , mock_hmac_verify ):
0 commit comments