@@ -22,82 +22,82 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node {
2222}
2323
2424
25- /**
26- * Generic data source to node input configuration
27- */
28- module GenericDataSourceUniversalFlowConfig implements DataFlow:: ConfigSig {
29- predicate isSource ( DataFlow:: Node source ) {
30- source = any ( Crypto:: GenericDataSourceInstance i ) .getOutputNode ( )
31- }
25+ // / **
26+ // * Generic data source to node input configuration
27+ // */
28+ // module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig {
29+ // predicate isSource(DataFlow::Node source) {
30+ // source = any(Crypto::GenericDataSourceInstance i).getOutputNode()
31+ // }
3232
33- predicate isSink ( DataFlow:: Node sink ) {
34- sink = any ( Crypto:: FlowAwareElement other ) .getInputNode ( )
35- }
33+ // predicate isSink(DataFlow::Node sink) {
34+ // sink = any(Crypto::FlowAwareElement other).getInputNode()
35+ // }
3636
37- predicate isBarrierOut ( DataFlow:: Node node ) {
38- node = any ( Crypto:: FlowAwareElement element ) .getInputNode ( )
39- }
37+ // predicate isBarrierOut(DataFlow::Node node) {
38+ // node = any(Crypto::FlowAwareElement element).getInputNode()
39+ // }
4040
41- predicate isBarrierIn ( DataFlow:: Node node ) {
42- node = any ( Crypto:: FlowAwareElement element ) .getOutputNode ( )
43- }
41+ // predicate isBarrierIn(DataFlow::Node node) {
42+ // node = any(Crypto::FlowAwareElement element).getOutputNode()
43+ // }
4444
45- predicate isAdditionalFlowStep ( DataFlow:: Node node1 , DataFlow:: Node node2 ) {
46- node1 .( AdditionalFlowInputStep ) .getOutput ( ) = node2
47- }
48- }
45+ // predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
46+ // node1.(AdditionalFlowInputStep).getOutput() = node2
47+ // }
48+ // }
4949
5050
5151
52- // // TODO: I think this will be inefficient, no?
53- // class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal {
54- // override DataFlow::Node getOutputNode() {
55- // result.asExpr() = this
56- // }
52+ // // // TODO: I think this will be inefficient, no?
53+ // // class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal {
54+ // // override DataFlow::Node getOutputNode() {
55+ // // result.asExpr() = this
56+ // // }
5757
58- // override predicate flowsTo(Crypto::FlowAwareElement other) {
59- // // TODO: separate config to avoid blowing up data-flow analysis
60- // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode())
61- // }
58+ // // override predicate flowsTo(Crypto::FlowAwareElement other) {
59+ // // // TODO: separate config to avoid blowing up data-flow analysis
60+ // // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode())
61+ // // }
6262
63- // override string getAdditionalDescription() { result = this.toString() }
64- // }
63+ // // override string getAdditionalDescription() { result = this.toString() }
64+ // // }
6565
66- /**
67- * Definitions of various generic data sources
68- */
69- // final class DefaultFlowSource = SourceNode;
66+ // / **
67+ // * Definitions of various generic data sources
68+ // */
69+ // // final class DefaultFlowSource = SourceNode;
7070
71- // final class DefaultRemoteFlowSource = RemoteFlowSource;
71+ // // final class DefaultRemoteFlowSource = RemoteFlowSource;
7272
73- // class GenericLocalDataSource extends Crypto::GenericLocalDataSource {
74- // GenericLocalDataSource() {
75- // any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this
76- // }
73+ // // class GenericLocalDataSource extends Crypto::GenericLocalDataSource {
74+ // // GenericLocalDataSource() {
75+ // // any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this
76+ // // }
7777
78- // override DataFlow::Node getOutputNode() { result.asExpr() = this }
78+ // // override DataFlow::Node getOutputNode() { result.asExpr() = this }
7979
80- // override predicate flowsTo(Crypto::FlowAwareElement other) {
81- // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode())
82- // }
80+ // // override predicate flowsTo(Crypto::FlowAwareElement other) {
81+ // // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode())
82+ // // }
8383
84- // override string getAdditionalDescription() { result = this.toString() }
85- // }
84+ // // override string getAdditionalDescription() { result = this.toString() }
85+ // // }
8686
87- // class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource {
88- // GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this }
87+ // // class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource {
88+ // // GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this }
8989
90- // override DataFlow::Node getOutputNode() { result.asExpr() = this }
90+ // // override DataFlow::Node getOutputNode() { result.asExpr() = this }
9191
92- // override predicate flowsTo(Crypto::FlowAwareElement other) {
93- // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode())
94- // }
92+ // // override predicate flowsTo(Crypto::FlowAwareElement other) {
93+ // // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode())
94+ // // }
9595
96- // override string getAdditionalDescription() { result = this.toString() }
97- // }
96+ // // override string getAdditionalDescription() { result = this.toString() }
97+ // // }
9898
9999
100- module GenericDataSourceUniversalFlow = DataFlow:: Global< GenericDataSourceUniversalFlowConfig > ;
100+ // module GenericDataSourceUniversalFlow = DataFlow::Global<GenericDataSourceUniversalFlowConfig>;
101101
102102module ArtifactUniversalFlowConfig implements DataFlow:: ConfigSig {
103103 predicate isSource ( DataFlow:: Node source ) {
0 commit comments