82 @type SecurityContext |
82 @type SecurityContext |
83 @param config dictionary with configuration data |
83 @param config dictionary with configuration data |
84 @type dict |
84 @type dict |
85 """ |
85 """ |
86 node = context.node |
86 node = context.node |
87 if AWS_ACCESS_KEY_ID_REGEX.fullmatch(node.s): |
87 if AWS_ACCESS_KEY_ID_REGEX.fullmatch(node.value): |
88 entropy = shannonEntropy(node.s, AWS_ACCESS_KEY_ID_SYMBOLS) |
88 entropy = shannonEntropy(node.value, AWS_ACCESS_KEY_ID_SYMBOLS) |
89 if entropy > AWS_ACCESS_KEY_ID_MAX_ENTROPY: |
89 if entropy > AWS_ACCESS_KEY_ID_MAX_ENTROPY: |
90 reportError( |
90 reportError( |
91 context.node.lineno - 1, |
91 context.node.lineno - 1, |
92 context.node.col_offset, |
92 context.node.col_offset, |
93 "S801", |
93 "S801", |
94 "L", |
94 "L", |
95 "M", |
95 "M", |
96 node.s, |
96 node.value, |
97 ) |
97 ) |
98 |
98 |
99 elif AWS_SECRET_ACCESS_KEY_REGEX.fullmatch(node.s): |
99 elif AWS_SECRET_ACCESS_KEY_REGEX.fullmatch(node.value): |
100 entropy = shannonEntropy(node.s, AWS_SECRET_ACCESS_KEY_SYMBOLS) |
100 entropy = shannonEntropy(node.value, AWS_SECRET_ACCESS_KEY_SYMBOLS) |
101 if entropy > AWS_SECRET_ACCESS_KEY_MAX_ENTROPY: |
101 if entropy > AWS_SECRET_ACCESS_KEY_MAX_ENTROPY: |
102 reportError( |
102 reportError( |
103 context.node.lineno - 1, |
103 context.node.lineno - 1, |
104 context.node.col_offset, |
104 context.node.col_offset, |
105 "S802", |
105 "S802", |
106 "M", |
106 "M", |
107 "M", |
107 "M", |
108 node.s, |
108 node.value, |
109 ) |
109 ) |