mirror of
https://github.com/github/codeql.git
synced 2026-04-25 00:35:20 +02:00
Rust: Corrections after the merge.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/rust-all
|
||||
extensible: summaryModel
|
||||
extensible: summaryModelDeprecated
|
||||
data:
|
||||
- ["repo:https://github.com/fizyk20/generic-array.git:generic-array", "<crate::GenericArray>::from_slice", "Argument[0].Reference", "ReturnValue.Reference", "value", "manual"]
|
||||
- ["repo:https://github.com/fizyk20/generic-array.git:generic-array", "<crate::GenericArray>::from_mut_slice", "Argument[0].Reference", "ReturnValue.Reference", "value", "manual"]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/rust-all
|
||||
extensible: sourceModel
|
||||
extensible: sourceModelDeprecated
|
||||
data:
|
||||
- ["lang:core", "crate::mem::zeroed", "ReturnValue.Element", "constant-source", "manual"]
|
||||
- addsTo:
|
||||
@@ -12,8 +12,6 @@ extensions:
|
||||
- ["lang:core", "<_ as crate::convert::Into>::into", "Argument[self].Element", "ReturnValue.Element", "taint", "manual"]
|
||||
- ["lang:core", "<_ as crate::convert::Into>::into", "Argument[self].Reference.Element", "ReturnValue.Element", "taint", "manual"]
|
||||
- ["lang:core", "<[_]>::align_to", "Argument[self].Element", "ReturnValue.Field[0,1,2].Reference.Element", "taint", "manual"]
|
||||
# Fmt
|
||||
- ["lang:alloc", "crate::fmt::format", "Argument[0]", "ReturnValue", "taint", "manual"]
|
||||
- addsTo:
|
||||
pack: codeql/rust-all
|
||||
extensible: summaryModel
|
||||
|
||||
@@ -7,6 +7,7 @@ import rust
|
||||
private import codeql.rust.dataflow.DataFlow
|
||||
private import codeql.rust.dataflow.FlowSource
|
||||
private import codeql.rust.dataflow.FlowSink
|
||||
private import codeql.rust.Concepts
|
||||
private import codeql.rust.security.SensitiveData
|
||||
|
||||
/**
|
||||
@@ -44,7 +45,9 @@ module HardcodedCryptographicValue {
|
||||
/**
|
||||
* A data flow sink for hard-coded cryptographic value vulnerabilities.
|
||||
*/
|
||||
abstract class Sink extends DataFlow::Node {
|
||||
abstract class Sink extends QuerySink::Range {
|
||||
override string getSinkType() { result = "HardcodedCryptographicValue" }
|
||||
|
||||
/**
|
||||
* Gets the kind of credential this sink is interpreted as.
|
||||
*/
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
import rust
|
||||
private import codeql.rust.dataflow.DataFlow
|
||||
private import codeql.rust.dataflow.internal.DataFlowImpl
|
||||
private import codeql.rust.dataflow.internal.TaintTrackingImpl
|
||||
private import codeql.rust.internal.AstConsistency as AstConsistency
|
||||
private import codeql.rust.internal.PathResolutionConsistency as PathResolutionConsistency
|
||||
@@ -16,15 +17,15 @@ private import codeql.rust.Diagnostics
|
||||
private import codeql.rust.security.SensitiveData
|
||||
private import TaintReach
|
||||
// import all query extensions files, so that all extensions of `QuerySink` are found
|
||||
private import codeql.rust.security.CleartextLoggingExtensions
|
||||
private import codeql.rust.security.HardcodedCryptographicValueExtensions
|
||||
private import codeql.rust.security.SqlInjectionExtensions
|
||||
private import codeql.rust.security.WeakSensitiveDataHashingExtensions
|
||||
private import codeql.rust.security.regex.RegexInjectionExtensions
|
||||
private import codeql.rust.security.AccessInvalidPointerExtensions
|
||||
private import codeql.rust.security.CleartextLoggingExtensions
|
||||
private import codeql.rust.security.CleartextTransmissionExtensions
|
||||
private import codeql.rust.security.SqlInjectionExtensions
|
||||
private import codeql.rust.security.TaintedPathExtensions
|
||||
private import codeql.rust.security.UncontrolledAllocationSizeExtensions
|
||||
private import codeql.rust.security.WeakSensitiveDataHashingExtensions
|
||||
private import codeql.rust.security.HardcodedCryptographicValueExtensions
|
||||
|
||||
/**
|
||||
* Gets a count of the total number of lines of code in the database.
|
||||
@@ -91,17 +92,6 @@ int getTaintEdgesCount() {
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a kind of query for which `n` is a sink (if any).
|
||||
*/
|
||||
string getAQuerySinkKind(DataFlow::Node n) {
|
||||
n instanceof SqlInjection::Sink and result = "SqlInjection"
|
||||
or
|
||||
n instanceof CleartextLogging::Sink and result = "CleartextLogging"
|
||||
or
|
||||
n instanceof HardcodedCryptographicValue::Sink and result = "HardcodedCryptographicValue"
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a count of the total number of query sinks in the database.
|
||||
*/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,228 +1,35 @@
|
||||
#select
|
||||
| test_cipher.rs:18:30:18:32 | 0u8 | test_cipher.rs:18:30:18:32 | 0u8 | test_cipher.rs:19:30:19:47 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:19:30:19:47 | ...::new | a key |
|
||||
| test_cipher.rs:25:30:25:32 | 0u8 | test_cipher.rs:25:30:25:32 | 0u8 | test_cipher.rs:26:30:26:40 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:26:30:26:40 | ...::new | a key |
|
||||
| test_cipher.rs:29:30:29:32 | 0u8 | test_cipher.rs:29:30:29:32 | 0u8 | test_cipher.rs:30:30:30:40 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:30:30:30:40 | ...::new | an initialization vector |
|
||||
| test_cipher.rs:37:27:37:74 | [...] | test_cipher.rs:37:27:37:74 | [...] | test_cipher.rs:38:30:38:47 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:38:30:38:47 | ...::new | a key |
|
||||
| test_cipher.rs:41:29:41:76 | [...] | test_cipher.rs:41:29:41:76 | [...] | test_cipher.rs:42:30:42:47 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:42:30:42:47 | ...::new | a key |
|
||||
| test_cipher.rs:45:27:45:50 | [...] | test_cipher.rs:45:27:45:50 | [...] | test_cipher.rs:47:30:47:47 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:47:30:47:47 | ...::new | a key |
|
||||
| test_cipher.rs:50:37:50:52 | ...::zeroed | test_cipher.rs:50:37:50:52 | ...::zeroed | test_cipher.rs:51:31:51:48 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:51:31:51:48 | ...::new | a key |
|
||||
| test_cipher.rs:66:20:66:22 | 0u8 | test_cipher.rs:66:20:66:22 | 0u8 | test_cipher.rs:67:23:67:33 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:67:23:67:33 | ...::new | a key |
|
||||
| test_cipher.rs:73:20:73:22 | 0u8 | test_cipher.rs:73:20:73:22 | 0u8 | test_cipher.rs:74:23:74:44 | ...::new_from_slice | This hard-coded value is used as $@. | test_cipher.rs:74:23:74:44 | ...::new_from_slice | a key |
|
||||
| test_cipher.rs:80:20:80:22 | 0u8 | test_cipher.rs:80:20:80:22 | 0u8 | test_cipher.rs:81:23:81:61 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:81:23:81:61 | ...::new | a key |
|
||||
| test_cipher.rs:84:20:84:22 | 0u8 | test_cipher.rs:84:20:84:22 | 0u8 | test_cipher.rs:85:23:85:61 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:85:23:85:61 | ...::new | an initialization vector |
|
||||
| test_cipher.rs:124:26:124:26 | 0 | test_cipher.rs:124:26:124:26 | 0 | test_cipher.rs:126:19:126:32 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:126:19:126:32 | ...::new | a key |
|
||||
| test_cipher.rs:125:19:125:19 | 0 | test_cipher.rs:125:19:125:19 | 0 | test_cipher.rs:127:21:127:27 | encrypt | This hard-coded value is used as $@. | test_cipher.rs:127:21:127:27 | encrypt | a nonce |
|
||||
| test_cipher.rs:129:34:129:37 | 0xff | test_cipher.rs:129:34:129:37 | 0xff | test_cipher.rs:132:19:132:32 | ...::new | This hard-coded value is used as $@. | test_cipher.rs:132:19:132:32 | ...::new | a key |
|
||||
| test_cipher.rs:131:28:131:31 | 0xff | test_cipher.rs:131:28:131:31 | 0xff | test_cipher.rs:133:21:133:27 | encrypt | This hard-coded value is used as $@. | test_cipher.rs:133:21:133:27 | encrypt | a nonce |
|
||||
edges
|
||||
| test_cipher.rs:18:9:18:14 | const1 [&ref, element] | test_cipher.rs:19:73:19:78 | const1 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:18:28:18:36 | &... [&ref, element] | test_cipher.rs:18:9:18:14 | const1 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:18:29:18:36 | [0u8; 16] [element] | test_cipher.rs:18:28:18:36 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:18:30:18:32 | 0u8 | test_cipher.rs:18:29:18:36 | [0u8; 16] [element] | provenance | |
|
||||
| test_cipher.rs:19:49:19:79 | ...::from_slice(...) [&ref, element] | test_cipher.rs:19:30:19:47 | ...::new | provenance | MaD:5 Sink:MaD:5 Sink:MaD:5 |
|
||||
| test_cipher.rs:19:73:19:78 | const1 [&ref, element] | test_cipher.rs:19:49:19:79 | ...::from_slice(...) [&ref, element] | provenance | MaD:13 |
|
||||
| test_cipher.rs:25:9:25:14 | const4 [&ref, element] | test_cipher.rs:26:66:26:71 | const4 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:25:28:25:36 | &... [&ref, element] | test_cipher.rs:25:9:25:14 | const4 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:25:29:25:36 | [0u8; 16] [element] | test_cipher.rs:25:28:25:36 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:25:30:25:32 | 0u8 | test_cipher.rs:25:29:25:36 | [0u8; 16] [element] | provenance | |
|
||||
| test_cipher.rs:26:42:26:72 | ...::from_slice(...) [&ref, element] | test_cipher.rs:26:30:26:40 | ...::new | provenance | MaD:5 Sink:MaD:5 Sink:MaD:5 |
|
||||
| test_cipher.rs:26:66:26:71 | const4 [&ref, element] | test_cipher.rs:26:42:26:72 | ...::from_slice(...) [&ref, element] | provenance | MaD:13 |
|
||||
| test_cipher.rs:29:9:29:14 | const5 [&ref, element] | test_cipher.rs:30:95:30:100 | const5 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:29:28:29:36 | &... [&ref, element] | test_cipher.rs:29:9:29:14 | const5 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:29:29:29:36 | [0u8; 16] [element] | test_cipher.rs:29:28:29:36 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:29:30:29:32 | 0u8 | test_cipher.rs:29:29:29:36 | [0u8; 16] [element] | provenance | |
|
||||
| test_cipher.rs:30:72:30:101 | ...::from_slice(...) [&ref, element] | test_cipher.rs:30:30:30:40 | ...::new | provenance | MaD:4 Sink:MaD:4 Sink:MaD:4 |
|
||||
| test_cipher.rs:30:95:30:100 | const5 [&ref, element] | test_cipher.rs:30:72:30:101 | ...::from_slice(...) [&ref, element] | provenance | MaD:13 |
|
||||
| test_cipher.rs:37:9:37:14 | const7 | test_cipher.rs:38:74:38:79 | const7 | provenance | |
|
||||
| test_cipher.rs:37:27:37:74 | [...] | test_cipher.rs:37:9:37:14 | const7 | provenance | |
|
||||
| test_cipher.rs:38:49:38:80 | ...::from_slice(...) [&ref] | test_cipher.rs:38:30:38:47 | ...::new | provenance | MaD:5 Sink:MaD:5 |
|
||||
| test_cipher.rs:38:73:38:79 | &const7 [&ref] | test_cipher.rs:38:49:38:80 | ...::from_slice(...) [&ref] | provenance | MaD:13 |
|
||||
| test_cipher.rs:38:74:38:79 | const7 | test_cipher.rs:38:73:38:79 | &const7 [&ref] | provenance | |
|
||||
| test_cipher.rs:41:9:41:14 | const8 [&ref] | test_cipher.rs:42:73:42:78 | const8 [&ref] | provenance | |
|
||||
| test_cipher.rs:41:28:41:76 | &... [&ref] | test_cipher.rs:41:9:41:14 | const8 [&ref] | provenance | |
|
||||
| test_cipher.rs:41:29:41:76 | [...] | test_cipher.rs:41:28:41:76 | &... [&ref] | provenance | |
|
||||
| test_cipher.rs:42:49:42:79 | ...::from_slice(...) [&ref] | test_cipher.rs:42:30:42:47 | ...::new | provenance | MaD:5 Sink:MaD:5 |
|
||||
| test_cipher.rs:42:73:42:78 | const8 [&ref] | test_cipher.rs:42:49:42:79 | ...::from_slice(...) [&ref] | provenance | MaD:13 |
|
||||
| test_cipher.rs:45:9:45:14 | const9 | test_cipher.rs:46:32:46:54 | const9.align_to(...) [tuple.1, &ref, element] | provenance | MaD:10 |
|
||||
| test_cipher.rs:45:27:45:50 | [...] | test_cipher.rs:45:9:45:14 | const9 | provenance | |
|
||||
| test_cipher.rs:46:9:46:19 | const9_conv [&ref, element] | test_cipher.rs:47:73:47:83 | const9_conv [&ref, element] | provenance | |
|
||||
| test_cipher.rs:46:32:46:54 | const9.align_to(...) [tuple.1, &ref, element] | test_cipher.rs:46:32:46:56 | ... .1 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:46:32:46:56 | ... .1 [&ref, element] | test_cipher.rs:46:9:46:19 | const9_conv [&ref, element] | provenance | |
|
||||
| test_cipher.rs:47:49:47:84 | ...::from_slice(...) [&ref, element] | test_cipher.rs:47:30:47:47 | ...::new | provenance | MaD:5 Sink:MaD:5 Sink:MaD:5 |
|
||||
| test_cipher.rs:47:73:47:83 | const9_conv [&ref, element] | test_cipher.rs:47:49:47:84 | ...::from_slice(...) [&ref, element] | provenance | MaD:13 |
|
||||
| test_cipher.rs:50:9:50:15 | const10 [element] | test_cipher.rs:51:75:51:81 | const10 [element] | provenance | |
|
||||
| test_cipher.rs:50:37:50:52 | ...::zeroed | test_cipher.rs:50:37:50:54 | ...::zeroed(...) [element] | provenance | Src:MaD:9 |
|
||||
| test_cipher.rs:50:37:50:54 | ...::zeroed(...) [element] | test_cipher.rs:50:9:50:15 | const10 [element] | provenance | |
|
||||
| test_cipher.rs:51:50:51:82 | ...::from_slice(...) [&ref, element] | test_cipher.rs:51:31:51:48 | ...::new | provenance | MaD:5 Sink:MaD:5 Sink:MaD:5 |
|
||||
| test_cipher.rs:51:74:51:81 | &const10 [&ref, element] | test_cipher.rs:51:50:51:82 | ...::from_slice(...) [&ref, element] | provenance | MaD:13 |
|
||||
| test_cipher.rs:51:75:51:81 | const10 [element] | test_cipher.rs:51:74:51:81 | &const10 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:66:9:66:14 | const2 [&ref, element] | test_cipher.rs:67:35:67:40 | const2 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:66:9:66:14 | const2 [&ref, element] | test_cipher.rs:67:35:67:47 | const2.into(...) [element] | provenance | MaD:12 |
|
||||
| test_cipher.rs:66:18:66:26 | &... [&ref, element] | test_cipher.rs:66:9:66:14 | const2 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:66:19:66:26 | [0u8; 32] [element] | test_cipher.rs:66:18:66:26 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:66:20:66:22 | 0u8 | test_cipher.rs:66:19:66:26 | [0u8; 32] [element] | provenance | |
|
||||
| test_cipher.rs:67:35:67:40 | const2 [&ref, element] | test_cipher.rs:67:35:67:47 | const2.into(...) [element] | provenance | MaD:11 |
|
||||
| test_cipher.rs:67:35:67:47 | const2.into(...) [element] | test_cipher.rs:67:23:67:33 | ...::new | provenance | MaD:2 Sink:MaD:2 |
|
||||
| test_cipher.rs:73:9:73:14 | const2 [&ref, element] | test_cipher.rs:74:46:74:51 | const2 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:73:18:73:26 | &... [&ref, element] | test_cipher.rs:73:9:73:14 | const2 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:73:19:73:26 | [0u8; 32] [element] | test_cipher.rs:73:18:73:26 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:73:20:73:22 | 0u8 | test_cipher.rs:73:19:73:26 | [0u8; 32] [element] | provenance | |
|
||||
| test_cipher.rs:74:46:74:51 | const2 [&ref, element] | test_cipher.rs:74:23:74:44 | ...::new_from_slice | provenance | MaD:8 Sink:MaD:8 Sink:MaD:8 |
|
||||
| test_cipher.rs:80:9:80:14 | const6 [&ref, element] | test_cipher.rs:81:63:81:68 | const6 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:80:9:80:14 | const6 [&ref, element] | test_cipher.rs:81:63:81:75 | const6.into(...) [element] | provenance | MaD:12 |
|
||||
| test_cipher.rs:80:18:80:26 | &... [&ref, element] | test_cipher.rs:80:9:80:14 | const6 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:80:19:80:26 | [0u8; 32] [element] | test_cipher.rs:80:18:80:26 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:80:20:80:22 | 0u8 | test_cipher.rs:80:19:80:26 | [0u8; 32] [element] | provenance | |
|
||||
| test_cipher.rs:81:63:81:68 | const6 [&ref, element] | test_cipher.rs:81:63:81:75 | const6.into(...) [element] | provenance | MaD:11 |
|
||||
| test_cipher.rs:81:63:81:75 | const6.into(...) [element] | test_cipher.rs:81:23:81:61 | ...::new | provenance | MaD:7 Sink:MaD:7 |
|
||||
| test_cipher.rs:84:9:84:14 | const7 [&ref, element] | test_cipher.rs:85:75:85:80 | const7 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:84:9:84:14 | const7 [&ref, element] | test_cipher.rs:85:75:85:87 | const7.into(...) [element] | provenance | MaD:12 |
|
||||
| test_cipher.rs:84:18:84:27 | &... [&ref, element] | test_cipher.rs:84:9:84:14 | const7 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:84:19:84:27 | [0u8; 16] [element] | test_cipher.rs:84:18:84:27 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:84:20:84:22 | 0u8 | test_cipher.rs:84:19:84:27 | [0u8; 16] [element] | provenance | |
|
||||
| test_cipher.rs:85:75:85:80 | const7 [&ref, element] | test_cipher.rs:85:75:85:87 | const7.into(...) [element] | provenance | MaD:11 |
|
||||
| test_cipher.rs:85:75:85:87 | const7.into(...) [element] | test_cipher.rs:85:23:85:61 | ...::new | provenance | MaD:6 Sink:MaD:6 |
|
||||
| test_cipher.rs:124:9:124:12 | key2 [element] | test_cipher.rs:126:35:126:45 | key2.into(...) [element] | provenance | MaD:11 |
|
||||
| test_cipher.rs:124:25:124:30 | [0; 32] [element] | test_cipher.rs:124:9:124:12 | key2 [element] | provenance | |
|
||||
| test_cipher.rs:124:26:124:26 | 0 | test_cipher.rs:124:25:124:30 | [0; 32] [element] | provenance | |
|
||||
| test_cipher.rs:125:9:125:14 | nonce2 [element] | test_cipher.rs:127:30:127:42 | nonce2.into(...) [element] | provenance | MaD:11 |
|
||||
| test_cipher.rs:125:18:125:23 | [0; 12] [element] | test_cipher.rs:125:9:125:14 | nonce2 [element] | provenance | |
|
||||
| test_cipher.rs:125:19:125:19 | 0 | test_cipher.rs:125:18:125:23 | [0; 12] [element] | provenance | |
|
||||
| test_cipher.rs:126:34:126:45 | &... [&ref, element] | test_cipher.rs:126:19:126:32 | ...::new | provenance | MaD:1 Sink:MaD:1 Sink:MaD:1 |
|
||||
| test_cipher.rs:126:35:126:45 | key2.into(...) [element] | test_cipher.rs:126:34:126:45 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:127:29:127:42 | &... [&ref, element] | test_cipher.rs:127:21:127:27 | encrypt | provenance | MaD:3 Sink:MaD:3 Sink:MaD:3 |
|
||||
| test_cipher.rs:127:30:127:42 | nonce2.into(...) [element] | test_cipher.rs:127:29:127:42 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:129:9:129:18 | key3_array [&ref, element] | test_cipher.rs:130:45:130:54 | key3_array [&ref, element] | provenance | |
|
||||
| test_cipher.rs:129:32:129:41 | &... [&ref, element] | test_cipher.rs:129:9:129:18 | key3_array [&ref, element] | provenance | |
|
||||
| test_cipher.rs:129:33:129:41 | [0xff; 32] [element] | test_cipher.rs:129:32:129:41 | &... [&ref, element] | provenance | |
|
||||
| test_cipher.rs:129:34:129:37 | 0xff | test_cipher.rs:129:33:129:41 | [0xff; 32] [element] | provenance | |
|
||||
| test_cipher.rs:130:9:130:12 | key3 [&ref, element] | test_cipher.rs:132:35:132:38 | key3 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:130:16:130:55 | ...::from_slice(...) [&ref, element] | test_cipher.rs:130:9:130:12 | key3 [&ref, element] | provenance | |
|
||||
| test_cipher.rs:130:45:130:54 | key3_array [&ref, element] | test_cipher.rs:130:16:130:55 | ...::from_slice(...) [&ref, element] | provenance | MaD:13 |
|
||||
| test_cipher.rs:131:9:131:14 | nonce3 [element] | test_cipher.rs:133:30:133:42 | nonce3.into(...) [element] | provenance | MaD:11 |
|
||||
| test_cipher.rs:131:27:131:35 | [0xff; 12] [element] | test_cipher.rs:131:9:131:14 | nonce3 [element] | provenance | |
|
||||
| test_cipher.rs:131:28:131:31 | 0xff | test_cipher.rs:131:27:131:35 | [0xff; 12] [element] | provenance | |
|
||||
| test_cipher.rs:132:34:132:38 | &key3 [&ref, &ref, element] | test_cipher.rs:132:19:132:32 | ...::new | provenance | MaD:1 Sink:MaD:1 Sink:MaD:1 |
|
||||
| test_cipher.rs:132:34:132:38 | &key3 [&ref, &ref, element] | test_cipher.rs:132:19:132:32 | ...::new | provenance | MaD:1 Sink:MaD:1 Sink:MaD:1 Sink:MaD:1 |
|
||||
| test_cipher.rs:132:35:132:38 | key3 [&ref, element] | test_cipher.rs:132:34:132:38 | &key3 [&ref, &ref, element] | provenance | |
|
||||
| test_cipher.rs:133:29:133:42 | &... [&ref, element] | test_cipher.rs:133:21:133:27 | encrypt | provenance | MaD:3 Sink:MaD:3 Sink:MaD:3 |
|
||||
| test_cipher.rs:133:30:133:42 | nonce3.into(...) [element] | test_cipher.rs:133:29:133:42 | &... [&ref, element] | provenance | |
|
||||
models
|
||||
| 1 | Sink: repo:https://github.com/RustCrypto/AEADs:aes-gcm; <crate::AesGcm as crate::KeyInit>::new; credentials-key; Argument[0] |
|
||||
| 2 | Sink: repo:https://github.com/RustCrypto/block-ciphers:aes; <crate::soft::Aes256 as crate::KeyInit>::new; credentials-key; Argument[0] |
|
||||
| 3 | Sink: repo:https://github.com/RustCrypto/traits:aead; <_ as crate::Aead>::encrypt; credentials-nonce; Argument[0] |
|
||||
| 4 | Sink: repo:https://github.com/RustCrypto/traits:cipher; <crate::stream_wrapper::StreamCipherCoreWrapper as crate::KeyIvInit>::new; credentials-iv; Argument[1] |
|
||||
| 5 | Sink: repo:https://github.com/RustCrypto/traits:cipher; <crate::stream_wrapper::StreamCipherCoreWrapper as crate::KeyIvInit>::new; credentials-key; Argument[0] |
|
||||
| 6 | Sink: repo:https://github.com/RustCrypto/traits:crypto-common; <_ as crate::KeyIvInit>::new; credentials-iv; Argument[1] |
|
||||
| 7 | Sink: repo:https://github.com/RustCrypto/traits:crypto-common; <_ as crate::KeyIvInit>::new; credentials-key; Argument[0] |
|
||||
| 8 | Sink: repo:https://github.com/RustCrypto/traits:crypto-common; crate::KeyInit::new_from_slice; credentials-key; Argument[0] |
|
||||
| 9 | Source: lang:core; crate::mem::zeroed; constant-source; ReturnValue.Element |
|
||||
| 10 | Summary: lang:core; <[_]>::align_to; Argument[self].Element; ReturnValue.Field[0,1,2].Reference.Element; taint |
|
||||
| 11 | Summary: lang:core; <_ as crate::convert::Into>::into; Argument[self].Element; ReturnValue.Element; taint |
|
||||
| 12 | Summary: lang:core; <_ as crate::convert::Into>::into; Argument[self].Reference.Element; ReturnValue.Element; taint |
|
||||
| 13 | Summary: repo:https://github.com/fizyk20/generic-array.git:generic-array; <crate::GenericArray>::from_slice; Argument[0].Reference; ReturnValue.Reference; value |
|
||||
nodes
|
||||
| test_cipher.rs:18:9:18:14 | const1 [&ref, element] | semmle.label | const1 [&ref, element] |
|
||||
| test_cipher.rs:18:28:18:36 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:18:29:18:36 | [0u8; 16] [element] | semmle.label | [0u8; 16] [element] |
|
||||
| test_cipher.rs:18:30:18:32 | 0u8 | semmle.label | 0u8 |
|
||||
| test_cipher.rs:19:30:19:47 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:19:49:19:79 | ...::from_slice(...) [&ref, element] | semmle.label | ...::from_slice(...) [&ref, element] |
|
||||
| test_cipher.rs:19:73:19:78 | const1 [&ref, element] | semmle.label | const1 [&ref, element] |
|
||||
| test_cipher.rs:25:9:25:14 | const4 [&ref, element] | semmle.label | const4 [&ref, element] |
|
||||
| test_cipher.rs:25:28:25:36 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:25:29:25:36 | [0u8; 16] [element] | semmle.label | [0u8; 16] [element] |
|
||||
| test_cipher.rs:25:30:25:32 | 0u8 | semmle.label | 0u8 |
|
||||
| test_cipher.rs:26:30:26:40 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:26:42:26:72 | ...::from_slice(...) [&ref, element] | semmle.label | ...::from_slice(...) [&ref, element] |
|
||||
| test_cipher.rs:26:66:26:71 | const4 [&ref, element] | semmle.label | const4 [&ref, element] |
|
||||
| test_cipher.rs:29:9:29:14 | const5 [&ref, element] | semmle.label | const5 [&ref, element] |
|
||||
| test_cipher.rs:29:28:29:36 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:29:29:29:36 | [0u8; 16] [element] | semmle.label | [0u8; 16] [element] |
|
||||
| test_cipher.rs:29:30:29:32 | 0u8 | semmle.label | 0u8 |
|
||||
| test_cipher.rs:30:30:30:40 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:30:72:30:101 | ...::from_slice(...) [&ref, element] | semmle.label | ...::from_slice(...) [&ref, element] |
|
||||
| test_cipher.rs:30:95:30:100 | const5 [&ref, element] | semmle.label | const5 [&ref, element] |
|
||||
| test_cipher.rs:37:9:37:14 | const7 | semmle.label | const7 |
|
||||
| test_cipher.rs:37:27:37:74 | [...] | semmle.label | [...] |
|
||||
| test_cipher.rs:38:30:38:47 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:38:49:38:80 | ...::from_slice(...) [&ref] | semmle.label | ...::from_slice(...) [&ref] |
|
||||
| test_cipher.rs:38:73:38:79 | &const7 [&ref] | semmle.label | &const7 [&ref] |
|
||||
| test_cipher.rs:38:74:38:79 | const7 | semmle.label | const7 |
|
||||
| test_cipher.rs:41:9:41:14 | const8 [&ref] | semmle.label | const8 [&ref] |
|
||||
| test_cipher.rs:41:28:41:76 | &... [&ref] | semmle.label | &... [&ref] |
|
||||
| test_cipher.rs:41:29:41:76 | [...] | semmle.label | [...] |
|
||||
| test_cipher.rs:42:30:42:47 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:42:49:42:79 | ...::from_slice(...) [&ref] | semmle.label | ...::from_slice(...) [&ref] |
|
||||
| test_cipher.rs:42:73:42:78 | const8 [&ref] | semmle.label | const8 [&ref] |
|
||||
| test_cipher.rs:45:9:45:14 | const9 | semmle.label | const9 |
|
||||
| test_cipher.rs:45:27:45:50 | [...] | semmle.label | [...] |
|
||||
| test_cipher.rs:46:9:46:19 | const9_conv [&ref, element] | semmle.label | const9_conv [&ref, element] |
|
||||
| test_cipher.rs:46:32:46:54 | const9.align_to(...) [tuple.1, &ref, element] | semmle.label | const9.align_to(...) [tuple.1, &ref, element] |
|
||||
| test_cipher.rs:46:32:46:56 | ... .1 [&ref, element] | semmle.label | ... .1 [&ref, element] |
|
||||
| test_cipher.rs:47:30:47:47 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:47:49:47:84 | ...::from_slice(...) [&ref, element] | semmle.label | ...::from_slice(...) [&ref, element] |
|
||||
| test_cipher.rs:47:73:47:83 | const9_conv [&ref, element] | semmle.label | const9_conv [&ref, element] |
|
||||
| test_cipher.rs:50:9:50:15 | const10 [element] | semmle.label | const10 [element] |
|
||||
| test_cipher.rs:50:37:50:52 | ...::zeroed | semmle.label | ...::zeroed |
|
||||
| test_cipher.rs:50:37:50:54 | ...::zeroed(...) [element] | semmle.label | ...::zeroed(...) [element] |
|
||||
| test_cipher.rs:51:31:51:48 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:51:50:51:82 | ...::from_slice(...) [&ref, element] | semmle.label | ...::from_slice(...) [&ref, element] |
|
||||
| test_cipher.rs:51:74:51:81 | &const10 [&ref, element] | semmle.label | &const10 [&ref, element] |
|
||||
| test_cipher.rs:51:75:51:81 | const10 [element] | semmle.label | const10 [element] |
|
||||
| test_cipher.rs:66:9:66:14 | const2 [&ref, element] | semmle.label | const2 [&ref, element] |
|
||||
| test_cipher.rs:66:18:66:26 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:66:19:66:26 | [0u8; 32] [element] | semmle.label | [0u8; 32] [element] |
|
||||
| test_cipher.rs:66:20:66:22 | 0u8 | semmle.label | 0u8 |
|
||||
| test_cipher.rs:67:23:67:33 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:67:35:67:40 | const2 [&ref, element] | semmle.label | const2 [&ref, element] |
|
||||
| test_cipher.rs:67:35:67:47 | const2.into(...) [element] | semmle.label | const2.into(...) [element] |
|
||||
| test_cipher.rs:73:9:73:14 | const2 [&ref, element] | semmle.label | const2 [&ref, element] |
|
||||
| test_cipher.rs:73:18:73:26 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:73:19:73:26 | [0u8; 32] [element] | semmle.label | [0u8; 32] [element] |
|
||||
| test_cipher.rs:73:20:73:22 | 0u8 | semmle.label | 0u8 |
|
||||
| test_cipher.rs:74:23:74:44 | ...::new_from_slice | semmle.label | ...::new_from_slice |
|
||||
| test_cipher.rs:74:46:74:51 | const2 [&ref, element] | semmle.label | const2 [&ref, element] |
|
||||
| test_cipher.rs:80:9:80:14 | const6 [&ref, element] | semmle.label | const6 [&ref, element] |
|
||||
| test_cipher.rs:80:18:80:26 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:80:19:80:26 | [0u8; 32] [element] | semmle.label | [0u8; 32] [element] |
|
||||
| test_cipher.rs:80:20:80:22 | 0u8 | semmle.label | 0u8 |
|
||||
| test_cipher.rs:81:23:81:61 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:81:63:81:68 | const6 [&ref, element] | semmle.label | const6 [&ref, element] |
|
||||
| test_cipher.rs:81:63:81:75 | const6.into(...) [element] | semmle.label | const6.into(...) [element] |
|
||||
| test_cipher.rs:84:9:84:14 | const7 [&ref, element] | semmle.label | const7 [&ref, element] |
|
||||
| test_cipher.rs:84:18:84:27 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:84:19:84:27 | [0u8; 16] [element] | semmle.label | [0u8; 16] [element] |
|
||||
| test_cipher.rs:84:20:84:22 | 0u8 | semmle.label | 0u8 |
|
||||
| test_cipher.rs:85:23:85:61 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:85:75:85:80 | const7 [&ref, element] | semmle.label | const7 [&ref, element] |
|
||||
| test_cipher.rs:85:75:85:87 | const7.into(...) [element] | semmle.label | const7.into(...) [element] |
|
||||
| test_cipher.rs:124:9:124:12 | key2 [element] | semmle.label | key2 [element] |
|
||||
| test_cipher.rs:124:25:124:30 | [0; 32] [element] | semmle.label | [0; 32] [element] |
|
||||
| test_cipher.rs:124:26:124:26 | 0 | semmle.label | 0 |
|
||||
| test_cipher.rs:125:9:125:14 | nonce2 [element] | semmle.label | nonce2 [element] |
|
||||
| test_cipher.rs:125:18:125:23 | [0; 12] [element] | semmle.label | [0; 12] [element] |
|
||||
| test_cipher.rs:125:19:125:19 | 0 | semmle.label | 0 |
|
||||
| test_cipher.rs:126:19:126:32 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:126:34:126:45 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:126:35:126:45 | key2.into(...) [element] | semmle.label | key2.into(...) [element] |
|
||||
| test_cipher.rs:127:21:127:27 | encrypt | semmle.label | encrypt |
|
||||
| test_cipher.rs:127:29:127:42 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:127:30:127:42 | nonce2.into(...) [element] | semmle.label | nonce2.into(...) [element] |
|
||||
| test_cipher.rs:129:9:129:18 | key3_array [&ref, element] | semmle.label | key3_array [&ref, element] |
|
||||
| test_cipher.rs:129:32:129:41 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:129:33:129:41 | [0xff; 32] [element] | semmle.label | [0xff; 32] [element] |
|
||||
| test_cipher.rs:129:34:129:37 | 0xff | semmle.label | 0xff |
|
||||
| test_cipher.rs:130:9:130:12 | key3 [&ref, element] | semmle.label | key3 [&ref, element] |
|
||||
| test_cipher.rs:130:16:130:55 | ...::from_slice(...) [&ref, element] | semmle.label | ...::from_slice(...) [&ref, element] |
|
||||
| test_cipher.rs:130:45:130:54 | key3_array [&ref, element] | semmle.label | key3_array [&ref, element] |
|
||||
| test_cipher.rs:131:9:131:14 | nonce3 [element] | semmle.label | nonce3 [element] |
|
||||
| test_cipher.rs:131:27:131:35 | [0xff; 12] [element] | semmle.label | [0xff; 12] [element] |
|
||||
| test_cipher.rs:131:28:131:31 | 0xff | semmle.label | 0xff |
|
||||
| test_cipher.rs:132:19:132:32 | ...::new | semmle.label | ...::new |
|
||||
| test_cipher.rs:132:34:132:38 | &key3 [&ref, &ref, element] | semmle.label | &key3 [&ref, &ref, element] |
|
||||
| test_cipher.rs:132:35:132:38 | key3 [&ref, element] | semmle.label | key3 [&ref, element] |
|
||||
| test_cipher.rs:133:21:133:27 | encrypt | semmle.label | encrypt |
|
||||
| test_cipher.rs:133:29:133:42 | &... [&ref, element] | semmle.label | &... [&ref, element] |
|
||||
| test_cipher.rs:133:30:133:42 | nonce3.into(...) [element] | semmle.label | nonce3.into(...) [element] |
|
||||
subpaths
|
||||
testFailures
|
||||
| test_cipher.rs:18:39:18:85 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:19:83:19:91 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:25:39:25:85 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:26:104:26:112 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:29:39:29:85 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:30:105:30:113 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:37:77:37:123 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:38:84:38:92 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:41:79:41:125 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:42:83:42:91 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:45:53:45:99 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:47:88:47:96 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:50:59:50:105 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:51:86:51:94 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:66:29:66:75 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:67:51:67:59 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:73:29:73:75 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:74:64:74:72 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:80:29:80:75 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:81:90:81:98 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:84:30:84:76 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:85:91:85:99 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:124:33:124:79 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:125:26:125:72 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:126:49:126:57 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:127:78:127:86 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:129:44:129:90 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:131:38:131:84 | //... | Missing result: Alert[rust/hard-coded-cryptographic-value] |
|
||||
| test_cipher.rs:132:42:132:50 | //... | Missing result: Sink |
|
||||
| test_cipher.rs:133:78:133:86 | //... | Missing result: Sink |
|
||||
|
||||
Reference in New Issue
Block a user