· 7 years ago · Jul 31, 2018, 01:26 PM
1Forward solving query: AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher]
2Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))
3Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))
4AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Nodes: 5
5AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Field Aut: 5
6AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Field Aut (failed Additions): 0
7AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Field Aut (failed Direct Additions): 0
8AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Call Aut: 5
9AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Call Aut (failed Additions): 4
10Total number of rules: 8
11========================
12AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher]
13========================
14class boomerang.WeightedBoomerang$7
15All reachable states
16(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))
17Field WPDS (#Rules: 4)
18 NormalRules:
19 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
20 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
21 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
22 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
23 PopRules:
24
25 PushRules:
26
27digraph {
28 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
29 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
30 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
31 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
32 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
33}
34Transitions: 5 Nested: 0
35End nesting
36
37Call WPDS (#Rules: 4)
38 NormalRules:
39 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">(Weight: [2 -> ERR with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>], -1 -> ERR with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[])>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] update(byte[])>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>, <javax.crypto.Cipher: byte[] update(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>, <javax.crypto.Cipher: int update(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[],int)>], 3 -> ERR with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>], 0 -> 1 with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>], 1 -> ERR with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>]])
40 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>(ONE)
41 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>(Weight: [-1 -> ERR with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[])>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] update(byte[])>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>, <javax.crypto.Cipher: byte[] update(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>, <javax.crypto.Cipher: int update(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[],int)>], 0 -> ERR with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[])>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: byte[] update(byte[])>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: byte[] doFinal(byte[])>, <javax.crypto.Cipher: byte[] update(byte[],int,int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: int update(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[],int)>], 2 -> 2 with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>], 3 -> 2 with [<javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: byte[] doFinal(byte[])>], 1 -> 2 with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>]])
42 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>(ONE)
43 PopRules:
44
45 PushRules:
46
47digraph {
48 "ENTRY: r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)" -> "ENTRY: r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: Weight: [-1 -> 1]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: Weight: [-1 -> 1]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: Weight: [-1 -> 0 with [<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>]]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: Weight: [-1 -> 1]"];
49}
50Transitions: 5 Nested: 0
51End nesting
52
53===== end === class boomerang.WeightedBoomerang$7
54<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
55(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 {})=Weight: [-1 -> 1]
56 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 {})=Weight: [-1 -> 2]
57 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 {})=Weight: [-1 -> 1]
58 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 {})=Weight: [-1 -> 1]
59 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 {})=Weight: [-1 -> 0 with [<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>]]
60Forward solving query: AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher]
61AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Nodes: 5
62AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Field Aut: 5
63AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Field Aut (failed Additions): 0
64AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Field Aut (failed Direct Additions): 0
65AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Call Aut: 5
66AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher] Call Aut (failed Additions): 4
67Total number of rules: 8
68========================
69AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) with spec Cipher]
70========================
71class boomerang.WeightedBoomerang$7
72All reachable states
73(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))
74Field WPDS (#Rules: 4)
75 NormalRules:
76 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
77 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
78 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
79 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0));*>(ONE)
80 PopRules:
81
82 PushRules:
83
84digraph {
85 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
86 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
87 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
88 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
89 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))"[label="{} W: ONE"];
90}
91Transitions: 5 Nested: 0
92End nesting
93
94Call WPDS (#Rules: 4)
95 NormalRules:
96 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">(Weight: [2 -> ERR with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>], -1 -> ERR with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[])>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] update(byte[])>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>, <javax.crypto.Cipher: byte[] update(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>, <javax.crypto.Cipher: int update(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[],int)>], 3 -> ERR with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>], 0 -> 1 with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>], 1 -> ERR with [<javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>]])
97 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>(ONE)
98 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>(Weight: [-1 -> ERR with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[])>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.Cipher: byte[] update(byte[])>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>, <javax.crypto.Cipher: byte[] update(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate,java.security.SecureRandom)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.SecureRandom)>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: void init(int,java.security.Key)>, <javax.crypto.Cipher: void init(int,java.security.cert.Certificate)>, <javax.crypto.Cipher: void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)>, <javax.crypto.Cipher: int update(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[],int)>], 0 -> ERR with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[])>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: byte[] update(byte[])>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: byte[] doFinal(byte[])>, <javax.crypto.Cipher: byte[] update(byte[],int,int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>, <javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: int update(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int update(byte[],int,int,byte[],int)>], 2 -> 2 with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>], 3 -> 2 with [<javax.crypto.Cipher: int doFinal(byte[],int)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: byte[] doFinal()>, <javax.crypto.Cipher: byte[] doFinal(byte[])>], 1 -> 2 with [<javax.crypto.Cipher: int doFinal(byte[],int,int,byte[],int)>, <javax.crypto.Cipher: int doFinal(java.nio.ByteBuffer,java.nio.ByteBuffer)>, <javax.crypto.Cipher: int doFinal(byte[],int,int,byte[])>, <javax.crypto.Cipher: byte[] doFinal(byte[],int,int)>, <javax.crypto.Cipher: byte[] doFinal(byte[])>]])
99 <r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>(ONE)
100 PopRules:
101
102 PushRules:
103
104digraph {
105 "ENTRY: r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)" -> "ENTRY: r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: Weight: [-1 -> 1]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: Weight: [-1 -> 1]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: Weight: [-1 -> 0 with [<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>]]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: Weight: [-1 -> 1]"];
106}
107Transitions: 5 Nested: 0
108End nesting
109
110===== end === class boomerang.WeightedBoomerang$7
111<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
112(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r3 {})=Weight: [-1 -> 1]
113 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r3 {})=Weight: [-1 -> 2]
114 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r3 {})=Weight: [-1 -> 1]
115 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r3 {})=Weight: [-1 -> 1]
116 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 {})=Weight: [-1 -> 0 with [<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>, <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>]]
117Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
118Forward solving query: ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES")
119BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Nodes: 5
120BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut: 5
121BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut (failed Additions): 0
122BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut (failed Direct Additions): 0
123BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Call Aut: 5
124BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Call Aut (failed Additions): 4
125ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") Nodes: 9
126ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") Field Aut: 19
127ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") Field Aut (failed Additions): 0
128ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") Field Aut (failed Direct Additions): 0
129ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") Call Aut: 9
130ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") Call Aut (failed Additions): 8
131Total number of rules: 24
132========================
133BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
134========================
135class boomerang.WeightedBoomerang$5
136All reachable states
137(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator nop,"AES" (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
138Field WPDS (#Rules: 4)
139 NormalRules:
140 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
141 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
142 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
143 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator nop,"AES" (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
144 PopRules:
145
146 PushRules:
147
148digraph {
149 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
150 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator nop,AES (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
151 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
152 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
153 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
154}
155Transitions: 5 Nested: 0
156End nesting
157
158Call WPDS (#Rules: 4)
159 NormalRules:
160 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128)>
161 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128)>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES")>
162 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES")>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES">
163 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES">-><"AES" (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator nop>
164 PopRules:
165
166 PushRules:
167
168digraph {
169 "AES (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator nop W: "];
170 "ENTRY: r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey() W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES) W: "];
171}
172Transitions: 5 Nested: 0
173End nesting
174
175===== end === class boomerang.WeightedBoomerang$5
176<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
177(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator nop,"AES" {})=
178 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 {})=
179 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r0 {})=
180 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 {})=
181 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 {})=
182========================
183ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = "AES",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES")
184========================
185class boomerang.WeightedBoomerang$7
186All reachable states
187(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES")
188(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES") (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES")
189Field WPDS (#Rules: 8)
190 NormalRules:
191 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
192 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
193 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
194 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
195 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
196 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
197 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
198 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES");*>
199 PopRules:
200
201 PushRules:
202
203digraph {
204 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
205 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
206 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
207 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
208 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
209 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
210 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
211 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
212 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
213 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
214 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
215 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
216 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
217 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
218 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
219 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
220 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
221 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES) value"[label="value W: "];
222 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r0 = AES,r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES)"[label="{} W: "];
223}
224Transitions: 19 Nested: 0
225End nesting
226
227Call WPDS (#Rules: 8)
228 NormalRules:
229 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128)>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>
230 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>
231 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>
232 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>
233 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>
234 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">
235 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>
236 <r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES")>-><r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: "AES";cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128)>
237 PopRules:
238
239 PushRules:
240
241digraph {
242 "ENTRY: r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES" -> "ENTRY: r0 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: AES"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey() W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES) W: "];
243}
244Transitions: 9 Nested: 0
245End nesting
246
247===== end === class boomerang.WeightedBoomerang$7
248<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
249(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r0 {{} U (value · {})})=
250 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r0 {{} U (value · {})})=
251 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r0 {{} U (value · {})})=
252 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r0 {{} U (value · {})})=
253 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r0 {{} U (value · {})})=
254 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r0 {{} U (value · {})})=
255 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r0 {{} U (value · {})})=
256 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r0 {{} U (value · {})})=
257 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r0 {{} U (value · {})})=
258Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
259Forward solving query: ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())
260BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Nodes: 3
261BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut: 3
262BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut (failed Additions): 0
263BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut (failed Direct Additions): 0
264BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Call Aut: 3
265BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Call Aut (failed Additions): 2
266ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) Nodes: 6
267ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) Field Aut: 6
268ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) Field Aut (failed Additions): 0
269ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) Field Aut (failed Direct Additions): 0
270ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) Call Aut: 6
271ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) Call Aut (failed Additions): 5
272Total number of rules: 14
273========================
274BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
275========================
276class boomerang.WeightedBoomerang$5
277All reachable states
278(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>() (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
279Field WPDS (#Rules: 2)
280 NormalRules:
281 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
282 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>() (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
283 PopRules:
284
285 PushRules:
286
287digraph {
288 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
289 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
290 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>() (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
291}
292Transitions: 3 Nested: 0
293End nesting
294
295Call WPDS (#Rules: 2)
296 NormalRules:
297 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>-><virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>() (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128)>
298 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>
299 PopRules:
300
301 PushRules:
302
303digraph {
304 "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey() W: "];
305 "virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>() (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128) W: "];
306}
307Transitions: 3 Nested: 0
308End nesting
309
310===== end === class boomerang.WeightedBoomerang$5
311<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
312(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 {})=
313 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 {})=
314 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>() {})=
315========================
316ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())
317========================
318class boomerang.WeightedBoomerang$7
319All reachable states
320(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())
321Field WPDS (#Rules: 5)
322 NormalRules:
323 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>
324 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>
325 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>
326 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>
327 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>
328 PopRules:
329
330 PushRules:
331
332digraph {
333 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: "];
334 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: "];
335 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: "];
336 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: "];
337 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: "];
338 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: "];
339}
340Transitions: 6 Nested: 0
341End nesting
342
343Call WPDS (#Rules: 5)
344 NormalRules:
345 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>
346 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>
347 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>
348 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>
349 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">
350 PopRules:
351
352 PushRules:
353
354digraph {
355 "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()" -> "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: "];
356}
357Transitions: 6 Nested: 0
358End nesting
359
360===== end === class boomerang.WeightedBoomerang$7
361<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
362(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 {})=
363 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 {})=
364 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 {})=
365 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 {})=
366 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 {})=
367 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 {})=
368Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
369Forward solving query: ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))
370ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)) Nodes: 7
371ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)) Field Aut: 7
372ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)) Field Aut (failed Additions): 1
373ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)) Field Aut (failed Direct Additions): 0
374ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)) Call Aut: 7
375ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)) Call Aut (failed Additions): 1
376BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Nodes: 13
377BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut: 13
378BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut (failed Additions): 1
379BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Field Aut (failed Direct Additions): 0
380BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Call Aut: 19
381BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) Call Aut (failed Additions): 20
382Total number of rules: 40
383========================
384ForwardQuery: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))
385========================
386class boomerang.WeightedBoomerang$7
387All reachable states
388(encode return $r3,$r3 (StringCoding.encode)) (encode return $r5,$r5 (StringCoding.encode)) (getBytes return $r4,$r4 (String.getBytes)) (getBytes return $r3,$r3 (String.getBytes)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) (encode return $r15,$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))
389
390Field WPDS (#Rules: 7)
391 NormalRules:
392 <(encode return $r15,$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1));*>-><(encode return $r3,$r3 (StringCoding.encode));*>
393 <(getBytes return $r3,$r3 (String.getBytes));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
394 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>
395 <(encode return $r5,$r5 (StringCoding.encode));*>-><(getBytes return $r3,$r3 (String.getBytes));*>
396 <(encode return $r3,$r3 (StringCoding.encode));*>-><(getBytes return $r3,$r3 (String.getBytes));*>
397 <(encode return $r15,$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1));*>-><(encode return $r5,$r5 (StringCoding.encode));*>
398 <(encode return $r15,$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1));*>-><(getBytes return $r4,$r4 (String.getBytes));*>
399 PopRules:
400
401 PushRules:
402
403digraph {
404 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))"[label="{} W: "];
405 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))"[label="{} W: "];
406 "(encode return $r15,$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))" -> "ENTRY: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))"[label="{} W: "];
407 "(encode return $r3,$r3 (StringCoding.encode))" -> "ENTRY: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))"[label="{} W: "];
408 "(encode return $r5,$r5 (StringCoding.encode))" -> "ENTRY: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))"[label="{} W: "];
409 "(getBytes return $r3,$r3 (String.getBytes))" -> "ENTRY: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))"[label="{} W: "];
410 "(getBytes return $r4,$r4 (String.getBytes))" -> "ENTRY: (encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1))"[label="{} W: "];
411}
412Transitions: 7 Nested: 0
413End nesting
414
415Call WPDS (#Rules: 7)
416 NormalRules:
417 <$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>
418 PopRules:
419 <$r3 (String.getBytes);getBytes return $r3>-><$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)>()
420 <$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1);encode return $r15>-><$r3 (StringCoding.encode)>()
421 <$r5 (StringCoding.encode);encode return $r5>-><$r3 (String.getBytes)>()
422 <$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1);encode return $r15>-><$r4 (String.getBytes)>()
423 <$r3 (StringCoding.encode);encode return $r3>-><$r3 (String.getBytes)>()
424 <$r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1);encode return $r15>-><$r5 (StringCoding.encode)>()
425 PushRules:
426
427digraph {
428 "$r3 (String.getBytes)" -> "ENTRY: $r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)"[label="getBytes return $r3 W: "];
429 "$r3 (StringCoding.encode)" -> "ENTRY: $r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)"[label="encode return $r3 W: "];
430 "$r4 (String.getBytes)" -> "ENTRY: $r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)"[label="getBytes return $r4 W: "];
431 "$r5 (StringCoding.encode)" -> "ENTRY: $r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)"[label="encode return $r5 W: "];
432 "$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: $r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: \ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: "];
433 "ENTRY: $r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)" -> "ENTRY: $r15 (StringCoding.encode) Value: virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)"[label="encode return $r15 W: "];
434}
435Transitions: 7 Nested: 0
436End nesting
437
438===== end === class boomerang.WeightedBoomerang$7
439<java.lang.StringCoding: byte[] encode(java.lang.String,char[],int,int)>
440(encode return $r15,$r15 {})=
441<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
442(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 {})=
443 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 {})=
444<java.lang.StringCoding: byte[] encode(char[],int,int)>
445(encode return $r3,$r3 {})=
446 (encode return $r5,$r5 {})=
447<java.lang.String: byte[] getBytes()>
448(getBytes return $r3,$r3 {})=
449<java.lang.StringCoding: void <clinit>()>
450
451<java.lang.Object: void <clinit>()>
452
453========================
454BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
455========================
456class boomerang.WeightedBoomerang$5
457All reachable states
458(encode set($r5,r11),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode)) (encode return $r3,$r3 (StringCoding.encode)) (encode return $r5,$r5 (StringCoding.encode)) (encode if $z0 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode)) (encode if $z1 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode)) (encode encode("ISO-8859-1",r0,i0,i1),$r5 (StringCoding.encode)) (getBytes encode($r2,0,$i0),$r3 (String.getBytes))
459(encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode)) (getBytes return $r3,$r3 (String.getBytes)) (encode return null,null (StringCoding.encode)) (encode return $r15,$r15 (StringCoding.encode)) (encode encode(r1,r0,i0,i1),$r3 (StringCoding.encode)) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
460Field WPDS (#Rules: 13)
461 NormalRules:
462 <(getBytes encode($r2,0,$i0),$r3 (String.getBytes));*>-><(encode return null,null (StringCoding.encode));*>
463 <(encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode));*>-><(encode if $z0 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode));*>
464 <(encode return $r5,$r5 (StringCoding.encode));*>-><(encode encode("ISO-8859-1",r0,i0,i1),$r5 (StringCoding.encode));*>
465 <(getBytes encode($r2,0,$i0),$r3 (String.getBytes));*>-><(encode return $r3,$r3 (StringCoding.encode));*>
466 <(encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode));*>-><(encode set($r5,r11),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode));*>
467 <(getBytes return $r3,$r3 (String.getBytes));*>-><(getBytes encode($r2,0,$i0),$r3 (String.getBytes));*>
468 <(encode encode("ISO-8859-1",r0,i0,i1),$r5 (StringCoding.encode));*>-><(encode return $r15,$r15 (StringCoding.encode));*>
469 <(encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode));*>-><(encode if $z1 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode));*>
470 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator));*>-><(getBytes return $r3,$r3 (String.getBytes));*>
471 <(encode return $r3,$r3 (StringCoding.encode));*>-><(encode encode(r1,r0,i0,i1),$r3 (StringCoding.encode));*>
472 <(getBytes encode($r2,0,$i0),$r3 (String.getBytes));*>-><(encode return $r5,$r5 (StringCoding.encode));*>
473 <(encode encode(r1,r0,i0,i1),$r3 (StringCoding.encode));*>-><(encode return $r15,$r15 (StringCoding.encode));*>
474 <(encode return $r15,$r15 (StringCoding.encode));*>-><(encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode));*>
475 PopRules:
476
477 PushRules:
478
479digraph {
480 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
481 "(encode encode(ISO-8859-1,r0,i0,i1),$r5 (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
482 "(encode encode(r1,r0,i0,i1),$r3 (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
483 "(encode if $z0 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
484 "(encode if $z1 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
485 "(encode r11.encode(r1,i0,i1),$r15 (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
486 "(encode return $r15,$r15 (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
487 "(encode return $r3,$r3 (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
488 "(encode return $r5,$r5 (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
489 "(encode return null,null (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
490 "(encode set($r5,r11),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
491 "(getBytes encode($r2,0,$i0),$r3 (String.getBytes))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
492 "(getBytes return $r3,$r3 (String.getBytes))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: "];
493}
494Transitions: 13 Nested: 0
495End nesting
496
497Call WPDS (#Rules: 13)
498 NormalRules:
499 <$r15 (StringCoding.encode);encode r11.encode(r1,i0,i1)>-><virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode);encode set($r5,r11)>
500 <$r15 (StringCoding.encode);encode r11.encode(r1,i0,i1)>-><virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode);encode if $z1 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)>
501 <$r15 (StringCoding.encode);encode return $r15>-><$r15 (StringCoding.encode);encode r11.encode(r1,i0,i1)>
502 <$r5 (StringCoding.encode);encode return $r5>-><$r5 (StringCoding.encode);encode encode("ISO-8859-1",r0,i0,i1)>
503 <$r3 (String.getBytes);getBytes return $r3>-><$r3 (String.getBytes);getBytes encode($r2,0,$i0)>
504 <$r3 (StringCoding.encode);encode return $r3>-><$r3 (StringCoding.encode);encode encode(r1,r0,i0,i1)>
505 <$r15 (StringCoding.encode);encode r11.encode(r1,i0,i1)>-><virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode);encode if $z0 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1)>
506 PopRules:
507
508 PushRules:
509 <$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator);cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><$r3 (String.getBytes);getBytes return $r3.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">()
510 <$r3 (StringCoding.encode);encode encode(r1,r0,i0,i1)>-><$r15 (StringCoding.encode);encode return $r15.encode $r2.name()>()
511 <$r3 (String.getBytes);getBytes encode($r2,0,$i0)>-><null (StringCoding.encode);encode return null.getBytes $i0 = lengthof $r1>()
512 <$r3 (String.getBytes);getBytes encode($r2,0,$i0)>-><$r5 (StringCoding.encode);encode return $r5.getBytes $i0 = lengthof $r1>()
513 <$r5 (StringCoding.encode);encode encode("ISO-8859-1",r0,i0,i1)>-><$r15 (StringCoding.encode);encode return $r15.encode warnUnsupportedCharset(r1)>()
514 <$r3 (String.getBytes);getBytes encode($r2,0,$i0)>-><$r3 (StringCoding.encode);encode return $r3.getBytes $i0 = lengthof $r1>()
515digraph {
516 "$r15 (StringCoding.encode) encode return $r15" -> "$r3 (StringCoding.encode) encode return $r3"[label="encode $r2.name() W: "];
517 "$r15 (StringCoding.encode) encode return $r15" -> "$r5 (StringCoding.encode) encode return $r5"[label="encode warnUnsupportedCharset(r1) W: "];
518 "$r15 (StringCoding.encode)" -> "$r15 (StringCoding.encode) encode return $r15"[label="encode return $r15 W: \nencode r11.encode(r1,i0,i1) W: "];
519 "$r3 (String.getBytes) getBytes return $r3" -> "ENTRY: $r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: "];
520 "$r3 (String.getBytes)" -> "$r3 (String.getBytes) getBytes return $r3"[label="getBytes encode($r2,0,$i0) W: \ngetBytes return $r3 W: "];
521 "$r3 (StringCoding.encode) encode return $r3" -> "$r3 (String.getBytes) getBytes return $r3"[label="getBytes $i0 = lengthof $r1 W: "];
522 "$r3 (StringCoding.encode)" -> "$r3 (StringCoding.encode) encode return $r3"[label="encode encode(r1,r0,i0,i1) W: \nencode return $r3 W: "];
523 "$r5 (StringCoding.encode) encode return $r5" -> "$r3 (String.getBytes) getBytes return $r3"[label="getBytes $i0 = lengthof $r1 W: "];
524 "$r5 (StringCoding.encode)" -> "$r5 (StringCoding.encode) encode return $r5"[label="encode encode(ISO-8859-1,r0,i0,i1) W: \nencode return $r5 W: "];
525 "ENTRY: $r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: $r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: "];
526 "null (StringCoding.encode) encode return null" -> "$r3 (String.getBytes) getBytes return $r3"[label="getBytes $i0 = lengthof $r1 W: "];
527 "null (StringCoding.encode)" -> "null (StringCoding.encode) encode return null"[label="encode return null W: "];
528 "virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) (StringCoding.encode)" -> "$r15 (StringCoding.encode) encode return $r15"[label="encode if $z1 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) W: \nencode set($r5,r11) W: \nencode if $z0 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) W: "];
529}
530Transitions: 19 Nested: 0
531End nesting
532
533===== end === class boomerang.WeightedBoomerang$5
534<java.lang.StringCoding: byte[] encode(java.lang.String,char[],int,int)>
535(encode return $r15,$r15 {})=
536 (encode if $z1 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) {})=
537 (encode r11.encode(r1,i0,i1),$r15 {})=
538 (encode set($r5,r11),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) {})=
539 (encode if $z0 != 0 goto $r15 = virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1),virtualinvoke r11.<java.lang.StringCoding$StringEncoder: byte[] encode(char[],int,int)>(r1, i0, i1) {})=
540<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
541(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),$r6 {})=
542<java.lang.StringCoding: byte[] encode(char[],int,int)>
543(encode encode("ISO-8859-1",r0,i0,i1),$r5 {})=
544 (encode return $r5,$r5 {})=
545 (encode encode(r1,r0,i0,i1),$r3 {})=
546 (encode return null,null {})=
547 (encode return $r3,$r3 {})=
548<java.lang.String: byte[] getBytes()>
549(getBytes return $r3,$r3 {})=
550 (getBytes encode($r2,0,$i0),$r3 {})=
551<java.lang.StringCoding: void <clinit>()>
552
553<java.lang.Object: void <clinit>()>
554
555<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()> First parameter (with value "AES") should be any of AES/{CBC, GCM, PCBC, CTR, CTS, CFB, OFB}
556Analysis Time: PT0.773599535S
557Estimated Time: PT1.54719907S
558Analyzed Objects: 1 of 3
559Percentage Completed: 0.33
560
561Forward solving query: AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator]
562Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"))
563Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"))
564AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Nodes: 8
565AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Field Aut: 8
566AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Field Aut (failed Additions): 0
567AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Field Aut (failed Direct Additions): 0
568AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Call Aut: 8
569AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Call Aut (failed Additions): 7
570Total number of rules: 14
571========================
572AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator]
573========================
574class boomerang.WeightedBoomerang$7
575All reachable states
576(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"))
577(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"))
578Field WPDS (#Rules: 7)
579 NormalRules:
580 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
581 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
582 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
583 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
584 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
585 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
586 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
587 PopRules:
588
589 PushRules:
590
591digraph {
592 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
593 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
594 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
595 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
596 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
597 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
598 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
599 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
600}
601Transitions: 8 Nested: 0
602End nesting
603
604Call WPDS (#Rules: 7)
605 NormalRules:
606 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>(ONE)
607 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>(ONE)
608 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>(ONE)
609 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>(Weight: [1 -> ERR with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>, <javax.crypto.KeyGenerator: void init(int)>], -1 -> ERR with [<javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(int)>], 0 -> 1 with [<javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(int)>], 2 -> ERR with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>, <javax.crypto.KeyGenerator: void init(int)>]])
610 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>(ONE)
611 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">(ONE)
612 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>(Weight: [0 -> 2 with [<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>], -1 -> ERR with [<javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(int)>], 2 -> ERR with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>, <javax.crypto.KeyGenerator: void init(int)>], 1 -> 2 with [<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>]])
613 PopRules:
614
615 PushRules:
616
617digraph {
618 "ENTRY: r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES)" -> "ENTRY: r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0) W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey() W: Weight: [-1 -> 1]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128) W: Weight: [-1 -> 0 with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>]]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: Weight: [-1 -> 2]"];
619}
620Transitions: 8 Nested: 0
621End nesting
622
623===== end === class boomerang.WeightedBoomerang$7
624<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
625(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 {})=Weight: [-1 -> 2]
626 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 {})=Weight: [-1 -> 2]
627 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 {})=Weight: [-1 -> 1]
628 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 {})=Weight: [-1 -> 2]
629 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 {})=Weight: [-1 -> 2]
630 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 {})=Weight: [-1 -> 0 with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>]]
631 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 {})=Weight: [-1 -> 2]
632 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 {})=Weight: [-1 -> 2]
633Forward solving query: AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator]
634AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Nodes: 8
635AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Field Aut: 8
636AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Field Aut (failed Additions): 0
637AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Field Aut (failed Direct Additions): 0
638AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Call Aut: 8
639AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator] Call Aut (failed Additions): 7
640Total number of rules: 14
641========================
642AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance("AES"),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) with spec KeyGenerator]
643========================
644class boomerang.WeightedBoomerang$7
645All reachable states
646(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"))
647(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"))
648Field WPDS (#Rules: 7)
649 NormalRules:
650 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
651 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
652 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
653 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
654 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
655 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
656 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES"));*>(ONE)
657 PopRules:
658
659 PushRules:
660
661digraph {
662 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
663 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
664 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
665 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
666 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
667 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
668 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
669 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(AES),r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES))"[label="{} W: ONE"];
670}
671Transitions: 8 Nested: 0
672End nesting
673
674Call WPDS (#Rules: 7)
675 NormalRules:
676 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>(ONE)
677 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>(ONE)
678 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>(ONE)
679 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>(Weight: [1 -> ERR with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>, <javax.crypto.KeyGenerator: void init(int)>], -1 -> ERR with [<javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(int)>], 0 -> 1 with [<javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(int)>], 2 -> ERR with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>, <javax.crypto.KeyGenerator: void init(int)>]])
680 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>(ONE)
681 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">(ONE)
682 <r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey()>-><r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>(Weight: [0 -> 2 with [<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>], -1 -> ERR with [<javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(int)>], 2 -> ERR with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: void init(int,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec)>, <javax.crypto.KeyGenerator: void init(java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>, <javax.crypto.KeyGenerator: void init(java.security.SecureRandom)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>, <javax.crypto.KeyGenerator: void init(int)>], 1 -> 2 with [<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>]])
683 PopRules:
684
685 PushRules:
686
687digraph {
688 "ENTRY: r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES)" -> "ENTRY: r1 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>(AES)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0) W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey() W: Weight: [-1 -> 1]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: Weight: [-1 -> 2]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128) W: Weight: [-1 -> 0 with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>]]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: Weight: [-1 -> 2]"];
689}
690Transitions: 8 Nested: 0
691End nesting
692
693===== end === class boomerang.WeightedBoomerang$7
694<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
695(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r1 {})=Weight: [-1 -> 2]
696 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r1 {})=Weight: [-1 -> 2]
697 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r1 {})=Weight: [-1 -> 1]
698 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r1 {})=Weight: [-1 -> 2]
699 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r1 {})=Weight: [-1 -> 2]
700 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.init(128),r1 {})=Weight: [-1 -> 0 with [<javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.security.Provider)>, <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String,java.lang.String)>]]
701 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r1 {})=Weight: [-1 -> 2]
702 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r1 {})=Weight: [-1 -> 2]
703Analysis Time: PT0.799450755S
704Estimated Time: PT0.799450754S
705Analyzed Objects: 2 of 4
706Percentage Completed: 0.5
707
708Forward solving query: AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) []
709AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Nodes: 1
710AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Field Aut: 1
711AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Field Aut (failed Additions): 0
712AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Field Aut (failed Direct Additions): 0
713AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Call Aut: 1
714AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Call Aut (failed Additions): 0
715Total number of rules: 0
716========================
717AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) []
718========================
719class boomerang.WeightedBoomerang$7
720All reachable states
721(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
722Field WPDS (#Rules: 0)
723 NormalRules:
724
725 PopRules:
726
727 PushRules:
728
729digraph {
730 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: ONE"];
731}
732Transitions: 1 Nested: 0
733End nesting
734
735Call WPDS (#Rules: 0)
736 NormalRules:
737
738 PopRules:
739
740 PushRules:
741
742digraph {
743 "ENTRY: $r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: $r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: ONE"];
744}
745Transitions: 1 Nested: 0
746End nesting
747
748===== end === class boomerang.WeightedBoomerang$7
749<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
750(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 {})=ONE
751Forward solving query: AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) []
752AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Nodes: 1
753AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Field Aut: 1
754AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Field Aut (failed Additions): 0
755AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Field Aut (failed Direct Additions): 0
756AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Call Aut: 1
757AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) [] Call Aut (failed Additions): 0
758Total number of rules: 0
759========================
760AnalysisSeedWithEnsuredPredicate:(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)) []
761========================
762class boomerang.WeightedBoomerang$7
763All reachable states
764(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
765Field WPDS (#Rules: 0)
766 NormalRules:
767
768 PopRules:
769
770 PushRules:
771
772digraph {
773 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),$r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))"[label="{} W: ONE"];
774}
775Transitions: 1 Nested: 0
776End nesting
777
778Call WPDS (#Rules: 0)
779 NormalRules:
780
781 PopRules:
782
783 PushRules:
784
785digraph {
786 "ENTRY: $r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)" -> "ENTRY: $r6 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator)"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: ONE"];
787}
788Transitions: 1 Nested: 0
789End nesting
790
791===== end === class boomerang.WeightedBoomerang$7
792<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
793(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,$r6 {})=ONE
794Analysis Time: PT0.803617314S
795Estimated Time: PT0.267872438S
796Analyzed Objects: 3 of 4
797Percentage Completed: 0.75
798
799Forward solving query: AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey]
800AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Nodes: 6
801AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Field Aut: 6
802AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Field Aut (failed Additions): 0
803AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Field Aut (failed Direct Additions): 0
804AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Call Aut: 6
805AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Call Aut (failed Additions): 5
806Total number of rules: 10
807========================
808AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey]
809========================
810class boomerang.WeightedBoomerang$7
811All reachable states
812(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())
813Field WPDS (#Rules: 5)
814 NormalRules:
815 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
816 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
817 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
818 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
819 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
820 PopRules:
821
822 PushRules:
823
824digraph {
825 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
826 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
827 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
828 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
829 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
830 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
831}
832Transitions: 6 Nested: 0
833End nesting
834
835Call WPDS (#Rules: 5)
836 NormalRules:
837 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>(ONE)
838 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>(ONE)
839 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>(ONE)
840 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>(ONE)
841 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">(ONE)
842 PopRules:
843
844 PushRules:
845
846digraph {
847 "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()" -> "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0) W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: Weight: [-1 -> 0 with []]"];
848}
849Transitions: 6 Nested: 0
850End nesting
851
852===== end === class boomerang.WeightedBoomerang$7
853<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
854(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 {})=Weight: [-1 -> 0 with []]
855 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 {})=Weight: [-1 -> 0 with []]
856 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 {})=Weight: [-1 -> 0 with []]
857 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 {})=Weight: [-1 -> 0 with []]
858 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 {})=Weight: [-1 -> 0 with []]
859 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 {})=Weight: [-1 -> 0 with []]
860Forward solving query: AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey]
861AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Nodes: 6
862AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Field Aut: 6
863AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Field Aut (failed Additions): 0
864AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Field Aut (failed Direct Additions): 0
865AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Call Aut: 6
866AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey] Call Aut (failed Additions): 5
867Total number of rules: 10
868========================
869AnalysisSeed [ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) with spec SecretKey]
870========================
871class boomerang.WeightedBoomerang$7
872All reachable states
873(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()) (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())
874Field WPDS (#Rules: 5)
875 NormalRules:
876 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
877 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
878 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
879 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
880 <(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>-><(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>());*>(ONE)
881 PopRules:
882
883 PushRules:
884
885digraph {
886 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = ,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
887 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
888 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
889 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
890 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
891 "(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())" -> "ENTRY: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r1.generateKey(),r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>())"[label="{} W: ONE"];
892}
893Transitions: 6 Nested: 0
894End nesting
895
896Call WPDS (#Rules: 5)
897 NormalRules:
898 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>(ONE)
899 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>(ONE)
900 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return>(ONE)
901 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes()>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6)>(ONE)
902 <r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2)>-><r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "">(ONE)
903 PopRules:
904
905 PushRules:
906
907digraph {
908 "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()" -> "ENTRY: r2 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()"[label="cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0) W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6) W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes() W: Weight: [-1 -> 0 with []]\ncipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2) W: Weight: [-1 -> 0 with []]"];
909}
910Transitions: 6 Nested: 0
911End nesting
912
913===== end === class boomerang.WeightedBoomerang$7
914<main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
915(cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r2 {})=Weight: [-1 -> 0 with []]
916 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r2 {})=Weight: [-1 -> 0 with []]
917 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5.getBytes(),r2 {})=Weight: [-1 -> 0 with []]
918 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator return,r2 {})=Weight: [-1 -> 0 with []]
919 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator $r5 = "",r2 {})=Weight: [-1 -> 0 with []]
920 (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.doFinal($r6),r2 {})=Weight: [-1 -> 0 with []]
921Backward solving query: BackwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator r3.init(1,r2),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator))
922Forward solving query: ForwardQuery: (cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator getInstance(r0),r3 (DataFlowImprecisionExample.cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator) Value: staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0))
923Ruleset:
924 IvParameterSpec
925 AlgorithmParameters
926 SecretKeyFactory
927 Mac
928 DHParameterSpec
929 MessageDigest
930 Signature
931 KeyPair
932 RSAKeyGenParameterSpec
933 SecretKey
934 KeyPairGenerator
935 GCMParameterSpec
936 Stopwatch
937 Cipher
938 DHGenParameterSpec
939 SecureRandom
940 HMACParameterSpec
941 SecretKeySpec
942 DSAGenParameterSpec
943 DSAParameterSpec
944 PBEKeySpec
945 KeyGenerator
946 KeyStore
947 PBEParameterSpec
948
949Analyzed Objects:
950 Object:
951 Variable: r3
952 Type: javax.crypto.Cipher
953 Statement: r3 = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)
954 Method: <main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
955 SHA-256: 64f6f7c3bf59a256305cc1ba436d6bc52c37e565fa422ceec39ed23391e372ec
956 Object:
957 Variable: r1
958 Type: javax.crypto.KeyGenerator
959 Statement: r1 = staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES")
960 Method: <main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
961 SHA-256: 453804de14fc9ce4196aa0eefcc274e334a7ff24e57f0eac2c144d76ec960dca
962 Object:
963 Variable: $r6
964 Type: byte[]
965 Statement: virtualinvoke r3.<javax.crypto.Cipher: byte[] doFinal(byte[])>($r6)
966 Method: <main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
967 SHA-256: cf1f4d19353bb5bd111194200afe5a7e094dc4bf8eb25e5b39b0e10d01b882da
968 Object:
969 Variable: r2
970 Type: javax.crypto.SecretKey
971 Statement: r2 = virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>()
972 Method: <main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()>
973 SHA-256: 127241084fa7337a506717fa313ff6847a9fa79ae53c0221c11eaa68416a55b7
974
975Findings in Java Class: main.DataFlowImprecisionExample
976
977 in Method: void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator()
978 ConstraintError violating CrySL rule for Cipher (on Object #64f6f7c3bf59a256305cc1ba436d6bc52c37e565fa422ceec39ed23391e372ec)
979 First parameter (with value "AES") should be any of AES/{CBC, GCM, PCBC, CTR, CTS, CFB, OFB}
980 at statement: r3 = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0)
981
982
983======================= CogniCrypt Summary ==========================
984 Number of CrySL rules: 24
985 Number of Objects Analyzed: 4
986
987 CogniCrypt found the following violations. For details see description above.
988 ConstraintError: 1
989=====================================================================
990Static Analysis took 0 seconds!
991Analysis finished after 4 seconds
992
993java.lang.RuntimeException: Did not find all errors of type class crypto.analysis.errors.ConstraintError in method <main.DataFlowImprecisionExample: void cipherUsageExampleUsingStringConstantAsVariableInKeyGenerator()>
994
995
996public static void cipherUsageExampleUsingStringConstantAsVariableButNotInKeyGenerator() throws java.security.GeneralSecurityException
997 {
998 java.lang.String r0, $r5;
999 javax.crypto.KeyGenerator r1;
1000 javax.crypto.SecretKey r2;
1001 javax.crypto.Cipher r3;
1002 byte[] $r6;
1003
1004 nop;
1005
1006 r0 = "AES";
1007
1008 r1 = staticinvoke <javax.crypto.KeyGenerator: javax.crypto.KeyGenerator getInstance(java.lang.String)>("AES");
1009
1010 virtualinvoke r1.<javax.crypto.KeyGenerator: void init(int)>(128);
1011
1012 r2 = virtualinvoke r1.<javax.crypto.KeyGenerator: javax.crypto.SecretKey generateKey()>();
1013
1014 r3 = staticinvoke <javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String)>(r0);
1015
1016 virtualinvoke r3.<javax.crypto.Cipher: void init(int,java.security.Key)>(1, r2);
1017
1018 $r5 = "";
1019
1020 $r6 = virtualinvoke $r5.<java.lang.String: byte[] getBytes()>();
1021
1022 virtualinvoke r3.<javax.crypto.Cipher: byte[] doFinal(byte[])>($r6);
1023
1024 return;
1025 }