From 3fa7f4f7acafd05f2a04ab81618d411198d1e5e0 Mon Sep 17 00:00:00 2001 From: Marvin Vogel <91740473+marvinvo@users.noreply.github.com> Date: Sun, 3 Apr 2022 12:02:02 +0200 Subject: [PATCH 1/6] add array attribute to store seeds if parameter is an object --- .../java/crypto/analysis/EnsuredCrySLPredicate.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java b/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java index c0e119139..af1dc64d6 100644 --- a/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java +++ b/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java @@ -10,10 +10,22 @@ public class EnsuredCrySLPredicate { private final CrySLPredicate predicate; private final Multimap parametersToValues; + private IAnalysisSeed[] seedsForParameters; public EnsuredCrySLPredicate(CrySLPredicate predicate, Multimap parametersToValues2) { this.predicate = predicate; parametersToValues = parametersToValues2; + seedsForParameters = new IAnalysisSeed[predicate.getParameters().size()]; + } + + public void addAnalysisSeedToParameter(IAnalysisSeed seed, int paramPosition) { + if(paramPosition < predicate.getParameters().size()) { + seedsForParameters[paramPosition] = seed; + } + } + + public IAnalysisSeed[] getParameterToAnalysisSeed() { + return seedsForParameters; } public CrySLPredicate getPredicate(){ From d0b0321ad51067a82432bc2b3d568b97a10cb28e Mon Sep 17 00:00:00 2001 From: Marvin Vogel <91740473+marvinvo@users.noreply.github.com> Date: Sun, 3 Apr 2022 12:02:54 +0200 Subject: [PATCH 2/6] Extend predicate parameter check to also compare objects not just non-trackable values --- .../AnalysisSeedWithSpecification.java | 236 ++++++++++++++---- 1 file changed, 189 insertions(+), 47 deletions(-) diff --git a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java index f78e6fae0..31cd365b6 100644 --- a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java +++ b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java @@ -56,6 +56,7 @@ import soot.jimple.Constant; import soot.jimple.IntConstant; import soot.jimple.InvokeExpr; +import soot.jimple.InvokeStmt; import soot.jimple.Stmt; import soot.jimple.StringConstant; import soot.jimple.ThrowStmt; @@ -262,19 +263,21 @@ private void ensuresPred(CrySLPredicate predToBeEnsured, Statement currStmt, Sta for (CrySLMethod crySLMethod : convert) { Entry retObject = crySLMethod.getRetObject(); - if (!retObject.getKey().equals("_") && currStmt.getUnit().get() instanceof AssignStmt && predicateParameterEquals(predToBeEnsured.getParameters(), retObject.getKey())) { + int paramEqualsAt = predicateParameterEqualsAt(predToBeEnsured.getParameters(), retObject.getKey()); + if (!retObject.getKey().equals("_") && currStmt.getUnit().get() instanceof AssignStmt && paramEqualsAt > -1) { AssignStmt as = (AssignStmt) currStmt.getUnit().get(); Value leftOp = as.getLeftOp(); AllocVal val = new AllocVal(leftOp, currStmt.getMethod(), as.getRightOp(), new Statement(as, currStmt.getMethod())); - expectPredicateOnOtherObject(predToBeEnsured, currStmt, val, satisfiesConstraintSytem); + expectPredicateOnOtherObject(predToBeEnsured, currStmt, val, satisfiesConstraintSytem, paramEqualsAt); } int i = 0; for (Entry p : crySLMethod.getParameters()) { - if (predicateParameterEquals(predToBeEnsured.getParameters(), p.getKey())) { + paramEqualsAt = predicateParameterEqualsAt(predToBeEnsured.getParameters(), p.getKey()); + if (paramEqualsAt > -1) { Value param = ie.getArg(i); if (param instanceof Local) { Val val = new Val(param, currStmt.getMethod()); - expectPredicateOnOtherObject(predToBeEnsured, currStmt, val, satisfiesConstraintSytem); + expectPredicateOnOtherObject(predToBeEnsured, currStmt, val, satisfiesConstraintSytem, paramEqualsAt); } } i++; @@ -285,16 +288,17 @@ private void ensuresPred(CrySLPredicate predToBeEnsured, Statement currStmt, Sta } } - private boolean predicateParameterEquals(List parameters, String key) { - for (ICrySLPredicateParameter predicateParam : parameters) { + private int predicateParameterEqualsAt(List parameters, String key) { + for(int i=0; i(currStmt, accessGraph)); predicateHandler.expectPredicate(seed, currStmt, predToBeEnsured); if (satisfiesConstraintSytem) { - seed.addEnsuredPredicate(new EnsuredCrySLPredicate(predToBeEnsured, parameterAnalysis.getCollectedValues())); + EnsuredCrySLPredicate ensPred = new EnsuredCrySLPredicate(predToBeEnsured, parameterAnalysis.getCollectedValues()); + ensPred.addAnalysisSeedToParameter(seed, paramMatchPosition); + seed.addEnsuredPredicate(ensPred); } else { missingPredicates.add(new RequiredCrySLPredicate(predToBeEnsured, currStmt)); } @@ -344,7 +352,9 @@ private void expectPredicateWhenThisObjectIsInState(State stateNode, Statement c // TODO check for any reachable state that don't kill // predicates. if (containsTargetState(e.getValue(), stateNode)) { - predicateHandler.addNewPred(this, e.getRowKey(), e.getColumnKey(), new EnsuredCrySLPredicate(predToBeEnsured, parameterAnalysis.getCollectedValues())); + EnsuredCrySLPredicate ensuredPred = new EnsuredCrySLPredicate(predToBeEnsured, parameterAnalysis.getCollectedValues()); + predicateHandler.addNewPred(this, e.getRowKey(), e.getColumnKey(), ensuredPred); + ensuredPred.addAnalysisSeedToParameter(this, 0); // by definition, "this" can only be at first position in parameter list } } } @@ -473,49 +483,181 @@ private boolean evaluatePredCond(CrySLPredicate pred) { } private boolean doPredsMatch(CrySLPredicate pred, EnsuredCrySLPredicate ensPred) { - boolean requiredPredicatesExist = true; - for (int i = 0; i < pred.getParameters().size(); i++) { - String var = pred.getParameters().get(i).getName(); - if (isOfNonTrackableType(var)) { + if(pred.getParameters().size() != ensPred.getParameterToAnalysisSeed().length) { + return false; + } + for(int i=0; i actVals = Collections.emptySet(); - Collection expVals = Collections.emptySet(); - - for (CallSiteWithParamIndex cswpi : ensPred.getParametersToValues().keySet()) { - if (cswpi.getVarName().equals(parameterI)) { - actVals = retrieveValueFromUnit(cswpi, ensPred.getParametersToValues().get(cswpi)); - } + } + IAnalysisSeed seedAtParamI = ensPred.getParameterToAnalysisSeed()[i]; + if(param.getName().equals("this")){ + if((seedAtParamI == null || !seedAtParamI.equals(this))) { + // this is not this seed + return false; } - for (CallSiteWithParamIndex cswpi : parameterAnalysis.getCollectedValues().keySet()) { - if (cswpi.getVarName().equals(var)) { - expVals = retrieveValueFromUnit(cswpi, parameterAnalysis.getCollectedValues().get(cswpi)); - } + else { + // this is also this seed + continue; } - - String splitter = ""; - int index = -1; - if (pred.getParameters().get(i) instanceof CrySLObject) { - CrySLObject obj = (CrySLObject) pred.getParameters().get(i); - if (obj.getSplitter() != null) { - splitter = obj.getSplitter().getSplitter(); - index = obj.getSplitter().getIndex(); + } + if(param instanceof CrySLMethod) { + // methods are only defined for prefined predicates (noCallTo etc.) + return false; + } + if(param instanceof CrySLObject) { + CrySLObject paramObj = (CrySLObject) param; + + if(!isOfNonTrackableType(param.getName())) { + // try to collect expected values for param + Collection expVals = Collections.emptySet(); + for (CallSiteWithParamIndex cswpi : parameterAnalysis.getCollectedValues().keySet()) { + if (cswpi.getVarName().equals(param.getName())) { + expVals = retrieveValueFromUnit(cswpi, parameterAnalysis.getCollectedValues().get(cswpi)); + } } - } - for (String foundVal : expVals) { - if (index > -1) { - foundVal = foundVal.split(splitter)[index]; + + if(!expVals.isEmpty()) { + // required predicate holds a value, not an object + Collection actVals = Collections.emptySet(); + for (CallSiteWithParamIndex cswpi : ensPred.getParametersToValues().keySet()) { + if (cswpi.getVarName().equals(ensPred.getPredicate().getParameters().get(i).getName())) { + actVals = retrieveValueFromUnit(cswpi, ensPred.getParametersToValues().get(cswpi)); + } + } + String splitter = ""; + int index = -1; + if (paramObj.getSplitter() != null) { + splitter = paramObj.getSplitter().getSplitter(); + index = paramObj.getSplitter().getIndex(); + } + for (String foundVal : expVals) { + if (index > -1) { + foundVal = foundVal.split(splitter)[index]; + } + actVals = actVals.parallelStream().map(e -> e.toLowerCase()).collect(Collectors.toList()); + if(!actVals.contains(foundVal.toLowerCase())) { + return false; + } + } + } + } else { + // TODO Refactor + // required predicate could still be references to other objects + IAnalysisSeed ensSeed = ensPred.getParameterToAnalysisSeed()[i]; + IAnalysisSeed reqSeed = null; + if(ensSeed != null) { + Stmt ensStmt = ensSeed.stmt().getUnit().get(); + if(ensSeed instanceof AnalysisSeedWithSpecification) { + AnalysisSeedWithSpecification ensSeedWithSpec = (AnalysisSeedWithSpecification) ensSeed; + String ensClassName = ensSeedWithSpec.getSpec().getRule().getClassName(); + + checkValues: + for (CallSiteWithParamIndex cswpi : parameterAnalysis.getCollectedValues().keySet()) { + if (cswpi.getVarName().equals(param.getName())) { + for(ExtractedValue q : parameterAnalysis.getCollectedValues().get(cswpi)) { + // q is a value, that matches + + if(ensStmt instanceof AssignStmt && q.stmt().getUnit().get() instanceof AssignStmt) { + // important for classes such as SecretKey, where the seed statement is an assign statement + AssignStmt qStmt = (AssignStmt) q.stmt().getUnit().get(); + RefType qRefType = (RefType) qStmt.getLeftOpBox().getValue().getType(); + String qClassName = qRefType.getSootClass().getName(); + String qShortClassName = qRefType.getSootClass().getShortName(); + + if(!ensClassName.equals(qClassName) && !ensClassName.equals(qShortClassName)) { + // the required seed cannot match the ensured seed + // they must specify the same class + continue; + } + if(!ensStmt.toString().equals(qStmt.toString())) { + // the required seed cannot match the ensured seed + // they must be defined on the same statement + continue; + } + + for (ClassSpecification spec : cryptoScanner.getClassSpecifictions()) { + // check if refType is matching type of spec + if (spec.getRule().getClassName().equals(qClassName) || spec.getRule().getClassName().equals(qShortClassName)) { + AllocVal val = new AllocVal(qStmt.getLeftOp(), q.stmt().getMethod(), qStmt.getRightOp(), new Statement(qStmt, q.stmt().getMethod())); + reqSeed = this.cryptoScanner.getOrCreateSeedWithSpec(new AnalysisSeedWithSpecification(this.cryptoScanner, q.stmt(), val, spec)); + break checkValues; + } + } + } + else if(ensStmt instanceof InvokeStmt && q.stmt().getUnit().get() instanceof InvokeStmt) { + // important for classes such as SecretKey, where the seed statement is an assign statement + InvokeStmt qStmt = (InvokeStmt) q.stmt().getUnit().get(); + Val val = new Val(q.getValue(), q.stmt().getMethod()); + if(val.getType() instanceof RefType) { + RefType qRefType = (RefType) val.getType(); + String qClassName = qRefType.getSootClass().getName(); + String qShortClassName = qRefType.getSootClass().getShortName(); + + if(!ensClassName.equals(qClassName) && !ensClassName.equals(qShortClassName)) { + // the required seed cannot match the ensured seed + // they must specify the same class + continue; + } + if(!ensStmt.toString().equals(qStmt.toString())) { + // the required seed cannot match the ensured seed + // they must be defined on the same statement + continue; + } + + for (ClassSpecification spec : cryptoScanner.getClassSpecifictions()) { + // check if refType is matching type of spec + if (spec.getRule().getClassName().equals(qClassName) || spec.getRule().getClassName().equals(qShortClassName)) { + reqSeed = this.cryptoScanner.getOrCreateSeedWithSpec(new AnalysisSeedWithSpecification(this.cryptoScanner, q.stmt(), val, spec)); + break checkValues; + } + } + } + } + } + } + } + } + else { + AnalysisSeedWithEnsuredPredicate ensSeedWithEnsPred = (AnalysisSeedWithEnsuredPredicate) ensSeed; + checkValues: + for (CallSiteWithParamIndex cswpi : parameterAnalysis.getCollectedValues().keySet()) { + if (cswpi.getVarName().equals(param.getName())) { + for(ExtractedValue q : parameterAnalysis.getCollectedValues().get(cswpi)) { + if(ensStmt instanceof AssignStmt && q.stmt().getUnit().get() instanceof AssignStmt) { + AssignStmt as = (AssignStmt) q.stmt().getUnit().get(); + Value leftOp = as.getLeftOp(); + AllocVal val = new AllocVal(leftOp, q.stmt().getMethod(), as.getRightOp(), new Statement(as, q.stmt().getMethod())); + reqSeed = this.cryptoScanner.getOrCreateSeed(new Node(q.stmt(), val)); + break checkValues; + } + else if(ensStmt instanceof InvokeStmt && q.stmt().getUnit().get() instanceof InvokeStmt) { + Val val = new Val(q.getValue(), q.stmt().getMethod()); + reqSeed = this.cryptoScanner.getOrCreateSeed(new Node(q.stmt(), val)); + break checkValues; + } + else { + // TODO this should be done better + if(q.stmt().getMethod().getActiveBody().getUnits().contains(ensStmt)) { + reqSeed = ensSeed; + } + } + } + } + } + + } + + } + if(reqSeed == null || !reqSeed.equals(ensSeed)) { + return false; } - actVals = actVals.parallelStream().map(e -> e.toLowerCase()).collect(Collectors.toList()); - requiredPredicatesExist &= actVals.contains(foundVal.toLowerCase()); } - } else { - requiredPredicatesExist = false; } } - return pred.isNegated() != requiredPredicatesExist; + return true; } private Collection retrieveValueFromUnit(CallSiteWithParamIndex cswpi, Collection collection) { From 458f041276ab41b45636f2ff185267459c39ed82 Mon Sep 17 00:00:00 2001 From: Marvin Vogel <91740473+marvinvo@users.noreply.github.com> Date: Sun, 3 Apr 2022 12:08:24 +0200 Subject: [PATCH 3/6] Extend hashcode by including information about parameters --- .../java/crypto/analysis/EnsuredCrySLPredicate.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java b/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java index af1dc64d6..7c9ce4cda 100644 --- a/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java +++ b/CryptoAnalysis/src/main/java/crypto/analysis/EnsuredCrySLPredicate.java @@ -1,5 +1,7 @@ package crypto.analysis; +import java.util.Map.Entry; + import com.google.common.collect.Multimap; import crypto.extractparameter.CallSiteWithParamIndex; @@ -46,6 +48,14 @@ public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((predicate == null) ? 0 : predicate.hashCode()); + + for(Entry e: parametersToValues.entries()) { + result = prime * result + e.getValue().hashCode(); + } + for(IAnalysisSeed seed: seedsForParameters) { + result = prime * result + ((seed != null) ? seed.hashCode() : 0); + } + return result; } From 1c741bb9454ac2e657ae874086a484e7631a5eba Mon Sep 17 00:00:00 2001 From: Marvin Vogel <91740473+marvinvo@users.noreply.github.com> Date: Sun, 3 Apr 2022 13:10:51 +0200 Subject: [PATCH 4/6] Refactor predicate check method --- .../AnalysisSeedWithSpecification.java | 96 ++++++------------- 1 file changed, 30 insertions(+), 66 deletions(-) diff --git a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java index 31cd365b6..051020cd6 100644 --- a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java +++ b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java @@ -353,8 +353,8 @@ private void expectPredicateWhenThisObjectIsInState(State stateNode, Statement c // predicates. if (containsTargetState(e.getValue(), stateNode)) { EnsuredCrySLPredicate ensuredPred = new EnsuredCrySLPredicate(predToBeEnsured, parameterAnalysis.getCollectedValues()); - predicateHandler.addNewPred(this, e.getRowKey(), e.getColumnKey(), ensuredPred); ensuredPred.addAnalysisSeedToParameter(this, 0); // by definition, "this" can only be at first position in parameter list + predicateHandler.addNewPred(this, e.getRowKey(), e.getColumnKey(), ensuredPred); } } } @@ -390,84 +390,48 @@ private boolean checkPredicates(Collection relConstraints) { requiredPredicates.add(con); } } - Set remainingPredicates = Sets.newHashSet(requiredPredicates); - missingPredicates.removeAll(remainingPredicates); - - for (ISLConstraint pred : requiredPredicates) { + Set remainingRequiredPredicates = Sets.newHashSet(); + for(ISLConstraint pred: requiredPredicates) { if (pred instanceof RequiredCrySLPredicate) { RequiredCrySLPredicate reqPred = (RequiredCrySLPredicate) pred; - if (reqPred.getPred().isNegated()) { - for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { - if (ensPred.getPredicate().equals(reqPred.getPred())) { - return false; + if(!evaluatePredCond(reqPred.getPred())) { + // condition is satisfied, hence the pred has to be satisfied too + if(reqPred.getPred().isNegated()){ + if(this.ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(reqPred.getPred()) && doPredsMatch(reqPred.getPred(), ensPred))) { + // predicate is ensured, but is required to be not ensured + remainingRequiredPredicates.add(reqPred); } } - remainingPredicates.remove(pred); - } else { - for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { - if (ensPred.getPredicate().equals(reqPred.getPred()) && doPredsMatch(reqPred.getPred(), ensPred)) { - remainingPredicates.remove(pred); + else { + if(!this.ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(reqPred.getPred()) && doPredsMatch(reqPred.getPred(), ensPred))) { + // predicate is not ensured, but is required to be ensured + remainingRequiredPredicates.add(reqPred); } } } } else { - AlternativeReqPredicate alt = (AlternativeReqPredicate) pred; - List alternatives = alt.getAlternatives(); - boolean satisfied = false; - List negatives = alternatives.parallelStream().filter(e -> e.isNegated()).collect(Collectors.toList()); - - if (negatives.size() == alternatives.size()) { - for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { - if (alternatives.parallelStream().anyMatch(e -> e.getPredName().equals(ensPred.getPredicate().getPredName()))) { - return false; - } - } - remainingPredicates.remove(pred); - } else if (negatives.isEmpty()) { - for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { - if (alternatives.parallelStream().anyMatch(e -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred))) { - remainingPredicates.remove(pred); - break; - } - } - } else { - boolean neg = true; - - for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { - if (negatives.parallelStream().anyMatch(e -> e.equals(ensPred.getPredicate()))) { - neg = false; - } - - alternatives.removeAll(negatives); - if (alternatives.parallelStream().allMatch(e -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred))) { - satisfied = true; - } - - if (satisfied | neg) { - remainingPredicates.remove(pred); + List alternatives = Lists.newArrayList(((AlternativeReqPredicate) pred).getAlternatives()); + List negatives = alternatives.parallelStream().filter(e -> e.isNegated()).collect(Collectors.toList()); // holds all negated alternative preds + + if(alternatives.parallelStream().allMatch(p -> !evaluatePredCond(p))) { + // all conditions are satisfied + // TODO check if it is faster to first check positives and then negatives + if (!alternatives.isEmpty() && (negatives.isEmpty() || negatives.parallelStream().allMatch(e -> + ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred))))) { + // all negative alternative preds are ensured + List positives = alternatives.parallelStream().filter(e -> !e.isNegated()).collect(Collectors.toList()); // now check the positives + if (positives.isEmpty() || !positives.parallelStream().anyMatch(e -> + ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred)))) { + // also no positiv alternative pred is ensured + // hence the alternative pred is not ensured + remainingRequiredPredicates.add(pred); } } } - } } - - for (ISLConstraint rem : Lists.newArrayList(remainingPredicates)) { - if (rem instanceof RequiredCrySLPredicate) { - RequiredCrySLPredicate singlePred = (RequiredCrySLPredicate) rem; - if (evaluatePredCond(singlePred.getPred())) { - remainingPredicates.remove(singlePred); - } - } else if (rem instanceof CrySLConstraint) { - List altPred = ((AlternativeReqPredicate) rem).getAlternatives(); - if (altPred.parallelStream().anyMatch(e -> evaluatePredCond(e))) { - remainingPredicates.remove(rem); - } - } - } - - this.missingPredicates.addAll(remainingPredicates); - return remainingPredicates.isEmpty(); + this.missingPredicates = remainingRequiredPredicates; + return remainingRequiredPredicates.isEmpty(); } private boolean evaluatePredCond(CrySLPredicate pred) { From e0bb361331aa5e5f6e859134c9705227b29d109c Mon Sep 17 00:00:00 2001 From: Marvin Vogel <91740473+marvinvo@users.noreply.github.com> Date: Sun, 3 Apr 2022 13:45:19 +0200 Subject: [PATCH 5/6] Revert "Refactor predicate check method" This reverts commit 1c741bb9454ac2e657ae874086a484e7631a5eba. --- .../AnalysisSeedWithSpecification.java | 96 +++++++++++++------ 1 file changed, 66 insertions(+), 30 deletions(-) diff --git a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java index 051020cd6..31cd365b6 100644 --- a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java +++ b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java @@ -353,8 +353,8 @@ private void expectPredicateWhenThisObjectIsInState(State stateNode, Statement c // predicates. if (containsTargetState(e.getValue(), stateNode)) { EnsuredCrySLPredicate ensuredPred = new EnsuredCrySLPredicate(predToBeEnsured, parameterAnalysis.getCollectedValues()); - ensuredPred.addAnalysisSeedToParameter(this, 0); // by definition, "this" can only be at first position in parameter list predicateHandler.addNewPred(this, e.getRowKey(), e.getColumnKey(), ensuredPred); + ensuredPred.addAnalysisSeedToParameter(this, 0); // by definition, "this" can only be at first position in parameter list } } } @@ -390,48 +390,84 @@ private boolean checkPredicates(Collection relConstraints) { requiredPredicates.add(con); } } - Set remainingRequiredPredicates = Sets.newHashSet(); - for(ISLConstraint pred: requiredPredicates) { + Set remainingPredicates = Sets.newHashSet(requiredPredicates); + missingPredicates.removeAll(remainingPredicates); + + for (ISLConstraint pred : requiredPredicates) { if (pred instanceof RequiredCrySLPredicate) { RequiredCrySLPredicate reqPred = (RequiredCrySLPredicate) pred; - if(!evaluatePredCond(reqPred.getPred())) { - // condition is satisfied, hence the pred has to be satisfied too - if(reqPred.getPred().isNegated()){ - if(this.ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(reqPred.getPred()) && doPredsMatch(reqPred.getPred(), ensPred))) { - // predicate is ensured, but is required to be not ensured - remainingRequiredPredicates.add(reqPred); + if (reqPred.getPred().isNegated()) { + for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { + if (ensPred.getPredicate().equals(reqPred.getPred())) { + return false; } } - else { - if(!this.ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(reqPred.getPred()) && doPredsMatch(reqPred.getPred(), ensPred))) { - // predicate is not ensured, but is required to be ensured - remainingRequiredPredicates.add(reqPred); + remainingPredicates.remove(pred); + } else { + for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { + if (ensPred.getPredicate().equals(reqPred.getPred()) && doPredsMatch(reqPred.getPred(), ensPred)) { + remainingPredicates.remove(pred); } } } } else { - List alternatives = Lists.newArrayList(((AlternativeReqPredicate) pred).getAlternatives()); - List negatives = alternatives.parallelStream().filter(e -> e.isNegated()).collect(Collectors.toList()); // holds all negated alternative preds - - if(alternatives.parallelStream().allMatch(p -> !evaluatePredCond(p))) { - // all conditions are satisfied - // TODO check if it is faster to first check positives and then negatives - if (!alternatives.isEmpty() && (negatives.isEmpty() || negatives.parallelStream().allMatch(e -> - ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred))))) { - // all negative alternative preds are ensured - List positives = alternatives.parallelStream().filter(e -> !e.isNegated()).collect(Collectors.toList()); // now check the positives - if (positives.isEmpty() || !positives.parallelStream().anyMatch(e -> - ensuredPredicates.parallelStream().anyMatch(ensPred -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred)))) { - // also no positiv alternative pred is ensured - // hence the alternative pred is not ensured - remainingRequiredPredicates.add(pred); + AlternativeReqPredicate alt = (AlternativeReqPredicate) pred; + List alternatives = alt.getAlternatives(); + boolean satisfied = false; + List negatives = alternatives.parallelStream().filter(e -> e.isNegated()).collect(Collectors.toList()); + + if (negatives.size() == alternatives.size()) { + for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { + if (alternatives.parallelStream().anyMatch(e -> e.getPredName().equals(ensPred.getPredicate().getPredName()))) { + return false; + } + } + remainingPredicates.remove(pred); + } else if (negatives.isEmpty()) { + for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { + if (alternatives.parallelStream().anyMatch(e -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred))) { + remainingPredicates.remove(pred); + break; + } + } + } else { + boolean neg = true; + + for (EnsuredCrySLPredicate ensPred : ensuredPredicates) { + if (negatives.parallelStream().anyMatch(e -> e.equals(ensPred.getPredicate()))) { + neg = false; + } + + alternatives.removeAll(negatives); + if (alternatives.parallelStream().allMatch(e -> ensPred.getPredicate().equals(e) && doPredsMatch(e, ensPred))) { + satisfied = true; + } + + if (satisfied | neg) { + remainingPredicates.remove(pred); } } } + } } - this.missingPredicates = remainingRequiredPredicates; - return remainingRequiredPredicates.isEmpty(); + + for (ISLConstraint rem : Lists.newArrayList(remainingPredicates)) { + if (rem instanceof RequiredCrySLPredicate) { + RequiredCrySLPredicate singlePred = (RequiredCrySLPredicate) rem; + if (evaluatePredCond(singlePred.getPred())) { + remainingPredicates.remove(singlePred); + } + } else if (rem instanceof CrySLConstraint) { + List altPred = ((AlternativeReqPredicate) rem).getAlternatives(); + if (altPred.parallelStream().anyMatch(e -> evaluatePredCond(e))) { + remainingPredicates.remove(rem); + } + } + } + + this.missingPredicates.addAll(remainingPredicates); + return remainingPredicates.isEmpty(); } private boolean evaluatePredCond(CrySLPredicate pred) { From bb0a69110295994f52ae38b7388c9e40a48704b4 Mon Sep 17 00:00:00 2001 From: Marvin Vogel <91740473+marvinvo@users.noreply.github.com> Date: Sun, 3 Apr 2022 13:52:21 +0200 Subject: [PATCH 6/6] Minor --- ...68cfe0545493a7c8ddac4e97cdcc884ad2d8b460f0f2abc1942d575.json | 1 + ...9028a48b48b8582236a697eccb2f1facf39c9dc8a0be89eab421c24.json | 1 + ...a74374a0150e8fb907c9e25a38274128e7554f191bd5f68b27f100b.json | 1 + ...4603ddeeed2b70311655c7e80ab083fa431a705eee399fa4906fade.json | 1 + ...cbd26a9b5e97e9eb11e1c57582812121c1054ea17109e82327bb9db.json | 1 + ...24b0782d8e50a106a7a3cd55d801a7809e2b8a2d3f733e8b0991226.json | 1 + ...8ccf103a71edc0fc07d9b61729c5e29c04f12b8b4e54bd205dc51f8.json | 1 + ...545d172836fce9ad3c3ed65b170b185c366939bb59b4685de69c9f6.json | 1 + ...7cb4faa50edf9e0dc394458b2ab220a42804792340a64ab6596d80d.json | 1 + ...445a55e44b13dcf3cfe57c8aca2196b6f0ff64be5bfa917dc093ed8.json | 1 + ...15dd4ec013b3839395031ddd1f3e52f82b58d9d01a01652cc09f200.json | 1 + ...3552ea7e3a3f9566557eb3e40bb1eda65c676961f06858d9d01247d.json | 1 + ...3e05bca1328a9830eab6e513cfba61a38f022d9541ac2cd62f53a66.json | 1 + ...9af34229319033f5c95673040d972bb08a03fc047f5ffd1de0c00d9.json | 1 + ...d9d5a1bcb1a2b30609bcd6c10611f992969c416d24dda24cd53b51e.json | 1 + ...aca168d90cf789378c674032130ea6c5f0683b3fdfa6b0e4282bd45.json | 1 + ...8d4626ee501f1a9a848b5d8f74702e98c7baff431ae245c4189fa16.json | 1 + ...d6a8e299ab20038ec305192f0b3dc79dc9ad0b9438bb7c2be7e5c77.json | 1 + ...e382069f56ebf29e2cf9e5c7c64021d11e5062a7b21e40fde4758cc.json | 1 + ...d16cfc04333fdc7448e679af06bae42f913b88a9602ddb6996e31c8.json | 1 + ...bd9c779daa3aad99f3046fd866da63fc7fa78cf6294651196a5f381.json | 1 + ...f282f6f5eaed8c5c931d8996c256792d3dc81c3fcf81a206980f9bd.json | 1 + ...eefd12fd96606b3fb6b1fb3a8f6ba9cae67432061ad57eb842726b9.json | 1 + ...d98f41e16adfedaa1165d6bf343feafa721feea53c8459bd72cf000.json | 1 + ...34494fb37e69fc21bd6cfc2b1681f182a0775370d29800a62cae437.json | 1 + ...22bcc45685e22a8e17c67188888f85db3f310a3c7bf4a2e964fad46.json | 1 + ...60d1d47285e9c259cc2366bcfa702c27043ca581f8ec3f6b3d0e865.json | 1 + ...9de13cc65bcaefad0c006a5b7c378c1a262cb735bebed8870c23f32.json | 1 + ...781c4dcd7b69d8919281ffe106f6ad14642d44417f1a3a6d60ed1a0.json | 1 + ...da6d8c50b1d55f8f86c72f6ad4d24b5e09f7b034150f7e3727632a3.json | 1 + ...b30b780cdc1c3970531de973da9d339505220b24aa14f323a204d41.json | 1 + ...d0b72380cb3919533b43adc976d7737e1b6b9e969a46d491142c41a.json | 1 + ...ae0f85d96bf70e6e0f16d1f56150b5061fca9066cff9d2bdbabbc09.json | 1 + ...51f736863122ed34896d897ad5c31c1630197649ce842c6c076561c.json | 1 + ...80c64d4d4cfb61f784dac80f5b93ec7c5d67b5f17119a4cdb857117.json | 1 + .../java/crypto/analysis/AnalysisSeedWithSpecification.java | 2 +- 36 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#1016d05e68cfe0545493a7c8ddac4e97cdcc884ad2d8b460f0f2abc1942d575.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#26223f3d69028a48b48b8582236a697eccb2f1facf39c9dc8a0be89eab421c24.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#376ac43aba74374a0150e8fb907c9e25a38274128e7554f191bd5f68b27f100b.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#44d21ce2d4603ddeeed2b70311655c7e80ab083fa431a705eee399fa4906fade.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#499ca3d2ecbd26a9b5e97e9eb11e1c57582812121c1054ea17109e82327bb9db.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#49e0c957124b0782d8e50a106a7a3cd55d801a7809e2b8a2d3f733e8b0991226.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#574b6eb738ccf103a71edc0fc07d9b61729c5e29c04f12b8b4e54bd205dc51f8.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#5967cc0d2545d172836fce9ad3c3ed65b170b185c366939bb59b4685de69c9f6.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#5a1ace45d7cb4faa50edf9e0dc394458b2ab220a42804792340a64ab6596d80d.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#5cd208895445a55e44b13dcf3cfe57c8aca2196b6f0ff64be5bfa917dc093ed8.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#73857107115dd4ec013b3839395031ddd1f3e52f82b58d9d01a01652cc09f200.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#7d6fe0d393552ea7e3a3f9566557eb3e40bb1eda65c676961f06858d9d01247d.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#7fa2530d83e05bca1328a9830eab6e513cfba61a38f022d9541ac2cd62f53a66.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#8474c05b59af34229319033f5c95673040d972bb08a03fc047f5ffd1de0c00d9.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#8512234f9d9d5a1bcb1a2b30609bcd6c10611f992969c416d24dda24cd53b51e.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#85924a3eaaca168d90cf789378c674032130ea6c5f0683b3fdfa6b0e4282bd45.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#8e9d1ea268d4626ee501f1a9a848b5d8f74702e98c7baff431ae245c4189fa16.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#9129d3e06d6a8e299ab20038ec305192f0b3dc79dc9ad0b9438bb7c2be7e5c77.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#97e5cb5fae382069f56ebf29e2cf9e5c7c64021d11e5062a7b21e40fde4758cc.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#9a349afb7d16cfc04333fdc7448e679af06bae42f913b88a9602ddb6996e31c8.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#a8c9faf06bd9c779daa3aad99f3046fd866da63fc7fa78cf6294651196a5f381.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#a9dc41def282f6f5eaed8c5c931d8996c256792d3dc81c3fcf81a206980f9bd.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#ad8176411eefd12fd96606b3fb6b1fb3a8f6ba9cae67432061ad57eb842726b9.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#b446fbba1d98f41e16adfedaa1165d6bf343feafa721feea53c8459bd72cf000.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#b77bfa30934494fb37e69fc21bd6cfc2b1681f182a0775370d29800a62cae437.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#b96aae5ce22bcc45685e22a8e17c67188888f85db3f310a3c7bf4a2e964fad46.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#b9987a5f560d1d47285e9c259cc2366bcfa702c27043ca581f8ec3f6b3d0e865.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#bd3057ce69de13cc65bcaefad0c006a5b7c378c1a262cb735bebed8870c23f32.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#c30646694781c4dcd7b69d8919281ffe106f6ad14642d44417f1a3a6d60ed1a0.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#c46ad4abada6d8c50b1d55f8f86c72f6ad4d24b5e09f7b034150f7e3727632a3.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#c514fe992b30b780cdc1c3970531de973da9d339505220b24aa14f323a204d41.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#d27265dd1d0b72380cb3919533b43adc976d7737e1b6b9e969a46d491142c41a.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#db948c559ae0f85d96bf70e6e0f16d1f56150b5061fca9066cff9d2bdbabbc09.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#ef9f8db5e51f736863122ed34896d897ad5c31c1630197649ce842c6c076561c.json create mode 100644 CryptoAnalysis/cognicrypt-output/viz/ObjectId#f595bba8080c64d4d4cfb61f784dac80f5b93ec7c5d67b5f17119a4cdb857117.json diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#1016d05e68cfe0545493a7c8ddac4e97cdcc884ad2d8b460f0f2abc1942d575.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#1016d05e68cfe0545493a7c8ddac4e97cdcc884ad2d8b460f0f2abc1942d575.json new file mode 100644 index 000000000..e00e3d0dd --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#1016d05e68cfe0545493a7c8ddac4e97cdcc884ad2d8b460f0f2abc1942d575.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":22,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"directed":"true","id":"e53","source":"q1n51","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e54","source":"q1n41","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e55","source":"q1n43","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e56","source":"q1n39","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n48","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n52","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e59","source":"q1n49","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e60","source":"q1n50","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n45","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n46","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n42","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n44","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n47","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer34 = \"RSA\"","label":"varReplacer34 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer35 = \"BC\"","label":"varReplacer35 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer34, varReplacer35)","label":"r1 = staticinvoke (varReplacer34, varReplacer35)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer39 = 2048","label":"varReplacer39 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer39, $r2)","label":"virtualinvoke r1.(varReplacer39, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer37 = \"SHA1withRSAandMGF1\"","label":"varReplacer37 = \"SHA1withRSAandMGF1\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer38 = \"BC\"","label":"varReplacer38 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer37, varReplacer38)","label":"r4 = staticinvoke (varReplacer37, varReplacer38)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PSS w\/ SHA1\"","label":"$r5 = \"Testing RSA PSS w\/ SHA1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer36 = \"UTF-8\"","label":"varReplacer36 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer36)","label":"r6 = virtualinvoke $r5.(varReplacer36)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.insecurePaddingSign.PSSwSHA1Signature: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#26223f3d69028a48b48b8582236a697eccb2f1facf39c9dc8a0be89eab421c24.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#26223f3d69028a48b48b8582236a697eccb2f1facf39c9dc8a0be89eab421c24.json new file mode 100644 index 000000000..de4bdd274 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#26223f3d69028a48b48b8582236a697eccb2f1facf39c9dc8a0be89eab421c24.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":61,"label":"varReplacer2 [{}]* "},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":62,"label":"varReplacer2 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":54,"factId":61,"ideValue":"ONE","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":1470},"group":"nodes"},{"data":{"stmtId":55,"factId":62,"ideValue":"ONE","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":60,"y":1500},"group":"nodes"},{"data":{"stmtId":56,"factId":62,"ideValue":"ONE","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":60,"y":1530},"group":"nodes"},{"data":{"stmtId":58,"factId":62,"ideValue":"ONE","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":60,"y":1590},"group":"nodes"},{"data":{"stmtId":60,"factId":62,"ideValue":"ONE","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":60,"y":1620},"group":"nodes"},{"data":{"stmtId":57,"factId":62,"ideValue":"ONE","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":60,"y":1560},"group":"nodes"},{"data":{"directed":"true","id":"e69","source":"q1n68","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n64","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n65","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n63","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n66","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = newarray (byte)[32]","label":"$r0 = newarray (byte)[32]","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"stmtId":6,"shortLabel":"$r0[0] = 1","label":"$r0[0] = 1","id":"stmt6","stmtIndex":3},"classes":"stmt label method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"$r0[1] = 35","label":"$r0[1] = 35","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r0[2] = 69","label":"$r0[2] = 69","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"stmtId":9,"shortLabel":"$r0[3] = 103","label":"$r0[3] = 103","id":"stmt9","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r0[4] = -119","label":"$r0[4] = -119","id":"stmt10","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"$r0[5] = -85","label":"$r0[5] = -85","id":"stmt11","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"$r0[6] = -51","label":"$r0[6] = -51","id":"stmt12","stmtIndex":9},"classes":"stmt label method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r0[7] = -17","label":"$r0[7] = -17","id":"stmt13","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r0[8] = 1","label":"$r0[8] = 1","id":"stmt14","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r0[9] = 35","label":"$r0[9] = 35","id":"stmt15","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"$r0[10] = 69","label":"$r0[10] = 69","id":"stmt16","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"$r0[11] = 103","label":"$r0[11] = 103","id":"stmt17","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"$r0[12] = -119","label":"$r0[12] = -119","id":"stmt18","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"$r0[13] = -85","label":"$r0[13] = -85","id":"stmt19","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"$r0[14] = -51","label":"$r0[14] = -51","id":"stmt20","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"$r0[15] = -17","label":"$r0[15] = -17","id":"stmt21","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"stmtId":22,"shortLabel":"$r0[16] = 1","label":"$r0[16] = 1","id":"stmt22","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt22","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"stmtId":23,"shortLabel":"$r0[17] = 35","label":"$r0[17] = 35","id":"stmt23","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r0[18] = 69","label":"$r0[18] = 69","id":"stmt24","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r0[19] = 103","label":"$r0[19] = 103","id":"stmt25","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r0[20] = -119","label":"$r0[20] = -119","id":"stmt26","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"$r0[21] = -85","label":"$r0[21] = -85","id":"stmt27","stmtIndex":24},"classes":"stmt label method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r0[22] = -51","label":"$r0[22] = -51","id":"stmt28","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"$r0[23] = -17","label":"$r0[23] = -17","id":"stmt29","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r0[24] = 1","label":"$r0[24] = 1","id":"stmt30","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r0[25] = 35","label":"$r0[25] = 35","id":"stmt31","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"$r0[26] = 69","label":"$r0[26] = 69","id":"stmt32","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"$r0[27] = 103","label":"$r0[27] = 103","id":"stmt33","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r0[28] = -119","label":"$r0[28] = -119","id":"stmt34","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"$r0[29] = -85","label":"$r0[29] = -85","id":"stmt35","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r0[30] = -51","label":"$r0[30] = -51","id":"stmt36","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"$r0[31] = -17","label":"$r0[31] = -17","id":"stmt37","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"r1 = $r0","label":"r1 = $r0","id":"stmt38","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"shortLabel":"$r2 = new javax.crypto.spec.SecretKeySpec","label":"$r2 = new javax.crypto.spec.SecretKeySpec","id":"stmt39","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"varReplacer3 = \"HMACSHA256\"","label":"varReplacer3 = \"HMACSHA256\"","id":"stmt40","stmtIndex":37},"classes":"stmt label method2","position":{"x":10,"y":1140}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r2.(r1, varReplacer3)","label":"specialinvoke $r2.(byte[],java.lang.String)>(r1, varReplacer3)","id":"stmt41","stmtIndex":38},"classes":"stmt label callSite method2","position":{"x":10,"y":1170}},{"data":{"directed":"true","source":"stmt41","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"r3 = $r2","label":"r3 = $r2","id":"stmt43","stmtIndex":39},"classes":"stmt label method2","position":{"x":10,"y":1200}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"varReplacer0 = \"HMACSHA256\"","label":"varReplacer0 = \"HMACSHA256\"","id":"stmt44","stmtIndex":40},"classes":"stmt label method2","position":{"x":10,"y":1230}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"stmtId":45,"shortLabel":"varReplacer1 = \"SunJCE\"","label":"varReplacer1 = \"SunJCE\"","id":"stmt45","stmtIndex":41},"classes":"stmt label method2","position":{"x":10,"y":1260}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":46,"callees":[{"methodName":"<javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String,java.lang.String)>","id":47}],"shortLabel":"r4 = getInstance(varReplacer0, varReplacer1)","label":"r4 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt46","stmtIndex":42},"classes":"stmt label callSite method2","position":{"x":10,"y":1290}},{"data":{"directed":"true","source":"stmt46","target":"stmt48"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":48,"callees":[],"shortLabel":"r4.init(r3)","label":"virtualinvoke r4.(r3)","id":"stmt48","stmtIndex":43},"classes":"stmt label callSite method2","position":{"x":10,"y":1320}},{"data":{"directed":"true","source":"stmt48","target":"stmt49"},"classes":"cfgEdge label method2"},{"data":{"stmtId":49,"shortLabel":"$r5 = \"This is a test for MAC\"","label":"$r5 = \"This is a test for MAC\"","id":"stmt49","stmtIndex":44},"classes":"stmt label method2","position":{"x":10,"y":1350}},{"data":{"directed":"true","source":"stmt49","target":"stmt50"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":50,"callees":[],"shortLabel":"r6 = $r5.getBytes()","label":"r6 = virtualinvoke $r5.()","id":"stmt50","stmtIndex":45},"classes":"stmt label callSite method2","position":{"x":10,"y":1380}},{"data":{"directed":"true","source":"stmt50","target":"stmt51"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":51,"callees":[],"shortLabel":"r7 = r4.doFinal(r6)","label":"r7 = virtualinvoke r4.(r6)","id":"stmt51","stmtIndex":46},"classes":"stmt label callSite method2","position":{"x":10,"y":1410}},{"data":{"directed":"true","source":"stmt51","target":"stmt52"},"classes":"cfgEdge label method2"},{"data":{"stmtId":52,"shortLabel":"$r8 = new javax.crypto.spec.SecretKeySpec","label":"$r8 = new javax.crypto.spec.SecretKeySpec","id":"stmt52","stmtIndex":47},"classes":"stmt label method2","position":{"x":10,"y":1440}},{"data":{"directed":"true","source":"stmt52","target":"stmt53"},"classes":"cfgEdge label method2"},{"data":{"stmtId":53,"shortLabel":"varReplacer2 = \"HMACSHA256\"","label":"varReplacer2 = \"HMACSHA256\"","id":"stmt53","stmtIndex":48},"classes":"stmt label method2","position":{"x":10,"y":1470}},{"data":{"directed":"true","source":"stmt53","target":"stmt54"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":54,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r8.(r1, varReplacer2)","label":"specialinvoke $r8.(byte[],java.lang.String)>(r1, varReplacer2)","id":"stmt54","stmtIndex":49},"classes":"stmt label callSite method2","position":{"x":10,"y":1500}},{"data":{"directed":"true","source":"stmt54","target":"stmt55"},"classes":"cfgEdge label method2"},{"data":{"stmtId":55,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt55","stmtIndex":50},"classes":"stmt label method2","position":{"x":10,"y":1530}},{"data":{"directed":"true","source":"stmt55","target":"stmt56"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":56,"callees":[],"shortLabel":"r4.init(r9)","label":"virtualinvoke r4.(r9)","id":"stmt56","stmtIndex":51},"classes":"stmt label callSite method2","position":{"x":10,"y":1560}},{"data":{"directed":"true","source":"stmt56","target":"stmt57"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":57,"callees":[],"shortLabel":"r10 = r4.doFinal(r6)","label":"r10 = virtualinvoke r4.(r6)","id":"stmt57","stmtIndex":52},"classes":"stmt label callSite method2","position":{"x":10,"y":1590}},{"data":{"directed":"true","source":"stmt57","target":"stmt58"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":58,"callees":[{"methodName":"<java.security.MessageDigest: boolean isEqual(byte[],byte[])>","id":59}],"shortLabel":"z0 = isEqual(r10, r7)","label":"z0 = staticinvoke (r10, r7)","id":"stmt58","stmtIndex":53},"classes":"stmt label callSite method2","position":{"x":10,"y":1620}},{"data":{"directed":"true","source":"stmt58","target":"stmt60"},"classes":"cfgEdge label method2"},{"data":{"stmtId":60,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt60","stmtIndex":54},"classes":"stmt label returnSite method2","position":{"x":10,"y":1650}}]},"methodName":"<pkm.constantKey.ConstantKeyforMAC: void main(java.lang.String[])>","id":2}],"query":"F varReplacer2 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#376ac43aba74374a0150e8fb907c9e25a38274128e7554f191bd5f68b27f100b.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#376ac43aba74374a0150e8fb907c9e25a38274128e7554f191bd5f68b27f100b.json new file mode 100644 index 000000000..1136c63be --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#376ac43aba74374a0150e8fb907c9e25a38274128e7554f191bd5f68b27f100b.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":42,"label":"r7 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":43,"label":"r7 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":28,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":38,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":25,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":29,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":21,"factId":43,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":23,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":35,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":36,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":24,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":34,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":33,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":26,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":31,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":39,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":32,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":37,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"directed":"true","id":"e60","source":"q1n44","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n59","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n54","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n48","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n56","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n51","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n47","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n55","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n46","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n53","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n50","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n49","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n58","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n45","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n52","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r15 := @parameter0: java.lang.String[]","label":"r15 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","label":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[],"shortLabel":"r16 = $r0.getBytes()","label":"r16 = virtualinvoke $r0.()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"r1 = newarray (byte)[8]","label":"r1 = newarray (byte)[8]","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":9,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":10}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt9","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":12}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt11","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt11","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r5 = new javax.crypto.spec.DESedeKeySpec","label":"$r5 = new javax.crypto.spec.DESedeKeySpec","id":"stmt15","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":16,"callees":[{"methodName":"<javax.crypto.spec.DESedeKeySpec: void <init>(byte[])>","id":17}],"shortLabel":"$r5.(r16)","label":"specialinvoke $r5.(byte[])>(r16)","id":"stmt16","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt16","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt18","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer19 = \"DESede\"","label":"varReplacer19 = \"DESede\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer20 = \"SunJCE\"","label":"varReplacer20 = \"SunJCE\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.SecretKeyFactory: javax.crypto.SecretKeyFactory getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r7 = getInstance(varReplacer19, varReplacer20)","label":"r7 = staticinvoke (varReplacer19, varReplacer20)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"r8 = r7.generateSecret(r6)","label":"r8 = virtualinvoke r7.(r6)","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer16 = \"DESede\/CTR\/NoPadding\"","label":"varReplacer16 = \"DESede\/CTR\/NoPadding\"","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer17 = \"SunJCE\"","label":"varReplacer17 = \"SunJCE\"","id":"stmt25","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":27}],"shortLabel":"r9 = getInstance(varReplacer16, varReplacer17)","label":"r9 = staticinvoke (varReplacer16, varReplacer17)","id":"stmt26","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r10 = new javax.crypto.spec.IvParameterSpec","label":"$r10 = new javax.crypto.spec.IvParameterSpec","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":30}],"shortLabel":"$r10.(r1)","label":"specialinvoke $r10.(byte[])>(r1)","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"r11 = $r10","label":"r11 = $r10","id":"stmt31","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"varReplacer21 = 1","label":"varReplacer21 = 1","id":"stmt32","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r9.init(varReplacer21, r8, r11)","label":"virtualinvoke r9.(varReplacer21, r8, r11)","id":"stmt33","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r12 = r9.doFinal(r4)","label":"r12 = virtualinvoke r9.(r4)","id":"stmt34","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"varReplacer18 = 2","label":"varReplacer18 = 2","id":"stmt35","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":36,"callees":[],"shortLabel":"r9.init(varReplacer18, r8, r11)","label":"virtualinvoke r9.(varReplacer18, r8, r11)","id":"stmt36","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":37,"callees":[],"shortLabel":"r13 = r9.doFinal(r12)","label":"r13 = virtualinvoke r9.(r12)","id":"stmt37","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt38","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"$r14 := @caughtexception","label":"$r14 := @caughtexception","id":"stmt40","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"r17 = $r14","label":"r17 = $r14","id":"stmt41","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt41","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt39","stmtIndex":32},"classes":"stmt label returnSite method2","position":{"x":10,"y":990}}]},"methodName":"<pkm.constantKey.ConstantKey3DES: void main(java.lang.String[])>","id":2}],"query":"F r7 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#44d21ce2d4603ddeeed2b70311655c7e80ab083fa431a705eee399fa4906fade.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#44d21ce2d4603ddeeed2b70311655c7e80ab083fa431a705eee399fa4906fade.json new file mode 100644 index 000000000..a81c6cbcc --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#44d21ce2d4603ddeeed2b70311655c7e80ab083fa431a705eee399fa4906fade.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":21,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":26,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":28,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":23,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":27,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":24,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":25,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"directed":"true","id":"e68","source":"q1n56","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n59","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n58","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n62","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n49","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n54","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n51","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n64","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n48","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n52","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n60","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n53","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n67","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n50","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n61","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n54","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n47","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n66","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n57","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n63","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n65","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer18 = \"RSA\"","label":"varReplacer18 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer19 = \"BC\"","label":"varReplacer19 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer18, varReplacer19)","label":"r2 = staticinvoke (varReplacer18, varReplacer19)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer21 = 2048","label":"varReplacer21 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer21)","label":"virtualinvoke r2.(varReplacer21)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer25 = \"RSA\/ECB\/NoPadding\"","label":"varReplacer25 = \"RSA\/ECB\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer26 = \"BC\"","label":"varReplacer26 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer25, varReplacer26)","label":"r4 = staticinvoke (varReplacer25, varReplacer26)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer20 = 1","label":"varReplacer20 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer20, $r5)","label":"virtualinvoke r4.(varReplacer20, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer22 = \"RSA\/ECB\/NoPadding\"","label":"varReplacer22 = \"RSA\/ECB\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer23 = \"BC\"","label":"varReplacer23 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer22, varReplacer23)","label":"r6 = staticinvoke (varReplacer22, varReplacer23)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer24 = 2","label":"varReplacer24 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer24, $r7)","label":"virtualinvoke r6.(varReplacer24, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA1: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#499ca3d2ecbd26a9b5e97e9eb11e1c57582812121c1054ea17109e82327bb9db.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#499ca3d2ecbd26a9b5e97e9eb11e1c57582812121c1054ea17109e82327bb9db.json new file mode 100644 index 000000000..06c91193d --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#499ca3d2ecbd26a9b5e97e9eb11e1c57582812121c1054ea17109e82327bb9db.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":70,"label":"$r5 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":71,"label":"r6 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"factId":72,"label":"$r5 [{}]* "},"classes":"fact label method2","position":{"x":90,"y":0}},{"data":{"stmtId":52,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":1380},"group":"nodes"},{"data":{"stmtId":52,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":60,"y":1380},"group":"nodes"},{"data":{"stmtId":54,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n75"},"classes":"esgNode method2 ","position":{"x":30,"y":1440},"group":"nodes"},{"data":{"stmtId":54,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n76"},"classes":"esgNode method2 ","position":{"x":60,"y":1440},"group":"nodes"},{"data":{"stmtId":57,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n77"},"classes":"esgNode method2 ","position":{"x":30,"y":1500},"group":"nodes"},{"data":{"stmtId":57,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n78"},"classes":"esgNode method2 ","position":{"x":60,"y":1500},"group":"nodes"},{"data":{"stmtId":61,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n79"},"classes":"esgNode method2 ","position":{"x":30,"y":1590},"group":"nodes"},{"data":{"stmtId":61,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n80"},"classes":"esgNode method2 ","position":{"x":60,"y":1590},"group":"nodes"},{"data":{"stmtId":63,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n81"},"classes":"esgNode method2 ","position":{"x":60,"y":1650},"group":"nodes"},{"data":{"stmtId":63,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n82"},"classes":"esgNode method2 ","position":{"x":30,"y":1650},"group":"nodes"},{"data":{"stmtId":51,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n83"},"classes":"esgNode method2 ","position":{"x":30,"y":1350},"group":"nodes"},{"data":{"stmtId":51,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n84"},"classes":"esgNode method2 ","position":{"x":60,"y":1350},"group":"nodes"},{"data":{"stmtId":59,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n85"},"classes":"esgNode method2 ","position":{"x":30,"y":1530},"group":"nodes"},{"data":{"stmtId":59,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n86"},"classes":"esgNode method2 ","position":{"x":60,"y":1530},"group":"nodes"},{"data":{"stmtId":60,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n87"},"classes":"esgNode method2 ","position":{"x":30,"y":1560},"group":"nodes"},{"data":{"stmtId":60,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n88"},"classes":"esgNode method2 ","position":{"x":60,"y":1560},"group":"nodes"},{"data":{"stmtId":62,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n89"},"classes":"esgNode method2 ","position":{"x":30,"y":1620},"group":"nodes"},{"data":{"stmtId":62,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n90"},"classes":"esgNode method2 ","position":{"x":60,"y":1620},"group":"nodes"},{"data":{"stmtId":66,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n91"},"classes":"esgNode method2 ","position":{"x":60,"y":1740},"group":"nodes"},{"data":{"stmtId":66,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n92"},"classes":"esgNode method2 ","position":{"x":30,"y":1740},"group":"nodes"},{"data":{"stmtId":67,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n93"},"classes":"esgNode method2 ","position":{"x":60,"y":1830},"group":"nodes"},{"data":{"stmtId":67,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n94"},"classes":"esgNode method2 ","position":{"x":30,"y":1830},"group":"nodes"},{"data":{"stmtId":56,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n95"},"classes":"esgNode method2 ","position":{"x":60,"y":1470},"group":"nodes"},{"data":{"stmtId":56,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n96"},"classes":"esgNode method2 ","position":{"x":30,"y":1470},"group":"nodes"},{"data":{"stmtId":65,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n97"},"classes":"esgNode method2 ","position":{"x":60,"y":1710},"group":"nodes"},{"data":{"stmtId":65,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n98"},"classes":"esgNode method2 ","position":{"x":30,"y":1710},"group":"nodes"},{"data":{"stmtId":64,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n99"},"classes":"esgNode method2 ","position":{"x":60,"y":1680},"group":"nodes"},{"data":{"stmtId":64,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n100"},"classes":"esgNode method2 ","position":{"x":30,"y":1680},"group":"nodes"},{"data":{"stmtId":53,"factId":70,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n101"},"classes":"esgNode method2 ","position":{"x":30,"y":1410},"group":"nodes"},{"data":{"stmtId":53,"factId":71,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n102"},"classes":"esgNode method2 ","position":{"x":60,"y":1410},"group":"nodes"},{"data":{"stmtId":49,"factId":72,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n103"},"classes":"esgNode method2 ","position":{"x":90,"y":1320},"group":"nodes"},{"data":{"directed":"true","id":"e104","source":"q1n77","target":"q1n85","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e105","source":"q1n92","target":"q1n94","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e106","source":"q1n96","target":"q1n77","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e107","source":"q1n87","target":"q1n79","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e108","source":"q1n82","target":"q1n100","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e109","source":"q1n99","target":"q1n97","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e110","source":"q1n73","target":"q1n101","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e111","source":"q1n79","target":"q1n89","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e112","source":"q1n100","target":"q1n98","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e113","source":"q1n88","target":"q1n80","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e114","source":"q1n75","target":"q1n96","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e115","source":"q1n74","target":"q1n102","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e116","source":"q1n101","target":"q1n75","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e117","source":"q1n78","target":"q1n86","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e118","source":"q1n90","target":"q1n81","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e119","source":"q1n103","target":"q1n83","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e120","source":"q1n95","target":"q1n78","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e121","source":"q1n97","target":"q1n91","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e122","source":"q1n80","target":"q1n90","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e123","source":"q1n83","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e124","source":"q1n86","target":"q1n88","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e125","source":"q1n91","target":"q1n93","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e126","source":"q1n102","target":"q1n76","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e127","source":"q1n89","target":"q1n82","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e128","source":"q1n85","target":"q1n87","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e129","source":"q1n81","target":"q1n99","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e130","source":"q1n98","target":"q1n92","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e131","source":"q1n103","target":"q1n84","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e132","source":"q1n76","target":"q1n95","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e133","source":"q1n84","target":"q1n74","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = newarray (byte)[32]","label":"$r0 = newarray (byte)[32]","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"stmtId":6,"shortLabel":"$r0[0] = 1","label":"$r0[0] = 1","id":"stmt6","stmtIndex":3},"classes":"stmt label method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"$r0[1] = 35","label":"$r0[1] = 35","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r0[2] = 69","label":"$r0[2] = 69","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"stmtId":9,"shortLabel":"$r0[3] = 103","label":"$r0[3] = 103","id":"stmt9","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r0[4] = -119","label":"$r0[4] = -119","id":"stmt10","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"$r0[5] = -85","label":"$r0[5] = -85","id":"stmt11","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"$r0[6] = -51","label":"$r0[6] = -51","id":"stmt12","stmtIndex":9},"classes":"stmt label method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r0[7] = -17","label":"$r0[7] = -17","id":"stmt13","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r0[8] = 1","label":"$r0[8] = 1","id":"stmt14","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r0[9] = 35","label":"$r0[9] = 35","id":"stmt15","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"$r0[10] = 69","label":"$r0[10] = 69","id":"stmt16","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"$r0[11] = 103","label":"$r0[11] = 103","id":"stmt17","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"$r0[12] = -119","label":"$r0[12] = -119","id":"stmt18","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"$r0[13] = -85","label":"$r0[13] = -85","id":"stmt19","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"$r0[14] = -51","label":"$r0[14] = -51","id":"stmt20","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"$r0[15] = -17","label":"$r0[15] = -17","id":"stmt21","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"stmtId":22,"shortLabel":"$r0[16] = 1","label":"$r0[16] = 1","id":"stmt22","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt22","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"stmtId":23,"shortLabel":"$r0[17] = 35","label":"$r0[17] = 35","id":"stmt23","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r0[18] = 69","label":"$r0[18] = 69","id":"stmt24","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r0[19] = 103","label":"$r0[19] = 103","id":"stmt25","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r0[20] = -119","label":"$r0[20] = -119","id":"stmt26","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"$r0[21] = -85","label":"$r0[21] = -85","id":"stmt27","stmtIndex":24},"classes":"stmt label method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r0[22] = -51","label":"$r0[22] = -51","id":"stmt28","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"$r0[23] = -17","label":"$r0[23] = -17","id":"stmt29","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r0[24] = 1","label":"$r0[24] = 1","id":"stmt30","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r0[25] = 35","label":"$r0[25] = 35","id":"stmt31","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"$r0[26] = 69","label":"$r0[26] = 69","id":"stmt32","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"$r0[27] = 103","label":"$r0[27] = 103","id":"stmt33","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r0[28] = -119","label":"$r0[28] = -119","id":"stmt34","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"$r0[29] = -85","label":"$r0[29] = -85","id":"stmt35","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r0[30] = -51","label":"$r0[30] = -51","id":"stmt36","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"$r0[31] = -17","label":"$r0[31] = -17","id":"stmt37","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"r14 = $r0","label":"r14 = $r0","id":"stmt38","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"shortLabel":"r1 = newarray (byte)[16]","label":"r1 = newarray (byte)[16]","id":"stmt39","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt40","stmtIndex":37},"classes":"stmt label method2","position":{"x":10,"y":1140}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":42}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt41","stmtIndex":38},"classes":"stmt label callSite method2","position":{"x":10,"y":1170}},{"data":{"directed":"true","source":"stmt41","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":43,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":44}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt43","stmtIndex":39},"classes":"stmt label callSite method2","position":{"x":10,"y":1200}},{"data":{"directed":"true","source":"stmt43","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"stmtId":45,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt45","stmtIndex":40},"classes":"stmt label method2","position":{"x":10,"y":1230}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":46,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt46","stmtIndex":41},"classes":"stmt label callSite method2","position":{"x":10,"y":1260}},{"data":{"directed":"true","source":"stmt46","target":"stmt47"},"classes":"cfgEdge label method2"},{"data":{"stmtId":47,"shortLabel":"$r5 = new javax.crypto.spec.SecretKeySpec","label":"$r5 = new javax.crypto.spec.SecretKeySpec","id":"stmt47","stmtIndex":42},"classes":"stmt label method2","position":{"x":10,"y":1290}},{"data":{"directed":"true","source":"stmt47","target":"stmt48"},"classes":"cfgEdge label method2"},{"data":{"stmtId":48,"shortLabel":"varReplacer6 = \"AES\"","label":"varReplacer6 = \"AES\"","id":"stmt48","stmtIndex":43},"classes":"stmt label method2","position":{"x":10,"y":1320}},{"data":{"directed":"true","source":"stmt48","target":"stmt49"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":49,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":50}],"shortLabel":"$r5.(r14, varReplacer6)","label":"specialinvoke $r5.(byte[],java.lang.String)>(r14, varReplacer6)","id":"stmt49","stmtIndex":44},"classes":"stmt label callSite method2","position":{"x":10,"y":1350}},{"data":{"directed":"true","source":"stmt49","target":"stmt51"},"classes":"cfgEdge label method2"},{"data":{"stmtId":51,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt51","stmtIndex":45},"classes":"stmt label method2","position":{"x":10,"y":1380}},{"data":{"directed":"true","source":"stmt51","target":"stmt52"},"classes":"cfgEdge label method2"},{"data":{"stmtId":52,"shortLabel":"varReplacer8 = \"AES\/CTR\/NoPadding\"","label":"varReplacer8 = \"AES\/CTR\/NoPadding\"","id":"stmt52","stmtIndex":46},"classes":"stmt label method2","position":{"x":10,"y":1410}},{"data":{"directed":"true","source":"stmt52","target":"stmt53"},"classes":"cfgEdge label method2"},{"data":{"stmtId":53,"shortLabel":"varReplacer9 = \"SunJCE\"","label":"varReplacer9 = \"SunJCE\"","id":"stmt53","stmtIndex":47},"classes":"stmt label method2","position":{"x":10,"y":1440}},{"data":{"directed":"true","source":"stmt53","target":"stmt54"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":54,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":55}],"shortLabel":"r7 = getInstance(varReplacer8, varReplacer9)","label":"r7 = staticinvoke (varReplacer8, varReplacer9)","id":"stmt54","stmtIndex":48},"classes":"stmt label callSite method2","position":{"x":10,"y":1470}},{"data":{"directed":"true","source":"stmt54","target":"stmt56"},"classes":"cfgEdge label method2"},{"data":{"stmtId":56,"shortLabel":"$r8 = new javax.crypto.spec.IvParameterSpec","label":"$r8 = new javax.crypto.spec.IvParameterSpec","id":"stmt56","stmtIndex":49},"classes":"stmt label method2","position":{"x":10,"y":1500}},{"data":{"directed":"true","source":"stmt56","target":"stmt57"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":57,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":58}],"shortLabel":"$r8.(r1)","label":"specialinvoke $r8.(byte[])>(r1)","id":"stmt57","stmtIndex":50},"classes":"stmt label callSite method2","position":{"x":10,"y":1530}},{"data":{"directed":"true","source":"stmt57","target":"stmt59"},"classes":"cfgEdge label method2"},{"data":{"stmtId":59,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt59","stmtIndex":51},"classes":"stmt label method2","position":{"x":10,"y":1560}},{"data":{"directed":"true","source":"stmt59","target":"stmt60"},"classes":"cfgEdge label method2"},{"data":{"stmtId":60,"shortLabel":"varReplacer5 = 1","label":"varReplacer5 = 1","id":"stmt60","stmtIndex":52},"classes":"stmt label method2","position":{"x":10,"y":1590}},{"data":{"directed":"true","source":"stmt60","target":"stmt61"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":61,"callees":[],"shortLabel":"r7.init(varReplacer5, r6, r9)","label":"virtualinvoke r7.(varReplacer5, r6, r9)","id":"stmt61","stmtIndex":53},"classes":"stmt label callSite method2","position":{"x":10,"y":1620}},{"data":{"directed":"true","source":"stmt61","target":"stmt62"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":62,"callees":[],"shortLabel":"r10 = r7.doFinal(r4)","label":"r10 = virtualinvoke r7.(r4)","id":"stmt62","stmtIndex":54},"classes":"stmt label callSite method2","position":{"x":10,"y":1650}},{"data":{"directed":"true","source":"stmt62","target":"stmt63"},"classes":"cfgEdge label method2"},{"data":{"stmtId":63,"shortLabel":"varReplacer7 = 2","label":"varReplacer7 = 2","id":"stmt63","stmtIndex":55},"classes":"stmt label method2","position":{"x":10,"y":1680}},{"data":{"directed":"true","source":"stmt63","target":"stmt64"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":64,"callees":[],"shortLabel":"r7.init(varReplacer7, r6, r9)","label":"virtualinvoke r7.(varReplacer7, r6, r9)","id":"stmt64","stmtIndex":56},"classes":"stmt label callSite method2","position":{"x":10,"y":1710}},{"data":{"directed":"true","source":"stmt64","target":"stmt65"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":65,"callees":[],"shortLabel":"r11 = r7.doFinal(r10)","label":"r11 = virtualinvoke r7.(r10)","id":"stmt65","stmtIndex":57},"classes":"stmt label callSite method2","position":{"x":10,"y":1740}},{"data":{"directed":"true","source":"stmt65","target":"stmt66"},"classes":"cfgEdge label method2"},{"data":{"stmtId":66,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt66","stmtIndex":58},"classes":"stmt label method2","position":{"x":10,"y":1770}},{"data":{"directed":"true","source":"stmt66","target":"stmt67"},"classes":"cfgEdge label method2"},{"data":{"stmtId":68,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt68","stmtIndex":59},"classes":"stmt label method2","position":{"x":10,"y":1800}},{"data":{"directed":"true","source":"stmt68","target":"stmt69"},"classes":"cfgEdge label method2"},{"data":{"stmtId":69,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt69","stmtIndex":60},"classes":"stmt label method2","position":{"x":10,"y":1830}},{"data":{"directed":"true","source":"stmt69","target":"stmt67"},"classes":"cfgEdge label method2"},{"data":{"stmtId":67,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt67","stmtIndex":61},"classes":"stmt label returnSite method2","position":{"x":10,"y":1860}}]},"methodName":"<pkm.constantKey.ConstantKeyAES1: void main(java.lang.String[])>","id":2}],"query":"F $r5 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#49e0c957124b0782d8e50a106a7a3cd55d801a7809e2b8a2d3f733e8b0991226.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#49e0c957124b0782d8e50a106a7a3cd55d801a7809e2b8a2d3f733e8b0991226.json new file mode 100644 index 000000000..66451b8b2 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#49e0c957124b0782d8e50a106a7a3cd55d801a7809e2b8a2d3f733e8b0991226.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":47,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":48,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":33,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":37,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":44,"factId":47,"ideValue":"Weight: [-1 -> ERR]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":1050},"group":"nodes"},{"data":{"stmtId":24,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":25,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":34,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":28,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":35,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":29,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":41,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":46,"factId":47,"ideValue":"Weight: [-1 -> ERR]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":45,"factId":47,"ideValue":"Weight: [-1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":1080},"group":"nodes"},{"data":{"stmtId":27,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":38,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":42,"factId":47,"ideValue":"Weight: [-1 -> 3]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":30,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":22,"factId":48,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":36,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":39,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":43,"factId":47,"ideValue":"Weight: [-1 -> 3]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":26,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":40,"factId":47,"ideValue":"Weight: [-1 -> 1]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":32,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"directed":"true","id":"e72","source":"q1n71","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n66","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n68","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n55","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n54","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n63","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n67","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n64","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n50","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n57","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n53","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n70","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n51","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n49","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n65","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n56","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n69","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n61","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n60","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n52","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n62","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n58","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r14 := @parameter0: java.lang.String[]","label":"r14 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer16 = \"RSA\"","label":"varReplacer16 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer17 = \"BC\"","label":"varReplacer17 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer16, varReplacer17)","label":"r1 = staticinvoke (varReplacer16, varReplacer17)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer21 = 2048","label":"varReplacer21 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer21, $r2)","label":"virtualinvoke r1.(varReplacer21, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer18 = \"SHA1withRSAandMGF1\"","label":"varReplacer18 = \"SHA1withRSAandMGF1\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer19 = \"BC\"","label":"varReplacer19 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer18, varReplacer19)","label":"r4 = staticinvoke (varReplacer18, varReplacer19)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = new java.security.spec.PSSParameterSpec","label":"$r5 = new java.security.spec.PSSParameterSpec","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r6 = ","label":"$r6 = ","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer12 = \"SHA-1\"","label":"varReplacer12 = \"SHA-1\"","id":"stmt26","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer13 = \"MGF1\"","label":"varReplacer13 = \"MGF1\"","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer14 = 20","label":"varReplacer14 = 20","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"varReplacer15 = 1","label":"varReplacer15 = 1","id":"stmt29","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[{"methodName":"<java.security.spec.PSSParameterSpec: void <init>(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>","id":31}],"shortLabel":"$r5.(varReplacer12, varReplacer13, $r6, varReplacer14, varReplacer15)","label":"specialinvoke $r5.(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>(varReplacer12, varReplacer13, $r6, varReplacer14, varReplacer15)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r7 = $r5","label":"r7 = $r5","id":"stmt32","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r4.setParameter(r7)","label":"virtualinvoke r4.(r7)","id":"stmt33","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r8 = \"Testing RSA PSS w\/ SHA1\"","label":"$r8 = \"Testing RSA PSS w\/ SHA1\"","id":"stmt34","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"varReplacer20 = \"UTF-8\"","label":"varReplacer20 = \"UTF-8\"","id":"stmt35","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":36,"callees":[],"shortLabel":"r9 = $r8.getBytes(varReplacer20)","label":"r9 = virtualinvoke $r8.(varReplacer20)","id":"stmt36","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":37,"callees":[],"shortLabel":"$r10 = r3.getPrivate()","label":"$r10 = virtualinvoke r3.()","id":"stmt37","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r11 = new java.security.SecureRandom","label":"$r11 = new java.security.SecureRandom","id":"stmt38","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r11.()","label":"specialinvoke $r11.()>()","id":"stmt39","stmtIndex":30},"classes":"stmt label callSite method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":40,"callees":[],"shortLabel":"r4.initSign($r10, $r11)","label":"virtualinvoke r4.($r10, $r11)","id":"stmt40","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt41","stmtIndex":32},"classes":"stmt label callSite method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt41","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":42,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt42","stmtIndex":33},"classes":"stmt label callSite method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt42","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":43,"callees":[],"shortLabel":"$r13 = r3.getPublic()","label":"$r13 = virtualinvoke r3.()","id":"stmt43","stmtIndex":34},"classes":"stmt label callSite method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":44,"callees":[],"shortLabel":"r4.initVerify($r13)","label":"virtualinvoke r4.($r13)","id":"stmt44","stmtIndex":35},"classes":"stmt label callSite method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":45,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt45","stmtIndex":36},"classes":"stmt label callSite method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"stmtId":46,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt46","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.sign.insecurePaddingSign.PSSwSHA1Signature2: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#574b6eb738ccf103a71edc0fc07d9b61729c5e29c04f12b8b4e54bd205dc51f8.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#574b6eb738ccf103a71edc0fc07d9b61729c5e29c04f12b8b4e54bd205dc51f8.json new file mode 100644 index 000000000..d8d704b88 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#574b6eb738ccf103a71edc0fc07d9b61729c5e29c04f12b8b4e54bd205dc51f8.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":47,"label":"r1 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":48,"label":"r1 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":35,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":38,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":37,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":17,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":19,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":36,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":42,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":43,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":24,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":29,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":39,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":14,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":240},"group":"nodes"},{"data":{"stmtId":45,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":1080},"group":"nodes"},{"data":{"stmtId":25,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":21,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":22,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":46,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":32,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":15,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":270},"group":"nodes"},{"data":{"stmtId":20,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":26,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":12,"factId":48,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":60,"y":210},"group":"nodes"},{"data":{"stmtId":40,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":18,"factId":47,"ideValue":"Weight: [-1 -> 1]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":44,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":1050},"group":"nodes"},{"data":{"stmtId":33,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":28,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n75"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":27,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n76"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":30,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n77"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":34,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n78"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":41,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n79"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"directed":"true","id":"e80","source":"q1n76","target":"q1n75","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n77","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n57","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n51","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n58","target":"q1n77","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n73","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n74","target":"q1n78","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n61","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n52","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n62","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n67","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n64","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n54","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n53","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n50","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e95","source":"q1n55","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e96","source":"q1n63","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e97","source":"q1n49","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e98","source":"q1n66","target":"q1n74","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e99","source":"q1n71","target":"q1n79","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e100","source":"q1n69","target":"q1n76","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e101","source":"q1n75","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e102","source":"q1n68","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e103","source":"q1n78","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e104","source":"q1n72","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e105","source":"q1n70","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e106","source":"q1n56","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e107","source":"q1n60","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e108","source":"q1n59","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e109","source":"q1n79","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r14 := @parameter0: java.lang.String[]","label":"r14 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer16 = \"RSA\"","label":"varReplacer16 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer17 = \"BC\"","label":"varReplacer17 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer16, varReplacer17)","label":"r1 = staticinvoke (varReplacer16, varReplacer17)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer21 = 2048","label":"varReplacer21 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer21, $r2)","label":"virtualinvoke r1.(varReplacer21, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer18 = \"SHA1withRSAandMGF1\"","label":"varReplacer18 = \"SHA1withRSAandMGF1\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer19 = \"BC\"","label":"varReplacer19 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer18, varReplacer19)","label":"r4 = staticinvoke (varReplacer18, varReplacer19)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = new java.security.spec.PSSParameterSpec","label":"$r5 = new java.security.spec.PSSParameterSpec","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r6 = ","label":"$r6 = ","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer12 = \"SHA-1\"","label":"varReplacer12 = \"SHA-1\"","id":"stmt26","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer13 = \"MGF1\"","label":"varReplacer13 = \"MGF1\"","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer14 = 20","label":"varReplacer14 = 20","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"varReplacer15 = 1","label":"varReplacer15 = 1","id":"stmt29","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[{"methodName":"<java.security.spec.PSSParameterSpec: void <init>(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>","id":31}],"shortLabel":"$r5.(varReplacer12, varReplacer13, $r6, varReplacer14, varReplacer15)","label":"specialinvoke $r5.(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>(varReplacer12, varReplacer13, $r6, varReplacer14, varReplacer15)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r7 = $r5","label":"r7 = $r5","id":"stmt32","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r4.setParameter(r7)","label":"virtualinvoke r4.(r7)","id":"stmt33","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r8 = \"Testing RSA PSS w\/ SHA1\"","label":"$r8 = \"Testing RSA PSS w\/ SHA1\"","id":"stmt34","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"varReplacer20 = \"UTF-8\"","label":"varReplacer20 = \"UTF-8\"","id":"stmt35","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":36,"callees":[],"shortLabel":"r9 = $r8.getBytes(varReplacer20)","label":"r9 = virtualinvoke $r8.(varReplacer20)","id":"stmt36","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":37,"callees":[],"shortLabel":"$r10 = r3.getPrivate()","label":"$r10 = virtualinvoke r3.()","id":"stmt37","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r11 = new java.security.SecureRandom","label":"$r11 = new java.security.SecureRandom","id":"stmt38","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r11.()","label":"specialinvoke $r11.()>()","id":"stmt39","stmtIndex":30},"classes":"stmt label callSite method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":40,"callees":[],"shortLabel":"r4.initSign($r10, $r11)","label":"virtualinvoke r4.($r10, $r11)","id":"stmt40","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt41","stmtIndex":32},"classes":"stmt label callSite method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt41","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":42,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt42","stmtIndex":33},"classes":"stmt label callSite method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt42","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":43,"callees":[],"shortLabel":"$r13 = r3.getPublic()","label":"$r13 = virtualinvoke r3.()","id":"stmt43","stmtIndex":34},"classes":"stmt label callSite method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":44,"callees":[],"shortLabel":"r4.initVerify($r13)","label":"virtualinvoke r4.($r13)","id":"stmt44","stmtIndex":35},"classes":"stmt label callSite method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":45,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt45","stmtIndex":36},"classes":"stmt label callSite method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"stmtId":46,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt46","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.sign.insecurePaddingSign.PSSwSHA1Signature2: void main(java.lang.String[])>","id":2}],"query":"F r1 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5967cc0d2545d172836fce9ad3c3ed65b170b185c366939bb59b4685de69c9f6.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5967cc0d2545d172836fce9ad3c3ed65b170b185c366939bb59b4685de69c9f6.json new file mode 100644 index 000000000..7821022fe --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5967cc0d2545d172836fce9ad3c3ed65b170b185c366939bb59b4685de69c9f6.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":61,"label":"r9 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":62,"label":"$r8 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"factId":63,"label":"$r8 [{}]* "},"classes":"fact label method2","position":{"x":90,"y":0}},{"data":{"stmtId":60,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":1620},"group":"nodes"},{"data":{"stmtId":60,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":60,"y":1620},"group":"nodes"},{"data":{"stmtId":55,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":60,"y":1500},"group":"nodes"},{"data":{"stmtId":55,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":1500},"group":"nodes"},{"data":{"stmtId":56,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":60,"y":1530},"group":"nodes"},{"data":{"stmtId":56,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":30,"y":1530},"group":"nodes"},{"data":{"stmtId":57,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":60,"y":1560},"group":"nodes"},{"data":{"stmtId":57,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":1560},"group":"nodes"},{"data":{"stmtId":58,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":60,"y":1590},"group":"nodes"},{"data":{"stmtId":58,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":1590},"group":"nodes"},{"data":{"stmtId":54,"factId":63,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":90,"y":1470},"group":"nodes"},{"data":{"directed":"true","id":"e75","source":"q1n72","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n71","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n68","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n67","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n69","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n74","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n66","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n74","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n70","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n73","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = newarray (byte)[32]","label":"$r0 = newarray (byte)[32]","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"stmtId":6,"shortLabel":"$r0[0] = 1","label":"$r0[0] = 1","id":"stmt6","stmtIndex":3},"classes":"stmt label method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"$r0[1] = 35","label":"$r0[1] = 35","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r0[2] = 69","label":"$r0[2] = 69","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"stmtId":9,"shortLabel":"$r0[3] = 103","label":"$r0[3] = 103","id":"stmt9","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r0[4] = -119","label":"$r0[4] = -119","id":"stmt10","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"$r0[5] = -85","label":"$r0[5] = -85","id":"stmt11","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"$r0[6] = -51","label":"$r0[6] = -51","id":"stmt12","stmtIndex":9},"classes":"stmt label method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r0[7] = -17","label":"$r0[7] = -17","id":"stmt13","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r0[8] = 1","label":"$r0[8] = 1","id":"stmt14","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r0[9] = 35","label":"$r0[9] = 35","id":"stmt15","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"$r0[10] = 69","label":"$r0[10] = 69","id":"stmt16","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"$r0[11] = 103","label":"$r0[11] = 103","id":"stmt17","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"$r0[12] = -119","label":"$r0[12] = -119","id":"stmt18","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"$r0[13] = -85","label":"$r0[13] = -85","id":"stmt19","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"$r0[14] = -51","label":"$r0[14] = -51","id":"stmt20","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"$r0[15] = -17","label":"$r0[15] = -17","id":"stmt21","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"stmtId":22,"shortLabel":"$r0[16] = 1","label":"$r0[16] = 1","id":"stmt22","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt22","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"stmtId":23,"shortLabel":"$r0[17] = 35","label":"$r0[17] = 35","id":"stmt23","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r0[18] = 69","label":"$r0[18] = 69","id":"stmt24","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r0[19] = 103","label":"$r0[19] = 103","id":"stmt25","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r0[20] = -119","label":"$r0[20] = -119","id":"stmt26","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"$r0[21] = -85","label":"$r0[21] = -85","id":"stmt27","stmtIndex":24},"classes":"stmt label method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r0[22] = -51","label":"$r0[22] = -51","id":"stmt28","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"$r0[23] = -17","label":"$r0[23] = -17","id":"stmt29","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r0[24] = 1","label":"$r0[24] = 1","id":"stmt30","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r0[25] = 35","label":"$r0[25] = 35","id":"stmt31","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"$r0[26] = 69","label":"$r0[26] = 69","id":"stmt32","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"$r0[27] = 103","label":"$r0[27] = 103","id":"stmt33","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r0[28] = -119","label":"$r0[28] = -119","id":"stmt34","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"$r0[29] = -85","label":"$r0[29] = -85","id":"stmt35","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r0[30] = -51","label":"$r0[30] = -51","id":"stmt36","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"$r0[31] = -17","label":"$r0[31] = -17","id":"stmt37","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"r1 = $r0","label":"r1 = $r0","id":"stmt38","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"shortLabel":"$r2 = new javax.crypto.spec.SecretKeySpec","label":"$r2 = new javax.crypto.spec.SecretKeySpec","id":"stmt39","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"varReplacer3 = \"HMACSHA256\"","label":"varReplacer3 = \"HMACSHA256\"","id":"stmt40","stmtIndex":37},"classes":"stmt label method2","position":{"x":10,"y":1140}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r2.(r1, varReplacer3)","label":"specialinvoke $r2.(byte[],java.lang.String)>(r1, varReplacer3)","id":"stmt41","stmtIndex":38},"classes":"stmt label callSite method2","position":{"x":10,"y":1170}},{"data":{"directed":"true","source":"stmt41","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"r3 = $r2","label":"r3 = $r2","id":"stmt43","stmtIndex":39},"classes":"stmt label method2","position":{"x":10,"y":1200}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"varReplacer0 = \"HMACSHA256\"","label":"varReplacer0 = \"HMACSHA256\"","id":"stmt44","stmtIndex":40},"classes":"stmt label method2","position":{"x":10,"y":1230}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"stmtId":45,"shortLabel":"varReplacer1 = \"SunJCE\"","label":"varReplacer1 = \"SunJCE\"","id":"stmt45","stmtIndex":41},"classes":"stmt label method2","position":{"x":10,"y":1260}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":46,"callees":[{"methodName":"<javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String,java.lang.String)>","id":47}],"shortLabel":"r4 = getInstance(varReplacer0, varReplacer1)","label":"r4 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt46","stmtIndex":42},"classes":"stmt label callSite method2","position":{"x":10,"y":1290}},{"data":{"directed":"true","source":"stmt46","target":"stmt48"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":48,"callees":[],"shortLabel":"r4.init(r3)","label":"virtualinvoke r4.(r3)","id":"stmt48","stmtIndex":43},"classes":"stmt label callSite method2","position":{"x":10,"y":1320}},{"data":{"directed":"true","source":"stmt48","target":"stmt49"},"classes":"cfgEdge label method2"},{"data":{"stmtId":49,"shortLabel":"$r5 = \"This is a test for MAC\"","label":"$r5 = \"This is a test for MAC\"","id":"stmt49","stmtIndex":44},"classes":"stmt label method2","position":{"x":10,"y":1350}},{"data":{"directed":"true","source":"stmt49","target":"stmt50"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":50,"callees":[],"shortLabel":"r6 = $r5.getBytes()","label":"r6 = virtualinvoke $r5.()","id":"stmt50","stmtIndex":45},"classes":"stmt label callSite method2","position":{"x":10,"y":1380}},{"data":{"directed":"true","source":"stmt50","target":"stmt51"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":51,"callees":[],"shortLabel":"r7 = r4.doFinal(r6)","label":"r7 = virtualinvoke r4.(r6)","id":"stmt51","stmtIndex":46},"classes":"stmt label callSite method2","position":{"x":10,"y":1410}},{"data":{"directed":"true","source":"stmt51","target":"stmt52"},"classes":"cfgEdge label method2"},{"data":{"stmtId":52,"shortLabel":"$r8 = new javax.crypto.spec.SecretKeySpec","label":"$r8 = new javax.crypto.spec.SecretKeySpec","id":"stmt52","stmtIndex":47},"classes":"stmt label method2","position":{"x":10,"y":1440}},{"data":{"directed":"true","source":"stmt52","target":"stmt53"},"classes":"cfgEdge label method2"},{"data":{"stmtId":53,"shortLabel":"varReplacer2 = \"HMACSHA256\"","label":"varReplacer2 = \"HMACSHA256\"","id":"stmt53","stmtIndex":48},"classes":"stmt label method2","position":{"x":10,"y":1470}},{"data":{"directed":"true","source":"stmt53","target":"stmt54"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":54,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r8.(r1, varReplacer2)","label":"specialinvoke $r8.(byte[],java.lang.String)>(r1, varReplacer2)","id":"stmt54","stmtIndex":49},"classes":"stmt label callSite method2","position":{"x":10,"y":1500}},{"data":{"directed":"true","source":"stmt54","target":"stmt55"},"classes":"cfgEdge label method2"},{"data":{"stmtId":55,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt55","stmtIndex":50},"classes":"stmt label method2","position":{"x":10,"y":1530}},{"data":{"directed":"true","source":"stmt55","target":"stmt56"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":56,"callees":[],"shortLabel":"r4.init(r9)","label":"virtualinvoke r4.(r9)","id":"stmt56","stmtIndex":51},"classes":"stmt label callSite method2","position":{"x":10,"y":1560}},{"data":{"directed":"true","source":"stmt56","target":"stmt57"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":57,"callees":[],"shortLabel":"r10 = r4.doFinal(r6)","label":"r10 = virtualinvoke r4.(r6)","id":"stmt57","stmtIndex":52},"classes":"stmt label callSite method2","position":{"x":10,"y":1590}},{"data":{"directed":"true","source":"stmt57","target":"stmt58"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":58,"callees":[{"methodName":"<java.security.MessageDigest: boolean isEqual(byte[],byte[])>","id":59}],"shortLabel":"z0 = isEqual(r10, r7)","label":"z0 = staticinvoke (r10, r7)","id":"stmt58","stmtIndex":53},"classes":"stmt label callSite method2","position":{"x":10,"y":1620}},{"data":{"directed":"true","source":"stmt58","target":"stmt60"},"classes":"cfgEdge label method2"},{"data":{"stmtId":60,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt60","stmtIndex":54},"classes":"stmt label returnSite method2","position":{"x":10,"y":1650}}]},"methodName":"<pkm.constantKey.ConstantKeyforMAC: void main(java.lang.String[])>","id":2}],"query":"F $r8 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5a1ace45d7cb4faa50edf9e0dc394458b2ab220a42804792340a64ab6596d80d.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5a1ace45d7cb4faa50edf9e0dc394458b2ab220a42804792340a64ab6596d80d.json new file mode 100644 index 000000000..6c9159c10 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5a1ace45d7cb4faa50edf9e0dc394458b2ab220a42804792340a64ab6596d80d.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":70,"label":"r7 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":71,"label":"r7 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":63,"factId":70,"ideValue":"Weight: [-1 -> 3]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":1650},"group":"nodes"},{"data":{"stmtId":65,"factId":70,"ideValue":"Weight: [-1 -> ERR]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":1710},"group":"nodes"},{"data":{"stmtId":56,"factId":70,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":30,"y":1470},"group":"nodes"},{"data":{"stmtId":60,"factId":70,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n75"},"classes":"esgNode method2 ","position":{"x":30,"y":1560},"group":"nodes"},{"data":{"stmtId":59,"factId":70,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n76"},"classes":"esgNode method2 ","position":{"x":30,"y":1530},"group":"nodes"},{"data":{"stmtId":54,"factId":71,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n77"},"classes":"esgNode method2 ","position":{"x":60,"y":1440},"group":"nodes"},{"data":{"stmtId":62,"factId":70,"ideValue":"Weight: [-1 -> 3]","id":"q1n78"},"classes":"esgNode method2 ","position":{"x":30,"y":1620},"group":"nodes"},{"data":{"stmtId":66,"factId":70,"ideValue":"Weight: [-1 -> ERR]","id":"q1n79"},"classes":"esgNode method2 ","position":{"x":30,"y":1740},"group":"nodes"},{"data":{"stmtId":61,"factId":70,"ideValue":"Weight: [-1 -> 1]","id":"q1n80"},"classes":"esgNode method2 ","position":{"x":30,"y":1590},"group":"nodes"},{"data":{"stmtId":67,"factId":70,"ideValue":"Weight: [-1 -> ERR]","id":"q1n81"},"classes":"esgNode method2 ","position":{"x":30,"y":1830},"group":"nodes"},{"data":{"stmtId":57,"factId":70,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n82"},"classes":"esgNode method2 ","position":{"x":30,"y":1500},"group":"nodes"},{"data":{"stmtId":64,"factId":70,"ideValue":"Weight: [-1 -> ERR]","id":"q1n83"},"classes":"esgNode method2 ","position":{"x":30,"y":1680},"group":"nodes"},{"data":{"directed":"true","id":"e84","source":"q1n77","target":"q1n74","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n80","target":"q1n78","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n76","target":"q1n75","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n82","target":"q1n76","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n83","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n74","target":"q1n82","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n75","target":"q1n80","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n78","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n72","target":"q1n83","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n73","target":"q1n79","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n79","target":"q1n81","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = newarray (byte)[32]","label":"$r0 = newarray (byte)[32]","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"stmtId":6,"shortLabel":"$r0[0] = 1","label":"$r0[0] = 1","id":"stmt6","stmtIndex":3},"classes":"stmt label method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"$r0[1] = 35","label":"$r0[1] = 35","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r0[2] = 69","label":"$r0[2] = 69","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"stmtId":9,"shortLabel":"$r0[3] = 103","label":"$r0[3] = 103","id":"stmt9","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r0[4] = -119","label":"$r0[4] = -119","id":"stmt10","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"$r0[5] = -85","label":"$r0[5] = -85","id":"stmt11","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"$r0[6] = -51","label":"$r0[6] = -51","id":"stmt12","stmtIndex":9},"classes":"stmt label method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r0[7] = -17","label":"$r0[7] = -17","id":"stmt13","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r0[8] = 1","label":"$r0[8] = 1","id":"stmt14","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r0[9] = 35","label":"$r0[9] = 35","id":"stmt15","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"$r0[10] = 69","label":"$r0[10] = 69","id":"stmt16","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"$r0[11] = 103","label":"$r0[11] = 103","id":"stmt17","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"$r0[12] = -119","label":"$r0[12] = -119","id":"stmt18","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"$r0[13] = -85","label":"$r0[13] = -85","id":"stmt19","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"$r0[14] = -51","label":"$r0[14] = -51","id":"stmt20","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"$r0[15] = -17","label":"$r0[15] = -17","id":"stmt21","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"stmtId":22,"shortLabel":"$r0[16] = 1","label":"$r0[16] = 1","id":"stmt22","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt22","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"stmtId":23,"shortLabel":"$r0[17] = 35","label":"$r0[17] = 35","id":"stmt23","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r0[18] = 69","label":"$r0[18] = 69","id":"stmt24","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r0[19] = 103","label":"$r0[19] = 103","id":"stmt25","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r0[20] = -119","label":"$r0[20] = -119","id":"stmt26","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"$r0[21] = -85","label":"$r0[21] = -85","id":"stmt27","stmtIndex":24},"classes":"stmt label method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r0[22] = -51","label":"$r0[22] = -51","id":"stmt28","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"$r0[23] = -17","label":"$r0[23] = -17","id":"stmt29","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r0[24] = 1","label":"$r0[24] = 1","id":"stmt30","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r0[25] = 35","label":"$r0[25] = 35","id":"stmt31","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"$r0[26] = 69","label":"$r0[26] = 69","id":"stmt32","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"$r0[27] = 103","label":"$r0[27] = 103","id":"stmt33","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r0[28] = -119","label":"$r0[28] = -119","id":"stmt34","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"$r0[29] = -85","label":"$r0[29] = -85","id":"stmt35","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r0[30] = -51","label":"$r0[30] = -51","id":"stmt36","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"$r0[31] = -17","label":"$r0[31] = -17","id":"stmt37","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"r14 = $r0","label":"r14 = $r0","id":"stmt38","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"shortLabel":"r1 = newarray (byte)[16]","label":"r1 = newarray (byte)[16]","id":"stmt39","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt40","stmtIndex":37},"classes":"stmt label method2","position":{"x":10,"y":1140}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":42}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt41","stmtIndex":38},"classes":"stmt label callSite method2","position":{"x":10,"y":1170}},{"data":{"directed":"true","source":"stmt41","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":43,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":44}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt43","stmtIndex":39},"classes":"stmt label callSite method2","position":{"x":10,"y":1200}},{"data":{"directed":"true","source":"stmt43","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"stmtId":45,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt45","stmtIndex":40},"classes":"stmt label method2","position":{"x":10,"y":1230}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":46,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt46","stmtIndex":41},"classes":"stmt label callSite method2","position":{"x":10,"y":1260}},{"data":{"directed":"true","source":"stmt46","target":"stmt47"},"classes":"cfgEdge label method2"},{"data":{"stmtId":47,"shortLabel":"$r5 = new javax.crypto.spec.SecretKeySpec","label":"$r5 = new javax.crypto.spec.SecretKeySpec","id":"stmt47","stmtIndex":42},"classes":"stmt label method2","position":{"x":10,"y":1290}},{"data":{"directed":"true","source":"stmt47","target":"stmt48"},"classes":"cfgEdge label method2"},{"data":{"stmtId":48,"shortLabel":"varReplacer6 = \"AES\"","label":"varReplacer6 = \"AES\"","id":"stmt48","stmtIndex":43},"classes":"stmt label method2","position":{"x":10,"y":1320}},{"data":{"directed":"true","source":"stmt48","target":"stmt49"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":49,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":50}],"shortLabel":"$r5.(r14, varReplacer6)","label":"specialinvoke $r5.(byte[],java.lang.String)>(r14, varReplacer6)","id":"stmt49","stmtIndex":44},"classes":"stmt label callSite method2","position":{"x":10,"y":1350}},{"data":{"directed":"true","source":"stmt49","target":"stmt51"},"classes":"cfgEdge label method2"},{"data":{"stmtId":51,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt51","stmtIndex":45},"classes":"stmt label method2","position":{"x":10,"y":1380}},{"data":{"directed":"true","source":"stmt51","target":"stmt52"},"classes":"cfgEdge label method2"},{"data":{"stmtId":52,"shortLabel":"varReplacer8 = \"AES\/CTR\/NoPadding\"","label":"varReplacer8 = \"AES\/CTR\/NoPadding\"","id":"stmt52","stmtIndex":46},"classes":"stmt label method2","position":{"x":10,"y":1410}},{"data":{"directed":"true","source":"stmt52","target":"stmt53"},"classes":"cfgEdge label method2"},{"data":{"stmtId":53,"shortLabel":"varReplacer9 = \"SunJCE\"","label":"varReplacer9 = \"SunJCE\"","id":"stmt53","stmtIndex":47},"classes":"stmt label method2","position":{"x":10,"y":1440}},{"data":{"directed":"true","source":"stmt53","target":"stmt54"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":54,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":55}],"shortLabel":"r7 = getInstance(varReplacer8, varReplacer9)","label":"r7 = staticinvoke (varReplacer8, varReplacer9)","id":"stmt54","stmtIndex":48},"classes":"stmt label callSite method2","position":{"x":10,"y":1470}},{"data":{"directed":"true","source":"stmt54","target":"stmt56"},"classes":"cfgEdge label method2"},{"data":{"stmtId":56,"shortLabel":"$r8 = new javax.crypto.spec.IvParameterSpec","label":"$r8 = new javax.crypto.spec.IvParameterSpec","id":"stmt56","stmtIndex":49},"classes":"stmt label method2","position":{"x":10,"y":1500}},{"data":{"directed":"true","source":"stmt56","target":"stmt57"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":57,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":58}],"shortLabel":"$r8.(r1)","label":"specialinvoke $r8.(byte[])>(r1)","id":"stmt57","stmtIndex":50},"classes":"stmt label callSite method2","position":{"x":10,"y":1530}},{"data":{"directed":"true","source":"stmt57","target":"stmt59"},"classes":"cfgEdge label method2"},{"data":{"stmtId":59,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt59","stmtIndex":51},"classes":"stmt label method2","position":{"x":10,"y":1560}},{"data":{"directed":"true","source":"stmt59","target":"stmt60"},"classes":"cfgEdge label method2"},{"data":{"stmtId":60,"shortLabel":"varReplacer5 = 1","label":"varReplacer5 = 1","id":"stmt60","stmtIndex":52},"classes":"stmt label method2","position":{"x":10,"y":1590}},{"data":{"directed":"true","source":"stmt60","target":"stmt61"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":61,"callees":[],"shortLabel":"r7.init(varReplacer5, r6, r9)","label":"virtualinvoke r7.(varReplacer5, r6, r9)","id":"stmt61","stmtIndex":53},"classes":"stmt label callSite method2","position":{"x":10,"y":1620}},{"data":{"directed":"true","source":"stmt61","target":"stmt62"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":62,"callees":[],"shortLabel":"r10 = r7.doFinal(r4)","label":"r10 = virtualinvoke r7.(r4)","id":"stmt62","stmtIndex":54},"classes":"stmt label callSite method2","position":{"x":10,"y":1650}},{"data":{"directed":"true","source":"stmt62","target":"stmt63"},"classes":"cfgEdge label method2"},{"data":{"stmtId":63,"shortLabel":"varReplacer7 = 2","label":"varReplacer7 = 2","id":"stmt63","stmtIndex":55},"classes":"stmt label method2","position":{"x":10,"y":1680}},{"data":{"directed":"true","source":"stmt63","target":"stmt64"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":64,"callees":[],"shortLabel":"r7.init(varReplacer7, r6, r9)","label":"virtualinvoke r7.(varReplacer7, r6, r9)","id":"stmt64","stmtIndex":56},"classes":"stmt label callSite method2","position":{"x":10,"y":1710}},{"data":{"directed":"true","source":"stmt64","target":"stmt65"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":65,"callees":[],"shortLabel":"r11 = r7.doFinal(r10)","label":"r11 = virtualinvoke r7.(r10)","id":"stmt65","stmtIndex":57},"classes":"stmt label callSite method2","position":{"x":10,"y":1740}},{"data":{"directed":"true","source":"stmt65","target":"stmt66"},"classes":"cfgEdge label method2"},{"data":{"stmtId":66,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt66","stmtIndex":58},"classes":"stmt label method2","position":{"x":10,"y":1770}},{"data":{"directed":"true","source":"stmt66","target":"stmt67"},"classes":"cfgEdge label method2"},{"data":{"stmtId":68,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt68","stmtIndex":59},"classes":"stmt label method2","position":{"x":10,"y":1800}},{"data":{"directed":"true","source":"stmt68","target":"stmt69"},"classes":"cfgEdge label method2"},{"data":{"stmtId":69,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt69","stmtIndex":60},"classes":"stmt label method2","position":{"x":10,"y":1830}},{"data":{"directed":"true","source":"stmt69","target":"stmt67"},"classes":"cfgEdge label method2"},{"data":{"stmtId":67,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt67","stmtIndex":61},"classes":"stmt label returnSite method2","position":{"x":10,"y":1860}}]},"methodName":"<pkm.constantKey.ConstantKeyAES1: void main(java.lang.String[])>","id":2}],"query":"F r7 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5cd208895445a55e44b13dcf3cfe57c8aca2196b6f0ff64be5bfa917dc093ed8.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5cd208895445a55e44b13dcf3cfe57c8aca2196b6f0ff64be5bfa917dc093ed8.json new file mode 100644 index 000000000..382627280 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#5cd208895445a55e44b13dcf3cfe57c8aca2196b6f0ff64be5bfa917dc093ed8.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r6 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r6 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":28,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":60,"y":630},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"directed":"true","id":"e62","source":"q1n47","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n54","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n50","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n55","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n52","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n61","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n49","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n53","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n60","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n56","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n56","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n58","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n57","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n59","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n51","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer18 = \"RSA\"","label":"varReplacer18 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer19 = \"BC\"","label":"varReplacer19 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer18, varReplacer19)","label":"r2 = staticinvoke (varReplacer18, varReplacer19)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer21 = 2048","label":"varReplacer21 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer21)","label":"virtualinvoke r2.(varReplacer21)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer25 = \"RSA\/ECB\/NoPadding\"","label":"varReplacer25 = \"RSA\/ECB\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer26 = \"BC\"","label":"varReplacer26 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer25, varReplacer26)","label":"r4 = staticinvoke (varReplacer25, varReplacer26)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer20 = 1","label":"varReplacer20 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer20, $r5)","label":"virtualinvoke r4.(varReplacer20, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer22 = \"RSA\/ECB\/NoPadding\"","label":"varReplacer22 = \"RSA\/ECB\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer23 = \"BC\"","label":"varReplacer23 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer22, varReplacer23)","label":"r6 = staticinvoke (varReplacer22, varReplacer23)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer24 = 2","label":"varReplacer24 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer24, $r7)","label":"virtualinvoke r6.(varReplacer24, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA1: void main(java.lang.String[])>","id":2}],"query":"F r6 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#73857107115dd4ec013b3839395031ddd1f3e52f82b58d9d01a01652cc09f200.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#73857107115dd4ec013b3839395031ddd1f3e52f82b58d9d01a01652cc09f200.json new file mode 100644 index 000000000..778cbf713 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#73857107115dd4ec013b3839395031ddd1f3e52f82b58d9d01a01652cc09f200.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r2 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r2 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":24,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":19,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":28,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":17,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":27,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":25,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":21,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":23,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":26,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":18,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":20,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":14,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":60,"y":270},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":16,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"directed":"true","id":"e74","source":"q1n54","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n47","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n64","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n72","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n57","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n64","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n69","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n59","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n60","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n55","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n49","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n48","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n52","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n68","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n50","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n63","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n67","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n70","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n58","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n61","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n51","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e95","source":"q1n62","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e96","source":"q1n71","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e97","source":"q1n66","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e98","source":"q1n65","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e99","source":"q1n56","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e100","source":"q1n53","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer18 = \"RSA\"","label":"varReplacer18 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer19 = \"BC\"","label":"varReplacer19 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer18, varReplacer19)","label":"r2 = staticinvoke (varReplacer18, varReplacer19)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer21 = 2048","label":"varReplacer21 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer21)","label":"virtualinvoke r2.(varReplacer21)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer25 = \"RSA\/ECB\/NoPadding\"","label":"varReplacer25 = \"RSA\/ECB\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer26 = \"BC\"","label":"varReplacer26 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer25, varReplacer26)","label":"r4 = staticinvoke (varReplacer25, varReplacer26)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer20 = 1","label":"varReplacer20 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer20, $r5)","label":"virtualinvoke r4.(varReplacer20, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer22 = \"RSA\/ECB\/NoPadding\"","label":"varReplacer22 = \"RSA\/ECB\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer23 = \"BC\"","label":"varReplacer23 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer22, varReplacer23)","label":"r6 = staticinvoke (varReplacer22, varReplacer23)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer24 = 2","label":"varReplacer24 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer24, $r7)","label":"virtualinvoke r6.(varReplacer24, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA1: void main(java.lang.String[])>","id":2}],"query":"F r2 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#7d6fe0d393552ea7e3a3f9566557eb3e40bb1eda65c676961f06858d9d01247d.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#7d6fe0d393552ea7e3a3f9566557eb3e40bb1eda65c676961f06858d9d01247d.json new file mode 100644 index 000000000..1dbb4346c --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#7d6fe0d393552ea7e3a3f9566557eb3e40bb1eda65c676961f06858d9d01247d.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r1 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r1 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":12,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":60,"y":210},"group":"nodes"},{"data":{"stmtId":21,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":19,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":20,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":18,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":14,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":240},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":15,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":270},"group":"nodes"},{"data":{"stmtId":17,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":22,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"directed":"true","id":"e61","source":"q1n42","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n47","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n39","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n40","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n57","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n59","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n45","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n52","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n56","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n46","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n44","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n41","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n58","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n60","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n50","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n49","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n54","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n43","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n53","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n55","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n48","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer30 = \"RSA\"","label":"varReplacer30 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer31 = \"BC\"","label":"varReplacer31 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer30, varReplacer31)","label":"r1 = staticinvoke (varReplacer30, varReplacer31)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer28 = 2048","label":"varReplacer28 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer28, $r2)","label":"virtualinvoke r1.(varReplacer28, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer32 = \"SHA1withRSA\"","label":"varReplacer32 = \"SHA1withRSA\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer33 = \"BC\"","label":"varReplacer33 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer32, varReplacer33)","label":"r4 = staticinvoke (varReplacer32, varReplacer33)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PKCS1\"","label":"$r5 = \"Testing RSA PKCS1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer29 = \"UTF-8\"","label":"varReplacer29 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer29)","label":"r6 = virtualinvoke $r5.(varReplacer29)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.insecurePaddingSign.PKCS1Signature: void main(java.lang.String[])>","id":2}],"query":"F r1 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#7fa2530d83e05bca1328a9830eab6e513cfba61a38f022d9541ac2cd62f53a66.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#7fa2530d83e05bca1328a9830eab6e513cfba61a38f022d9541ac2cd62f53a66.json new file mode 100644 index 000000000..00119b8e8 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#7fa2530d83e05bca1328a9830eab6e513cfba61a38f022d9541ac2cd62f53a66.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":61,"label":"$r2 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":62,"label":"r3 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"factId":63,"label":"$r2 [{}]* "},"classes":"fact label method2","position":{"x":90,"y":0}},{"data":{"stmtId":57,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":1560},"group":"nodes"},{"data":{"stmtId":57,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":60,"y":1560},"group":"nodes"},{"data":{"stmtId":55,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":60,"y":1500},"group":"nodes"},{"data":{"stmtId":55,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":1500},"group":"nodes"},{"data":{"stmtId":53,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":1440},"group":"nodes"},{"data":{"stmtId":53,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":60,"y":1440},"group":"nodes"},{"data":{"stmtId":54,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":1470},"group":"nodes"},{"data":{"stmtId":54,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":60,"y":1470},"group":"nodes"},{"data":{"stmtId":46,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":1260},"group":"nodes"},{"data":{"stmtId":46,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":60,"y":1260},"group":"nodes"},{"data":{"stmtId":41,"factId":63,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":90,"y":1140},"group":"nodes"},{"data":{"stmtId":56,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n75"},"classes":"esgNode method2 ","position":{"x":60,"y":1530},"group":"nodes"},{"data":{"stmtId":56,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n76"},"classes":"esgNode method2 ","position":{"x":30,"y":1530},"group":"nodes"},{"data":{"stmtId":44,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n77"},"classes":"esgNode method2 ","position":{"x":30,"y":1200},"group":"nodes"},{"data":{"stmtId":44,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n78"},"classes":"esgNode method2 ","position":{"x":60,"y":1200},"group":"nodes"},{"data":{"stmtId":49,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n79"},"classes":"esgNode method2 ","position":{"x":30,"y":1320},"group":"nodes"},{"data":{"stmtId":49,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n80"},"classes":"esgNode method2 ","position":{"x":60,"y":1320},"group":"nodes"},{"data":{"stmtId":45,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n81"},"classes":"esgNode method2 ","position":{"x":30,"y":1230},"group":"nodes"},{"data":{"stmtId":45,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n82"},"classes":"esgNode method2 ","position":{"x":60,"y":1230},"group":"nodes"},{"data":{"stmtId":52,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n83"},"classes":"esgNode method2 ","position":{"x":60,"y":1410},"group":"nodes"},{"data":{"stmtId":52,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n84"},"classes":"esgNode method2 ","position":{"x":30,"y":1410},"group":"nodes"},{"data":{"stmtId":48,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n85"},"classes":"esgNode method2 ","position":{"x":60,"y":1290},"group":"nodes"},{"data":{"stmtId":48,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n86"},"classes":"esgNode method2 ","position":{"x":30,"y":1290},"group":"nodes"},{"data":{"stmtId":50,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n87"},"classes":"esgNode method2 ","position":{"x":60,"y":1350},"group":"nodes"},{"data":{"stmtId":50,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n88"},"classes":"esgNode method2 ","position":{"x":30,"y":1350},"group":"nodes"},{"data":{"stmtId":60,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n89"},"classes":"esgNode method2 ","position":{"x":60,"y":1620},"group":"nodes"},{"data":{"stmtId":60,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n90"},"classes":"esgNode method2 ","position":{"x":30,"y":1620},"group":"nodes"},{"data":{"stmtId":58,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n91"},"classes":"esgNode method2 ","position":{"x":60,"y":1590},"group":"nodes"},{"data":{"stmtId":58,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n92"},"classes":"esgNode method2 ","position":{"x":30,"y":1590},"group":"nodes"},{"data":{"stmtId":51,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n93"},"classes":"esgNode method2 ","position":{"x":60,"y":1380},"group":"nodes"},{"data":{"stmtId":51,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n94"},"classes":"esgNode method2 ","position":{"x":30,"y":1380},"group":"nodes"},{"data":{"stmtId":43,"factId":61,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n95"},"classes":"esgNode method2 ","position":{"x":30,"y":1170},"group":"nodes"},{"data":{"stmtId":43,"factId":62,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n96"},"classes":"esgNode method2 ","position":{"x":60,"y":1170},"group":"nodes"},{"data":{"directed":"true","id":"e97","source":"q1n81","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e98","source":"q1n78","target":"q1n82","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e99","source":"q1n95","target":"q1n77","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e100","source":"q1n72","target":"q1n86","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e101","source":"q1n75","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e102","source":"q1n91","target":"q1n89","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e103","source":"q1n68","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e104","source":"q1n94","target":"q1n84","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e105","source":"q1n92","target":"q1n90","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e106","source":"q1n83","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e107","source":"q1n64","target":"q1n92","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e108","source":"q1n88","target":"q1n94","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e109","source":"q1n71","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e110","source":"q1n79","target":"q1n88","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e111","source":"q1n73","target":"q1n85","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e112","source":"q1n65","target":"q1n91","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e113","source":"q1n85","target":"q1n80","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e114","source":"q1n76","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e115","source":"q1n66","target":"q1n75","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e116","source":"q1n77","target":"q1n81","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e117","source":"q1n74","target":"q1n96","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e118","source":"q1n96","target":"q1n78","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e119","source":"q1n69","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e120","source":"q1n70","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e121","source":"q1n87","target":"q1n93","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e122","source":"q1n67","target":"q1n76","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e123","source":"q1n82","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e124","source":"q1n86","target":"q1n79","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e125","source":"q1n74","target":"q1n95","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e126","source":"q1n80","target":"q1n87","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e127","source":"q1n93","target":"q1n83","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e128","source":"q1n84","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = newarray (byte)[32]","label":"$r0 = newarray (byte)[32]","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"stmtId":6,"shortLabel":"$r0[0] = 1","label":"$r0[0] = 1","id":"stmt6","stmtIndex":3},"classes":"stmt label method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"$r0[1] = 35","label":"$r0[1] = 35","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r0[2] = 69","label":"$r0[2] = 69","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"stmtId":9,"shortLabel":"$r0[3] = 103","label":"$r0[3] = 103","id":"stmt9","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r0[4] = -119","label":"$r0[4] = -119","id":"stmt10","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"$r0[5] = -85","label":"$r0[5] = -85","id":"stmt11","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"$r0[6] = -51","label":"$r0[6] = -51","id":"stmt12","stmtIndex":9},"classes":"stmt label method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r0[7] = -17","label":"$r0[7] = -17","id":"stmt13","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r0[8] = 1","label":"$r0[8] = 1","id":"stmt14","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r0[9] = 35","label":"$r0[9] = 35","id":"stmt15","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"$r0[10] = 69","label":"$r0[10] = 69","id":"stmt16","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"$r0[11] = 103","label":"$r0[11] = 103","id":"stmt17","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"$r0[12] = -119","label":"$r0[12] = -119","id":"stmt18","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"$r0[13] = -85","label":"$r0[13] = -85","id":"stmt19","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"$r0[14] = -51","label":"$r0[14] = -51","id":"stmt20","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"$r0[15] = -17","label":"$r0[15] = -17","id":"stmt21","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"stmtId":22,"shortLabel":"$r0[16] = 1","label":"$r0[16] = 1","id":"stmt22","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt22","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"stmtId":23,"shortLabel":"$r0[17] = 35","label":"$r0[17] = 35","id":"stmt23","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r0[18] = 69","label":"$r0[18] = 69","id":"stmt24","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r0[19] = 103","label":"$r0[19] = 103","id":"stmt25","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r0[20] = -119","label":"$r0[20] = -119","id":"stmt26","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"$r0[21] = -85","label":"$r0[21] = -85","id":"stmt27","stmtIndex":24},"classes":"stmt label method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r0[22] = -51","label":"$r0[22] = -51","id":"stmt28","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"$r0[23] = -17","label":"$r0[23] = -17","id":"stmt29","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r0[24] = 1","label":"$r0[24] = 1","id":"stmt30","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r0[25] = 35","label":"$r0[25] = 35","id":"stmt31","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"$r0[26] = 69","label":"$r0[26] = 69","id":"stmt32","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"$r0[27] = 103","label":"$r0[27] = 103","id":"stmt33","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r0[28] = -119","label":"$r0[28] = -119","id":"stmt34","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"$r0[29] = -85","label":"$r0[29] = -85","id":"stmt35","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r0[30] = -51","label":"$r0[30] = -51","id":"stmt36","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"$r0[31] = -17","label":"$r0[31] = -17","id":"stmt37","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"r1 = $r0","label":"r1 = $r0","id":"stmt38","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"shortLabel":"$r2 = new javax.crypto.spec.SecretKeySpec","label":"$r2 = new javax.crypto.spec.SecretKeySpec","id":"stmt39","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"varReplacer3 = \"HMACSHA256\"","label":"varReplacer3 = \"HMACSHA256\"","id":"stmt40","stmtIndex":37},"classes":"stmt label method2","position":{"x":10,"y":1140}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r2.(r1, varReplacer3)","label":"specialinvoke $r2.(byte[],java.lang.String)>(r1, varReplacer3)","id":"stmt41","stmtIndex":38},"classes":"stmt label callSite method2","position":{"x":10,"y":1170}},{"data":{"directed":"true","source":"stmt41","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"r3 = $r2","label":"r3 = $r2","id":"stmt43","stmtIndex":39},"classes":"stmt label method2","position":{"x":10,"y":1200}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"varReplacer0 = \"HMACSHA256\"","label":"varReplacer0 = \"HMACSHA256\"","id":"stmt44","stmtIndex":40},"classes":"stmt label method2","position":{"x":10,"y":1230}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"stmtId":45,"shortLabel":"varReplacer1 = \"SunJCE\"","label":"varReplacer1 = \"SunJCE\"","id":"stmt45","stmtIndex":41},"classes":"stmt label method2","position":{"x":10,"y":1260}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":46,"callees":[{"methodName":"<javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String,java.lang.String)>","id":47}],"shortLabel":"r4 = getInstance(varReplacer0, varReplacer1)","label":"r4 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt46","stmtIndex":42},"classes":"stmt label callSite method2","position":{"x":10,"y":1290}},{"data":{"directed":"true","source":"stmt46","target":"stmt48"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":48,"callees":[],"shortLabel":"r4.init(r3)","label":"virtualinvoke r4.(r3)","id":"stmt48","stmtIndex":43},"classes":"stmt label callSite method2","position":{"x":10,"y":1320}},{"data":{"directed":"true","source":"stmt48","target":"stmt49"},"classes":"cfgEdge label method2"},{"data":{"stmtId":49,"shortLabel":"$r5 = \"This is a test for MAC\"","label":"$r5 = \"This is a test for MAC\"","id":"stmt49","stmtIndex":44},"classes":"stmt label method2","position":{"x":10,"y":1350}},{"data":{"directed":"true","source":"stmt49","target":"stmt50"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":50,"callees":[],"shortLabel":"r6 = $r5.getBytes()","label":"r6 = virtualinvoke $r5.()","id":"stmt50","stmtIndex":45},"classes":"stmt label callSite method2","position":{"x":10,"y":1380}},{"data":{"directed":"true","source":"stmt50","target":"stmt51"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":51,"callees":[],"shortLabel":"r7 = r4.doFinal(r6)","label":"r7 = virtualinvoke r4.(r6)","id":"stmt51","stmtIndex":46},"classes":"stmt label callSite method2","position":{"x":10,"y":1410}},{"data":{"directed":"true","source":"stmt51","target":"stmt52"},"classes":"cfgEdge label method2"},{"data":{"stmtId":52,"shortLabel":"$r8 = new javax.crypto.spec.SecretKeySpec","label":"$r8 = new javax.crypto.spec.SecretKeySpec","id":"stmt52","stmtIndex":47},"classes":"stmt label method2","position":{"x":10,"y":1440}},{"data":{"directed":"true","source":"stmt52","target":"stmt53"},"classes":"cfgEdge label method2"},{"data":{"stmtId":53,"shortLabel":"varReplacer2 = \"HMACSHA256\"","label":"varReplacer2 = \"HMACSHA256\"","id":"stmt53","stmtIndex":48},"classes":"stmt label method2","position":{"x":10,"y":1470}},{"data":{"directed":"true","source":"stmt53","target":"stmt54"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":54,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r8.(r1, varReplacer2)","label":"specialinvoke $r8.(byte[],java.lang.String)>(r1, varReplacer2)","id":"stmt54","stmtIndex":49},"classes":"stmt label callSite method2","position":{"x":10,"y":1500}},{"data":{"directed":"true","source":"stmt54","target":"stmt55"},"classes":"cfgEdge label method2"},{"data":{"stmtId":55,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt55","stmtIndex":50},"classes":"stmt label method2","position":{"x":10,"y":1530}},{"data":{"directed":"true","source":"stmt55","target":"stmt56"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":56,"callees":[],"shortLabel":"r4.init(r9)","label":"virtualinvoke r4.(r9)","id":"stmt56","stmtIndex":51},"classes":"stmt label callSite method2","position":{"x":10,"y":1560}},{"data":{"directed":"true","source":"stmt56","target":"stmt57"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":57,"callees":[],"shortLabel":"r10 = r4.doFinal(r6)","label":"r10 = virtualinvoke r4.(r6)","id":"stmt57","stmtIndex":52},"classes":"stmt label callSite method2","position":{"x":10,"y":1590}},{"data":{"directed":"true","source":"stmt57","target":"stmt58"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":58,"callees":[{"methodName":"<java.security.MessageDigest: boolean isEqual(byte[],byte[])>","id":59}],"shortLabel":"z0 = isEqual(r10, r7)","label":"z0 = staticinvoke (r10, r7)","id":"stmt58","stmtIndex":53},"classes":"stmt label callSite method2","position":{"x":10,"y":1620}},{"data":{"directed":"true","source":"stmt58","target":"stmt60"},"classes":"cfgEdge label method2"},{"data":{"stmtId":60,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt60","stmtIndex":54},"classes":"stmt label returnSite method2","position":{"x":10,"y":1650}}]},"methodName":"<pkm.constantKey.ConstantKeyforMAC: void main(java.lang.String[])>","id":2}],"query":"F $r2 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8474c05b59af34229319033f5c95673040d972bb08a03fc047f5ffd1de0c00d9.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8474c05b59af34229319033f5c95673040d972bb08a03fc047f5ffd1de0c00d9.json new file mode 100644 index 000000000..36510433b --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8474c05b59af34229319033f5c95673040d972bb08a03fc047f5ffd1de0c00d9.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":47,"label":"r1 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":48,"label":"r1 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":41,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":20,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":28,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":32,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":39,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":14,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":240},"group":"nodes"},{"data":{"stmtId":34,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":36,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":24,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":19,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":44,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":1050},"group":"nodes"},{"data":{"stmtId":37,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":12,"factId":48,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":60,"y":210},"group":"nodes"},{"data":{"stmtId":38,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":21,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":45,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":1080},"group":"nodes"},{"data":{"stmtId":40,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":46,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":26,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":42,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":22,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":17,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":27,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":29,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":25,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":35,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":43,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n75"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":15,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n76"},"classes":"esgNode method2 ","position":{"x":30,"y":270},"group":"nodes"},{"data":{"stmtId":30,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n77"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":33,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n78"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":18,"factId":47,"ideValue":"Weight: [-1 -> 1]","id":"q1n79"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"directed":"true","id":"e80","source":"q1n78","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n74","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n69","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n71","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n65","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n70","target":"q1n79","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n59","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n79","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n68","target":"q1n75","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n50","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n67","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n62","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n60","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n57","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n51","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e95","source":"q1n53","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e96","source":"q1n73","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e97","source":"q1n56","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e98","source":"q1n54","target":"q1n76","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e99","source":"q1n63","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e100","source":"q1n77","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e101","source":"q1n55","target":"q1n74","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e102","source":"q1n72","target":"q1n77","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e103","source":"q1n64","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e104","source":"q1n75","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e105","source":"q1n61","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e106","source":"q1n76","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e107","source":"q1n52","target":"q1n78","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e108","source":"q1n58","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e109","source":"q1n49","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r14 := @parameter0: java.lang.String[]","label":"r14 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer24 = \"RSA\"","label":"varReplacer24 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer25 = \"BC\"","label":"varReplacer25 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer24, varReplacer25)","label":"r1 = staticinvoke (varReplacer24, varReplacer25)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer23 = 2048","label":"varReplacer23 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer23, $r2)","label":"virtualinvoke r1.(varReplacer23, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer26 = \"SHA256withRSAandMGF1\"","label":"varReplacer26 = \"SHA256withRSAandMGF1\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer27 = \"BC\"","label":"varReplacer27 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer26, varReplacer27)","label":"r4 = staticinvoke (varReplacer26, varReplacer27)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = new java.security.spec.PSSParameterSpec","label":"$r5 = new java.security.spec.PSSParameterSpec","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r6 = ","label":"$r6 = ","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer18 = \"SHA-256\"","label":"varReplacer18 = \"SHA-256\"","id":"stmt26","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer19 = \"MGF1\"","label":"varReplacer19 = \"MGF1\"","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer20 = 20","label":"varReplacer20 = 20","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"varReplacer21 = 1","label":"varReplacer21 = 1","id":"stmt29","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[{"methodName":"<java.security.spec.PSSParameterSpec: void <init>(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>","id":31}],"shortLabel":"$r5.(varReplacer18, varReplacer19, $r6, varReplacer20, varReplacer21)","label":"specialinvoke $r5.(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>(varReplacer18, varReplacer19, $r6, varReplacer20, varReplacer21)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r7 = $r5","label":"r7 = $r5","id":"stmt32","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r4.setParameter(r7)","label":"virtualinvoke r4.(r7)","id":"stmt33","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r8 = \"Testing weak RSA-PSS\"","label":"$r8 = \"Testing weak RSA-PSS\"","id":"stmt34","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"varReplacer22 = \"UTF-8\"","label":"varReplacer22 = \"UTF-8\"","id":"stmt35","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":36,"callees":[],"shortLabel":"r9 = $r8.getBytes(varReplacer22)","label":"r9 = virtualinvoke $r8.(varReplacer22)","id":"stmt36","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":37,"callees":[],"shortLabel":"$r10 = r3.getPrivate()","label":"$r10 = virtualinvoke r3.()","id":"stmt37","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r11 = new java.security.SecureRandom","label":"$r11 = new java.security.SecureRandom","id":"stmt38","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r11.()","label":"specialinvoke $r11.()>()","id":"stmt39","stmtIndex":30},"classes":"stmt label callSite method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":40,"callees":[],"shortLabel":"r4.initSign($r10, $r11)","label":"virtualinvoke r4.($r10, $r11)","id":"stmt40","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt41","stmtIndex":32},"classes":"stmt label callSite method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt41","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":42,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt42","stmtIndex":33},"classes":"stmt label callSite method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt42","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":43,"callees":[],"shortLabel":"$r13 = r3.getPublic()","label":"$r13 = virtualinvoke r3.()","id":"stmt43","stmtIndex":34},"classes":"stmt label callSite method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":44,"callees":[],"shortLabel":"r4.initVerify($r13)","label":"virtualinvoke r4.($r13)","id":"stmt44","stmtIndex":35},"classes":"stmt label callSite method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":45,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt45","stmtIndex":36},"classes":"stmt label callSite method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"stmtId":46,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt46","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.sign.weakSignatureRSA.PSSw1024xSHA256_2: void main(java.lang.String[])>","id":2}],"query":"F r1 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8512234f9d9d5a1bcb1a2b30609bcd6c10611f992969c416d24dda24cd53b51e.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8512234f9d9d5a1bcb1a2b30609bcd6c10611f992969c416d24dda24cd53b51e.json new file mode 100644 index 000000000..2118300fb --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8512234f9d9d5a1bcb1a2b30609bcd6c10611f992969c416d24dda24cd53b51e.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r2 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r2 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":14,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":60,"y":270},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":19,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":18,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":20,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":28,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":26,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":24,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":25,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":17,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":21,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":27,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":16,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":23,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"directed":"true","id":"e74","source":"q1n64","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n72","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n60","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n67","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n70","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n58","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n59","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n48","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n66","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n62","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n49","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n54","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n63","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n53","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n51","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n56","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n50","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n69","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n65","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n68","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n47","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e95","source":"q1n55","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e96","source":"q1n73","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e97","source":"q1n52","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e98","source":"q1n68","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e99","source":"q1n57","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e100","source":"q1n71","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer15 = \"RSA\"","label":"varReplacer15 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer16 = \"BC\"","label":"varReplacer16 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer15, varReplacer16)","label":"r2 = staticinvoke (varReplacer15, varReplacer16)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer9 = 2048","label":"varReplacer9 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer9)","label":"virtualinvoke r2.(varReplacer9)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer11 = \"RSA\/NONE\/NoPadding\"","label":"varReplacer11 = \"RSA\/NONE\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer12 = \"BC\"","label":"varReplacer12 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer11, varReplacer12)","label":"r4 = staticinvoke (varReplacer11, varReplacer12)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer10 = 1","label":"varReplacer10 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer10, $r5)","label":"virtualinvoke r4.(varReplacer10, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer13 = \"RSA\/NONE\/NoPadding\"","label":"varReplacer13 = \"RSA\/NONE\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer14 = \"BC\"","label":"varReplacer14 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer13, varReplacer14)","label":"r6 = staticinvoke (varReplacer13, varReplacer14)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer17 = 2","label":"varReplacer17 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer17, $r7)","label":"virtualinvoke r6.(varReplacer17, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA3: void main(java.lang.String[])>","id":2}],"query":"F r2 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#85924a3eaaca168d90cf789378c674032130ea6c5f0683b3fdfa6b0e4282bd45.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#85924a3eaaca168d90cf789378c674032130ea6c5f0683b3fdfa6b0e4282bd45.json new file mode 100644 index 000000000..99aa93cdb --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#85924a3eaaca168d90cf789378c674032130ea6c5f0683b3fdfa6b0e4282bd45.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":47,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":48,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":38,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":42,"factId":47,"ideValue":"Weight: [-1 -> 3]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":34,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":28,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":46,"factId":47,"ideValue":"Weight: [-1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":37,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":32,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":41,"factId":47,"ideValue":"Weight: [-1 -> 2]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":25,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":30,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":33,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":45,"factId":47,"ideValue":"Weight: [-1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":1080},"group":"nodes"},{"data":{"stmtId":26,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":35,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":39,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":40,"factId":47,"ideValue":"Weight: [-1 -> 1]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":43,"factId":47,"ideValue":"Weight: [-1 -> 3]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":29,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":27,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":36,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":22,"factId":48,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":44,"factId":47,"ideValue":"Weight: [-1 -> ERR]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":1050},"group":"nodes"},{"data":{"stmtId":24,"factId":47,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"directed":"true","id":"e72","source":"q1n69","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n55","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n50","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n57","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n62","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n58","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n59","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n54","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n56","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n70","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n52","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n49","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n65","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n63","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n68","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n67","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n61","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n64","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n51","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n66","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n71","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n60","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r14 := @parameter0: java.lang.String[]","label":"r14 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer24 = \"RSA\"","label":"varReplacer24 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer25 = \"BC\"","label":"varReplacer25 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer24, varReplacer25)","label":"r1 = staticinvoke (varReplacer24, varReplacer25)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer23 = 2048","label":"varReplacer23 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer23, $r2)","label":"virtualinvoke r1.(varReplacer23, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer26 = \"SHA256withRSAandMGF1\"","label":"varReplacer26 = \"SHA256withRSAandMGF1\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer27 = \"BC\"","label":"varReplacer27 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer26, varReplacer27)","label":"r4 = staticinvoke (varReplacer26, varReplacer27)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = new java.security.spec.PSSParameterSpec","label":"$r5 = new java.security.spec.PSSParameterSpec","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r6 = ","label":"$r6 = ","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer18 = \"SHA-256\"","label":"varReplacer18 = \"SHA-256\"","id":"stmt26","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer19 = \"MGF1\"","label":"varReplacer19 = \"MGF1\"","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer20 = 20","label":"varReplacer20 = 20","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"varReplacer21 = 1","label":"varReplacer21 = 1","id":"stmt29","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[{"methodName":"<java.security.spec.PSSParameterSpec: void <init>(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>","id":31}],"shortLabel":"$r5.(varReplacer18, varReplacer19, $r6, varReplacer20, varReplacer21)","label":"specialinvoke $r5.(java.lang.String,java.lang.String,java.security.spec.AlgorithmParameterSpec,int,int)>(varReplacer18, varReplacer19, $r6, varReplacer20, varReplacer21)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r7 = $r5","label":"r7 = $r5","id":"stmt32","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r4.setParameter(r7)","label":"virtualinvoke r4.(r7)","id":"stmt33","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r8 = \"Testing weak RSA-PSS\"","label":"$r8 = \"Testing weak RSA-PSS\"","id":"stmt34","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"varReplacer22 = \"UTF-8\"","label":"varReplacer22 = \"UTF-8\"","id":"stmt35","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":36,"callees":[],"shortLabel":"r9 = $r8.getBytes(varReplacer22)","label":"r9 = virtualinvoke $r8.(varReplacer22)","id":"stmt36","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":37,"callees":[],"shortLabel":"$r10 = r3.getPrivate()","label":"$r10 = virtualinvoke r3.()","id":"stmt37","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r11 = new java.security.SecureRandom","label":"$r11 = new java.security.SecureRandom","id":"stmt38","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r11.()","label":"specialinvoke $r11.()>()","id":"stmt39","stmtIndex":30},"classes":"stmt label callSite method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":40,"callees":[],"shortLabel":"r4.initSign($r10, $r11)","label":"virtualinvoke r4.($r10, $r11)","id":"stmt40","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt41","stmtIndex":32},"classes":"stmt label callSite method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt41","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":42,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt42","stmtIndex":33},"classes":"stmt label callSite method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt42","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":43,"callees":[],"shortLabel":"$r13 = r3.getPublic()","label":"$r13 = virtualinvoke r3.()","id":"stmt43","stmtIndex":34},"classes":"stmt label callSite method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":44,"callees":[],"shortLabel":"r4.initVerify($r13)","label":"virtualinvoke r4.($r13)","id":"stmt44","stmtIndex":35},"classes":"stmt label callSite method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":45,"callees":[],"shortLabel":"r4.update(r9)","label":"virtualinvoke r4.(r9)","id":"stmt45","stmtIndex":36},"classes":"stmt label callSite method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"stmtId":46,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt46","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.sign.weakSignatureRSA.PSSw1024xSHA256_2: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8e9d1ea268d4626ee501f1a9a848b5d8f74702e98c7baff431ae245c4189fa16.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8e9d1ea268d4626ee501f1a9a848b5d8f74702e98c7baff431ae245c4189fa16.json new file mode 100644 index 000000000..3ba466abb --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#8e9d1ea268d4626ee501f1a9a848b5d8f74702e98c7baff431ae245c4189fa16.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":44,"label":"varReplacer15 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":45,"label":"varReplacer15 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":36,"factId":44,"ideValue":"ONE","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":37,"factId":44,"ideValue":"ONE","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":39,"factId":44,"ideValue":"ONE","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"ONE","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":60,"y":780},"group":"nodes"},{"data":{"stmtId":41,"factId":44,"ideValue":"ONE","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":38,"factId":44,"ideValue":"ONE","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":40,"factId":44,"ideValue":"ONE","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"directed":"true","id":"e53","source":"q1n51","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e54","source":"q1n52","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e55","source":"q1n47","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e56","source":"q1n49","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n46","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n48","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r16 := @parameter0: java.lang.String[]","label":"r16 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","label":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[],"shortLabel":"r17 = $r0.getBytes()","label":"r17 = virtualinvoke $r0.()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"r1 = newarray (byte)[16]","label":"r1 = newarray (byte)[16]","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":9,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":10}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt9","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":12}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt11","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt11","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r5 = new javax.crypto.spec.SecretKeySpec","label":"$r5 = new javax.crypto.spec.SecretKeySpec","id":"stmt15","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer10 = \"AES\"","label":"varReplacer10 = \"AES\"","id":"stmt16","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":18}],"shortLabel":"$r5.(r17, varReplacer10)","label":"specialinvoke $r5.(byte[],java.lang.String)>(r17, varReplacer10)","id":"stmt17","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt17","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer12 = \"AES\/CTR\/NoPadding\"","label":"varReplacer12 = \"AES\/CTR\/NoPadding\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer13 = \"SunJCE\"","label":"varReplacer13 = \"SunJCE\"","id":"stmt21","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r7 = getInstance(varReplacer12, varReplacer13)","label":"r7 = staticinvoke (varReplacer12, varReplacer13)","id":"stmt22","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r8 = new javax.crypto.spec.IvParameterSpec","label":"$r8 = new javax.crypto.spec.IvParameterSpec","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":26}],"shortLabel":"$r8.(r1)","label":"specialinvoke $r8.(byte[])>(r1)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer11 = 1","label":"varReplacer11 = 1","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"r7.init(varReplacer11, r6, r9)","label":"virtualinvoke r7.(varReplacer11, r6, r9)","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r10 = r7.doFinal(r4)","label":"r10 = virtualinvoke r7.(r4)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r11 = new javax.crypto.spec.SecretKeySpec","label":"$r11 = new javax.crypto.spec.SecretKeySpec","id":"stmt31","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: byte[] getEncoded()>","id":33}],"shortLabel":"$r12 = r6.getEncoded()","label":"$r12 = virtualinvoke r6.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"varReplacer15 = \"AES\"","label":"varReplacer15 = \"AES\"","id":"stmt34","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":18}],"shortLabel":"$r11.($r12, varReplacer15)","label":"specialinvoke $r11.(byte[],java.lang.String)>($r12, varReplacer15)","id":"stmt35","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"r13 = $r11","label":"r13 = $r11","id":"stmt36","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"varReplacer14 = 2","label":"varReplacer14 = 2","id":"stmt37","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":38,"callees":[],"shortLabel":"r7.init(varReplacer14, r13, r9)","label":"virtualinvoke r7.(varReplacer14, r13, r9)","id":"stmt38","stmtIndex":29},"classes":"stmt label callSite method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r7.doFinal(r10)","label":"virtualinvoke r7.(r10)","id":"stmt39","stmtIndex":30},"classes":"stmt label callSite method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt40","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"shortLabel":"$r15 := @caughtexception","label":"$r15 := @caughtexception","id":"stmt42","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt42","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"r18 = $r15","label":"r18 = $r15","id":"stmt43","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt43","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt41","stmtIndex":34},"classes":"stmt label returnSite method2","position":{"x":10,"y":1050}}]},"methodName":"<pkm.constantKey.ConstantKeyAES3: void main(java.lang.String[])>","id":2}],"query":"F varReplacer15 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#9129d3e06d6a8e299ab20038ec305192f0b3dc79dc9ad0b9438bb7c2be7e5c77.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#9129d3e06d6a8e299ab20038ec305192f0b3dc79dc9ad0b9438bb7c2be7e5c77.json new file mode 100644 index 000000000..39dc7d7d6 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#9129d3e06d6a8e299ab20038ec305192f0b3dc79dc9ad0b9438bb7c2be7e5c77.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r1 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r1 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":22,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":14,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":240},"group":"nodes"},{"data":{"stmtId":19,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":17,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":21,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":20,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":15,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":270},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":12,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":60,"y":210},"group":"nodes"},{"data":{"stmtId":18,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"directed":"true","id":"e61","source":"q1n56","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n60","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n54","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n52","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n47","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n42","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n58","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n51","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n49","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n40","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n48","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n46","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n59","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n43","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n45","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n53","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n41","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n44","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n50","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n39","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n55","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer34 = \"RSA\"","label":"varReplacer34 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer35 = \"BC\"","label":"varReplacer35 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer34, varReplacer35)","label":"r1 = staticinvoke (varReplacer34, varReplacer35)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer39 = 2048","label":"varReplacer39 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer39, $r2)","label":"virtualinvoke r1.(varReplacer39, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer37 = \"SHA1withRSAandMGF1\"","label":"varReplacer37 = \"SHA1withRSAandMGF1\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer38 = \"BC\"","label":"varReplacer38 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer37, varReplacer38)","label":"r4 = staticinvoke (varReplacer37, varReplacer38)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PSS w\/ SHA1\"","label":"$r5 = \"Testing RSA PSS w\/ SHA1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer36 = \"UTF-8\"","label":"varReplacer36 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer36)","label":"r6 = virtualinvoke $r5.(varReplacer36)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.insecurePaddingSign.PSSwSHA1Signature: void main(java.lang.String[])>","id":2}],"query":"F r1 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#97e5cb5fae382069f56ebf29e2cf9e5c7c64021d11e5062a7b21e40fde4758cc.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#97e5cb5fae382069f56ebf29e2cf9e5c7c64021d11e5062a7b21e40fde4758cc.json new file mode 100644 index 000000000..e8fce5ba2 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#97e5cb5fae382069f56ebf29e2cf9e5c7c64021d11e5062a7b21e40fde4758cc.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":39,"label":"r1 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":40,"label":"r1 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":21,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":20,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":35,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":14,"factId":39,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":240},"group":"nodes"},{"data":{"stmtId":18,"factId":39,"ideValue":"Weight: [-1 -> 1]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":24,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":17,"factId":39,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":26,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":12,"factId":40,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":60,"y":210},"group":"nodes"},{"data":{"stmtId":30,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":22,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":25,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":27,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":38,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":34,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":32,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":31,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":28,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":19,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":36,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":15,"factId":39,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":270},"group":"nodes"},{"data":{"stmtId":29,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":33,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":37,"factId":39,"ideValue":"Weight: [-1 -> 2]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"directed":"true","id":"e65","source":"q1n45","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n50","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n56","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n44","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n61","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n48","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n60","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n52","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n62","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n53","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n58","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n55","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n59","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n47","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n43","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n51","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n63","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n41","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n42","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n64","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n57","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n46","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n49","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r12 := @parameter0: java.lang.String[]","label":"r12 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer0 = \"RSA\"","label":"varReplacer0 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer1 = \"BC\"","label":"varReplacer1 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer0, varReplacer1)","label":"r1 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer2 = 2048","label":"varReplacer2 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer2, $r2)","label":"virtualinvoke r1.(varReplacer2, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer3 = \"SHA1withRSAandMGF1\"","label":"varReplacer3 = \"SHA1withRSAandMGF1\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer4 = \"BC\"","label":"varReplacer4 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer3, varReplacer4)","label":"r4 = staticinvoke (varReplacer3, varReplacer4)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = ","label":"$r5 = ","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.setParameter($r5)","label":"virtualinvoke r4.($r5)","id":"stmt25","stmtIndex":17},"classes":"stmt label callSite method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r6 = \"Testing RSA PSS w\/ SHA1\"","label":"$r6 = \"Testing RSA PSS w\/ SHA1\"","id":"stmt26","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer5 = \"UTF-8\"","label":"varReplacer5 = \"UTF-8\"","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[],"shortLabel":"r7 = $r6.getBytes(varReplacer5)","label":"r7 = virtualinvoke $r6.(varReplacer5)","id":"stmt28","stmtIndex":20},"classes":"stmt label callSite method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r8 = r3.getPrivate()","label":"$r8 = virtualinvoke r3.()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r9 = new java.security.SecureRandom","label":"$r9 = new java.security.SecureRandom","id":"stmt30","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r9.()","label":"specialinvoke $r9.()>()","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.initSign($r8, $r9)","label":"virtualinvoke r4.($r8, $r9)","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r4.update(r7)","label":"virtualinvoke r4.(r7)","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r11 = r3.getPublic()","label":"$r11 = virtualinvoke r3.()","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":36,"callees":[],"shortLabel":"r4.initVerify($r11)","label":"virtualinvoke r4.($r11)","id":"stmt36","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":37,"callees":[],"shortLabel":"r4.update(r7)","label":"virtualinvoke r4.(r7)","id":"stmt37","stmtIndex":29},"classes":"stmt label callSite method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt38","stmtIndex":30},"classes":"stmt label returnSite method2","position":{"x":10,"y":930}}]},"methodName":"<pkc.sign.insecurePaddingSign.PSSwSHA1Signature1: void main(java.lang.String[])>","id":2}],"query":"F r1 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#9a349afb7d16cfc04333fdc7448e679af06bae42f913b88a9602ddb6996e31c8.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#9a349afb7d16cfc04333fdc7448e679af06bae42f913b88a9602ddb6996e31c8.json new file mode 100644 index 000000000..f8c4afb98 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#9a349afb7d16cfc04333fdc7448e679af06bae42f913b88a9602ddb6996e31c8.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":61,"label":"varReplacer3 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":62,"label":"varReplacer3 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":60,"factId":61,"ideValue":"ONE","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":1620},"group":"nodes"},{"data":{"stmtId":50,"factId":61,"ideValue":"ONE","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":1350},"group":"nodes"},{"data":{"stmtId":41,"factId":62,"ideValue":"ONE","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":60,"y":1140},"group":"nodes"},{"data":{"stmtId":57,"factId":61,"ideValue":"ONE","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":1560},"group":"nodes"},{"data":{"stmtId":48,"factId":61,"ideValue":"ONE","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":1290},"group":"nodes"},{"data":{"stmtId":49,"factId":61,"ideValue":"ONE","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":1320},"group":"nodes"},{"data":{"stmtId":58,"factId":61,"ideValue":"ONE","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":30,"y":1590},"group":"nodes"},{"data":{"stmtId":53,"factId":61,"ideValue":"ONE","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":1440},"group":"nodes"},{"data":{"stmtId":46,"factId":61,"ideValue":"ONE","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":1260},"group":"nodes"},{"data":{"stmtId":52,"factId":61,"ideValue":"ONE","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":1410},"group":"nodes"},{"data":{"stmtId":45,"factId":61,"ideValue":"ONE","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":1230},"group":"nodes"},{"data":{"stmtId":44,"factId":61,"ideValue":"ONE","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":30,"y":1200},"group":"nodes"},{"data":{"stmtId":54,"factId":61,"ideValue":"ONE","id":"q1n75"},"classes":"esgNode method2 ","position":{"x":30,"y":1470},"group":"nodes"},{"data":{"stmtId":56,"factId":61,"ideValue":"ONE","id":"q1n76"},"classes":"esgNode method2 ","position":{"x":30,"y":1530},"group":"nodes"},{"data":{"stmtId":43,"factId":61,"ideValue":"ONE","id":"q1n77"},"classes":"esgNode method2 ","position":{"x":30,"y":1170},"group":"nodes"},{"data":{"stmtId":51,"factId":61,"ideValue":"ONE","id":"q1n78"},"classes":"esgNode method2 ","position":{"x":30,"y":1380},"group":"nodes"},{"data":{"stmtId":55,"factId":61,"ideValue":"ONE","id":"q1n79"},"classes":"esgNode method2 ","position":{"x":30,"y":1500},"group":"nodes"},{"data":{"directed":"true","id":"e80","source":"q1n68","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n66","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n76","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n77","target":"q1n74","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n73","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n71","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n69","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n70","target":"q1n75","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n74","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n75","target":"q1n79","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n64","target":"q1n78","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n78","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n67","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n65","target":"q1n77","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n79","target":"q1n76","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e95","source":"q1n72","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = newarray (byte)[32]","label":"$r0 = newarray (byte)[32]","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"stmtId":6,"shortLabel":"$r0[0] = 1","label":"$r0[0] = 1","id":"stmt6","stmtIndex":3},"classes":"stmt label method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"$r0[1] = 35","label":"$r0[1] = 35","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r0[2] = 69","label":"$r0[2] = 69","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"stmtId":9,"shortLabel":"$r0[3] = 103","label":"$r0[3] = 103","id":"stmt9","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r0[4] = -119","label":"$r0[4] = -119","id":"stmt10","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"$r0[5] = -85","label":"$r0[5] = -85","id":"stmt11","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"$r0[6] = -51","label":"$r0[6] = -51","id":"stmt12","stmtIndex":9},"classes":"stmt label method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r0[7] = -17","label":"$r0[7] = -17","id":"stmt13","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r0[8] = 1","label":"$r0[8] = 1","id":"stmt14","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r0[9] = 35","label":"$r0[9] = 35","id":"stmt15","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"$r0[10] = 69","label":"$r0[10] = 69","id":"stmt16","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"$r0[11] = 103","label":"$r0[11] = 103","id":"stmt17","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"$r0[12] = -119","label":"$r0[12] = -119","id":"stmt18","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"$r0[13] = -85","label":"$r0[13] = -85","id":"stmt19","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"$r0[14] = -51","label":"$r0[14] = -51","id":"stmt20","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"$r0[15] = -17","label":"$r0[15] = -17","id":"stmt21","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"stmtId":22,"shortLabel":"$r0[16] = 1","label":"$r0[16] = 1","id":"stmt22","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt22","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"stmtId":23,"shortLabel":"$r0[17] = 35","label":"$r0[17] = 35","id":"stmt23","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r0[18] = 69","label":"$r0[18] = 69","id":"stmt24","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r0[19] = 103","label":"$r0[19] = 103","id":"stmt25","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r0[20] = -119","label":"$r0[20] = -119","id":"stmt26","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"$r0[21] = -85","label":"$r0[21] = -85","id":"stmt27","stmtIndex":24},"classes":"stmt label method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r0[22] = -51","label":"$r0[22] = -51","id":"stmt28","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"$r0[23] = -17","label":"$r0[23] = -17","id":"stmt29","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r0[24] = 1","label":"$r0[24] = 1","id":"stmt30","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r0[25] = 35","label":"$r0[25] = 35","id":"stmt31","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"$r0[26] = 69","label":"$r0[26] = 69","id":"stmt32","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"$r0[27] = 103","label":"$r0[27] = 103","id":"stmt33","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r0[28] = -119","label":"$r0[28] = -119","id":"stmt34","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"$r0[29] = -85","label":"$r0[29] = -85","id":"stmt35","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r0[30] = -51","label":"$r0[30] = -51","id":"stmt36","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"$r0[31] = -17","label":"$r0[31] = -17","id":"stmt37","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"r1 = $r0","label":"r1 = $r0","id":"stmt38","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"shortLabel":"$r2 = new javax.crypto.spec.SecretKeySpec","label":"$r2 = new javax.crypto.spec.SecretKeySpec","id":"stmt39","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"varReplacer3 = \"HMACSHA256\"","label":"varReplacer3 = \"HMACSHA256\"","id":"stmt40","stmtIndex":37},"classes":"stmt label method2","position":{"x":10,"y":1140}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r2.(r1, varReplacer3)","label":"specialinvoke $r2.(byte[],java.lang.String)>(r1, varReplacer3)","id":"stmt41","stmtIndex":38},"classes":"stmt label callSite method2","position":{"x":10,"y":1170}},{"data":{"directed":"true","source":"stmt41","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"r3 = $r2","label":"r3 = $r2","id":"stmt43","stmtIndex":39},"classes":"stmt label method2","position":{"x":10,"y":1200}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"varReplacer0 = \"HMACSHA256\"","label":"varReplacer0 = \"HMACSHA256\"","id":"stmt44","stmtIndex":40},"classes":"stmt label method2","position":{"x":10,"y":1230}},{"data":{"directed":"true","source":"stmt44","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"stmtId":45,"shortLabel":"varReplacer1 = \"SunJCE\"","label":"varReplacer1 = \"SunJCE\"","id":"stmt45","stmtIndex":41},"classes":"stmt label method2","position":{"x":10,"y":1260}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":46,"callees":[{"methodName":"<javax.crypto.Mac: javax.crypto.Mac getInstance(java.lang.String,java.lang.String)>","id":47}],"shortLabel":"r4 = getInstance(varReplacer0, varReplacer1)","label":"r4 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt46","stmtIndex":42},"classes":"stmt label callSite method2","position":{"x":10,"y":1290}},{"data":{"directed":"true","source":"stmt46","target":"stmt48"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":48,"callees":[],"shortLabel":"r4.init(r3)","label":"virtualinvoke r4.(r3)","id":"stmt48","stmtIndex":43},"classes":"stmt label callSite method2","position":{"x":10,"y":1320}},{"data":{"directed":"true","source":"stmt48","target":"stmt49"},"classes":"cfgEdge label method2"},{"data":{"stmtId":49,"shortLabel":"$r5 = \"This is a test for MAC\"","label":"$r5 = \"This is a test for MAC\"","id":"stmt49","stmtIndex":44},"classes":"stmt label method2","position":{"x":10,"y":1350}},{"data":{"directed":"true","source":"stmt49","target":"stmt50"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":50,"callees":[],"shortLabel":"r6 = $r5.getBytes()","label":"r6 = virtualinvoke $r5.()","id":"stmt50","stmtIndex":45},"classes":"stmt label callSite method2","position":{"x":10,"y":1380}},{"data":{"directed":"true","source":"stmt50","target":"stmt51"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":51,"callees":[],"shortLabel":"r7 = r4.doFinal(r6)","label":"r7 = virtualinvoke r4.(r6)","id":"stmt51","stmtIndex":46},"classes":"stmt label callSite method2","position":{"x":10,"y":1410}},{"data":{"directed":"true","source":"stmt51","target":"stmt52"},"classes":"cfgEdge label method2"},{"data":{"stmtId":52,"shortLabel":"$r8 = new javax.crypto.spec.SecretKeySpec","label":"$r8 = new javax.crypto.spec.SecretKeySpec","id":"stmt52","stmtIndex":47},"classes":"stmt label method2","position":{"x":10,"y":1440}},{"data":{"directed":"true","source":"stmt52","target":"stmt53"},"classes":"cfgEdge label method2"},{"data":{"stmtId":53,"shortLabel":"varReplacer2 = \"HMACSHA256\"","label":"varReplacer2 = \"HMACSHA256\"","id":"stmt53","stmtIndex":48},"classes":"stmt label method2","position":{"x":10,"y":1470}},{"data":{"directed":"true","source":"stmt53","target":"stmt54"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":54,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":42}],"shortLabel":"$r8.(r1, varReplacer2)","label":"specialinvoke $r8.(byte[],java.lang.String)>(r1, varReplacer2)","id":"stmt54","stmtIndex":49},"classes":"stmt label callSite method2","position":{"x":10,"y":1500}},{"data":{"directed":"true","source":"stmt54","target":"stmt55"},"classes":"cfgEdge label method2"},{"data":{"stmtId":55,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt55","stmtIndex":50},"classes":"stmt label method2","position":{"x":10,"y":1530}},{"data":{"directed":"true","source":"stmt55","target":"stmt56"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":56,"callees":[],"shortLabel":"r4.init(r9)","label":"virtualinvoke r4.(r9)","id":"stmt56","stmtIndex":51},"classes":"stmt label callSite method2","position":{"x":10,"y":1560}},{"data":{"directed":"true","source":"stmt56","target":"stmt57"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":57,"callees":[],"shortLabel":"r10 = r4.doFinal(r6)","label":"r10 = virtualinvoke r4.(r6)","id":"stmt57","stmtIndex":52},"classes":"stmt label callSite method2","position":{"x":10,"y":1590}},{"data":{"directed":"true","source":"stmt57","target":"stmt58"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":58,"callees":[{"methodName":"<java.security.MessageDigest: boolean isEqual(byte[],byte[])>","id":59}],"shortLabel":"z0 = isEqual(r10, r7)","label":"z0 = staticinvoke (r10, r7)","id":"stmt58","stmtIndex":53},"classes":"stmt label callSite method2","position":{"x":10,"y":1620}},{"data":{"directed":"true","source":"stmt58","target":"stmt60"},"classes":"cfgEdge label method2"},{"data":{"stmtId":60,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt60","stmtIndex":54},"classes":"stmt label returnSite method2","position":{"x":10,"y":1650}}]},"methodName":"<pkm.constantKey.ConstantKeyforMAC: void main(java.lang.String[])>","id":2}],"query":"F varReplacer3 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#a8c9faf06bd9c779daa3aad99f3046fd866da63fc7fa78cf6294651196a5f381.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#a8c9faf06bd9c779daa3aad99f3046fd866da63fc7fa78cf6294651196a5f381.json new file mode 100644 index 000000000..69e61227e --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#a8c9faf06bd9c779daa3aad99f3046fd866da63fc7fa78cf6294651196a5f381.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":38,"label":"r7 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":39,"label":"r7 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":27,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":25,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":35,"factId":38,"ideValue":"Weight: [-1 -> ERR]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":29,"factId":38,"ideValue":"Weight: [-1 -> 1]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":24,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":33,"factId":38,"ideValue":"Weight: [-1 -> ERR]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":22,"factId":39,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":60,"y":480},"group":"nodes"},{"data":{"stmtId":30,"factId":38,"ideValue":"Weight: [-1 -> 3]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":31,"factId":38,"ideValue":"Weight: [-1 -> 3]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":28,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":34,"factId":38,"ideValue":"Weight: [-1 -> ERR]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":32,"factId":38,"ideValue":"Weight: [-1 -> ERR]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"directed":"true","id":"e52","source":"q1n50","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e53","source":"q1n44","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e54","source":"q1n41","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e55","source":"q1n51","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e56","source":"q1n45","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n49","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n40","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e59","source":"q1n48","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e60","source":"q1n46","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n43","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n47","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","label":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[],"shortLabel":"r14 = $r0.getBytes()","label":"r14 = virtualinvoke $r0.()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"r1 = newarray (byte)[16]","label":"r1 = newarray (byte)[16]","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":9,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":10}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt9","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":12}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt11","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt11","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r5 = new javax.crypto.spec.SecretKeySpec","label":"$r5 = new javax.crypto.spec.SecretKeySpec","id":"stmt15","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer22 = \"AES\"","label":"varReplacer22 = \"AES\"","id":"stmt16","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":18}],"shortLabel":"$r5.(r14, varReplacer22)","label":"specialinvoke $r5.(byte[],java.lang.String)>(r14, varReplacer22)","id":"stmt17","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt17","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer25 = \"AES\/CTR\/NoPadding\"","label":"varReplacer25 = \"AES\/CTR\/NoPadding\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer26 = \"SunJCE\"","label":"varReplacer26 = \"SunJCE\"","id":"stmt21","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r7 = getInstance(varReplacer25, varReplacer26)","label":"r7 = staticinvoke (varReplacer25, varReplacer26)","id":"stmt22","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r8 = new javax.crypto.spec.IvParameterSpec","label":"$r8 = new javax.crypto.spec.IvParameterSpec","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":26}],"shortLabel":"$r8.(r1)","label":"specialinvoke $r8.(byte[])>(r1)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer23 = 1","label":"varReplacer23 = 1","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"r7.init(varReplacer23, r6, r9)","label":"virtualinvoke r7.(varReplacer23, r6, r9)","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r10 = r7.doFinal(r4)","label":"r10 = virtualinvoke r7.(r4)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"varReplacer24 = 2","label":"varReplacer24 = 2","id":"stmt31","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r7.init(varReplacer24, r6, r9)","label":"virtualinvoke r7.(varReplacer24, r6, r9)","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r11 = r7.doFinal(r10)","label":"r11 = virtualinvoke r7.(r10)","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt34","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt36","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt37","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt35","stmtIndex":29},"classes":"stmt label returnSite method2","position":{"x":10,"y":900}}]},"methodName":"<pkm.constantKey.ConstantKeyAES2: void main(java.lang.String[])>","id":2}],"query":"F r7 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#a9dc41def282f6f5eaed8c5c931d8996c256792d3dc81c3fcf81a206980f9bd.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#a9dc41def282f6f5eaed8c5c931d8996c256792d3dc81c3fcf81a206980f9bd.json new file mode 100644 index 000000000..3e34c7d25 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#a9dc41def282f6f5eaed8c5c931d8996c256792d3dc81c3fcf81a206980f9bd.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":21,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":27,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":28,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":25,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":26,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":23,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":24,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"directed":"true","id":"e68","source":"q1n67","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n51","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n50","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n66","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n55","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n47","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n62","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n54","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n49","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n57","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n61","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n55","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n64","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n52","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n65","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n48","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n53","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n56","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n59","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n60","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n58","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer7 = \"RSA\"","label":"varReplacer7 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer8 = \"BC\"","label":"varReplacer8 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer7, varReplacer8)","label":"r2 = staticinvoke (varReplacer7, varReplacer8)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer3 = 2048","label":"varReplacer3 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer3)","label":"virtualinvoke r2.(varReplacer3)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer4 = \"RSA\/None\/NoPadding\"","label":"varReplacer4 = \"RSA\/None\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer5 = \"BC\"","label":"varReplacer5 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer4, varReplacer5)","label":"r4 = staticinvoke (varReplacer4, varReplacer5)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer6 = 1","label":"varReplacer6 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer6, $r5)","label":"virtualinvoke r4.(varReplacer6, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer0 = \"RSA\/None\/NoPadding\"","label":"varReplacer0 = \"RSA\/None\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer1 = \"BC\"","label":"varReplacer1 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer0, varReplacer1)","label":"r6 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer2 = 2","label":"varReplacer2 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer2, $r7)","label":"virtualinvoke r6.(varReplacer2, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA2: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#ad8176411eefd12fd96606b3fb6b1fb3a8f6ba9cae67432061ad57eb842726b9.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#ad8176411eefd12fd96606b3fb6b1fb3a8f6ba9cae67432061ad57eb842726b9.json new file mode 100644 index 000000000..ac072df75 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#ad8176411eefd12fd96606b3fb6b1fb3a8f6ba9cae67432061ad57eb842726b9.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":22,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"directed":"true","id":"e53","source":"q1n49","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e54","source":"q1n43","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e55","source":"q1n44","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e56","source":"q1n52","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n48","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n47","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e59","source":"q1n41","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e60","source":"q1n51","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n39","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n42","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n50","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n46","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n40","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer24 = \"RSA\"","label":"varReplacer24 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer25 = \"BC\"","label":"varReplacer25 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer24, varReplacer25)","label":"r1 = staticinvoke (varReplacer24, varReplacer25)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer22 = 2048","label":"varReplacer22 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer22, $r2)","label":"virtualinvoke r1.(varReplacer22, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer26 = \"SHA256withRSA\"","label":"varReplacer26 = \"SHA256withRSA\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer27 = \"BC\"","label":"varReplacer27 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer26, varReplacer27)","label":"r4 = staticinvoke (varReplacer26, varReplacer27)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PKCS1\"","label":"$r5 = \"Testing RSA PKCS1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer23 = \"UTF-8\"","label":"varReplacer23 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer23)","label":"r6 = virtualinvoke $r5.(varReplacer23)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.insecurePaddingSign.PKCS1Signature1: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b446fbba1d98f41e16adfedaa1165d6bf343feafa721feea53c8459bd72cf000.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b446fbba1d98f41e16adfedaa1165d6bf343feafa721feea53c8459bd72cf000.json new file mode 100644 index 000000000..5572cd428 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b446fbba1d98f41e16adfedaa1165d6bf343feafa721feea53c8459bd72cf000.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":22,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"directed":"true","id":"e53","source":"q1n48","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e54","source":"q1n50","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e55","source":"q1n46","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e56","source":"q1n43","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n52","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n51","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e59","source":"q1n41","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e60","source":"q1n49","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n44","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n42","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n40","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n47","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n39","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer16 = \"RSA\"","label":"varReplacer16 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer17 = \"BC\"","label":"varReplacer17 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer16, varReplacer17)","label":"r1 = staticinvoke (varReplacer16, varReplacer17)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer12 = 1024","label":"varReplacer12 = 1024","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer12, $r2)","label":"virtualinvoke r1.(varReplacer12, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer13 = \"SHA1withRSA\"","label":"varReplacer13 = \"SHA1withRSA\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer14 = \"BC\"","label":"varReplacer14 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer13, varReplacer14)","label":"r4 = staticinvoke (varReplacer13, varReplacer14)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PKCS1\"","label":"$r5 = \"Testing RSA PKCS1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer15 = \"UTF-8\"","label":"varReplacer15 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer15)","label":"r6 = virtualinvoke $r5.(varReplacer15)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.weakSignatureRSA.PKCS1Sign1024xSHA1_1: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b77bfa30934494fb37e69fc21bd6cfc2b1681f182a0775370d29800a62cae437.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b77bfa30934494fb37e69fc21bd6cfc2b1681f182a0775370d29800a62cae437.json new file mode 100644 index 000000000..65051bd7b --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b77bfa30934494fb37e69fc21bd6cfc2b1681f182a0775370d29800a62cae437.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":44,"label":"r7 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":45,"label":"r7 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":32,"factId":44,"ideValue":"Weight: [-1 -> 3]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":31,"factId":44,"ideValue":"Weight: [-1 -> 3]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":36,"factId":44,"ideValue":"Weight: [-1 -> 3]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":29,"factId":44,"ideValue":"Weight: [-1 -> 1]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":22,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":60,"y":480},"group":"nodes"},{"data":{"stmtId":41,"factId":44,"ideValue":"Weight: [-1 -> ERR]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":35,"factId":44,"ideValue":"Weight: [-1 -> 3]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":39,"factId":44,"ideValue":"Weight: [-1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":27,"factId":44,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":24,"factId":44,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":37,"factId":44,"ideValue":"Weight: [-1 -> 3]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":25,"factId":44,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":30,"factId":44,"ideValue":"Weight: [-1 -> 3]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":28,"factId":44,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":40,"factId":44,"ideValue":"Weight: [-1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":34,"factId":44,"ideValue":"Weight: [-1 -> 3]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":38,"factId":44,"ideValue":"Weight: [-1 -> ERR]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"directed":"true","id":"e63","source":"q1n50","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n49","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n56","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n61","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n46","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n47","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n48","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n55","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n57","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n60","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n54","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n53","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n58","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n62","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n52","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n59","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r16 := @parameter0: java.lang.String[]","label":"r16 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","label":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[],"shortLabel":"r17 = $r0.getBytes()","label":"r17 = virtualinvoke $r0.()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"r1 = newarray (byte)[16]","label":"r1 = newarray (byte)[16]","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":9,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":10}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt9","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":12}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt11","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt11","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r5 = new javax.crypto.spec.SecretKeySpec","label":"$r5 = new javax.crypto.spec.SecretKeySpec","id":"stmt15","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer10 = \"AES\"","label":"varReplacer10 = \"AES\"","id":"stmt16","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":18}],"shortLabel":"$r5.(r17, varReplacer10)","label":"specialinvoke $r5.(byte[],java.lang.String)>(r17, varReplacer10)","id":"stmt17","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt17","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer12 = \"AES\/CTR\/NoPadding\"","label":"varReplacer12 = \"AES\/CTR\/NoPadding\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer13 = \"SunJCE\"","label":"varReplacer13 = \"SunJCE\"","id":"stmt21","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r7 = getInstance(varReplacer12, varReplacer13)","label":"r7 = staticinvoke (varReplacer12, varReplacer13)","id":"stmt22","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r8 = new javax.crypto.spec.IvParameterSpec","label":"$r8 = new javax.crypto.spec.IvParameterSpec","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":26}],"shortLabel":"$r8.(r1)","label":"specialinvoke $r8.(byte[])>(r1)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer11 = 1","label":"varReplacer11 = 1","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"r7.init(varReplacer11, r6, r9)","label":"virtualinvoke r7.(varReplacer11, r6, r9)","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r10 = r7.doFinal(r4)","label":"r10 = virtualinvoke r7.(r4)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r11 = new javax.crypto.spec.SecretKeySpec","label":"$r11 = new javax.crypto.spec.SecretKeySpec","id":"stmt31","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: byte[] getEncoded()>","id":33}],"shortLabel":"$r12 = r6.getEncoded()","label":"$r12 = virtualinvoke r6.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"varReplacer15 = \"AES\"","label":"varReplacer15 = \"AES\"","id":"stmt34","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":18}],"shortLabel":"$r11.($r12, varReplacer15)","label":"specialinvoke $r11.(byte[],java.lang.String)>($r12, varReplacer15)","id":"stmt35","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"r13 = $r11","label":"r13 = $r11","id":"stmt36","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"varReplacer14 = 2","label":"varReplacer14 = 2","id":"stmt37","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":38,"callees":[],"shortLabel":"r7.init(varReplacer14, r13, r9)","label":"virtualinvoke r7.(varReplacer14, r13, r9)","id":"stmt38","stmtIndex":29},"classes":"stmt label callSite method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r7.doFinal(r10)","label":"virtualinvoke r7.(r10)","id":"stmt39","stmtIndex":30},"classes":"stmt label callSite method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt40","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"shortLabel":"$r15 := @caughtexception","label":"$r15 := @caughtexception","id":"stmt42","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt42","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"r18 = $r15","label":"r18 = $r15","id":"stmt43","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt43","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt41","stmtIndex":34},"classes":"stmt label returnSite method2","position":{"x":10,"y":1050}}]},"methodName":"<pkm.constantKey.ConstantKeyAES3: void main(java.lang.String[])>","id":2}],"query":"F r7 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b96aae5ce22bcc45685e22a8e17c67188888f85db3f310a3c7bf4a2e964fad46.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b96aae5ce22bcc45685e22a8e17c67188888f85db3f310a3c7bf4a2e964fad46.json new file mode 100644 index 000000000..5442c172b --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b96aae5ce22bcc45685e22a8e17c67188888f85db3f310a3c7bf4a2e964fad46.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":22,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"directed":"true","id":"e53","source":"q1n51","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e54","source":"q1n45","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e55","source":"q1n48","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e56","source":"q1n39","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n40","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n47","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e59","source":"q1n46","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e60","source":"q1n42","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n43","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n41","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n44","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n52","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n49","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer30 = \"RSA\"","label":"varReplacer30 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer31 = \"BC\"","label":"varReplacer31 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer30, varReplacer31)","label":"r1 = staticinvoke (varReplacer30, varReplacer31)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer28 = 2048","label":"varReplacer28 = 2048","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer28, $r2)","label":"virtualinvoke r1.(varReplacer28, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer32 = \"SHA1withRSA\"","label":"varReplacer32 = \"SHA1withRSA\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer33 = \"BC\"","label":"varReplacer33 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer32, varReplacer33)","label":"r4 = staticinvoke (varReplacer32, varReplacer33)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PKCS1\"","label":"$r5 = \"Testing RSA PKCS1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer29 = \"UTF-8\"","label":"varReplacer29 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer29)","label":"r6 = virtualinvoke $r5.(varReplacer29)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.insecurePaddingSign.PKCS1Signature: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b9987a5f560d1d47285e9c259cc2366bcfa702c27043ca581f8ec3f6b3d0e865.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b9987a5f560d1d47285e9c259cc2366bcfa702c27043ca581f8ec3f6b3d0e865.json new file mode 100644 index 000000000..6177b1d81 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#b9987a5f560d1d47285e9c259cc2366bcfa702c27043ca581f8ec3f6b3d0e865.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r2 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r2 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":24,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":27,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":16,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":20,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":14,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":60,"y":270},"group":"nodes"},{"data":{"stmtId":17,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":25,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":23,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":19,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":28,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":18,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":21,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n68"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n69"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n70"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n71"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":26,"factId":45,"ideValue":"Weight: [-1 -> 2]","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"directed":"true","id":"e74","source":"q1n50","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n71","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n52","target":"q1n71","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n53","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n64","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n58","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n55","target":"q1n70","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n57","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n69","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n66","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n56","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n70","target":"q1n69","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n63","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n67","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n73","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n49","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n72","target":"q1n65","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n62","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n47","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n48","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n54","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e95","source":"q1n69","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e96","source":"q1n65","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e97","source":"q1n68","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e98","source":"q1n61","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e99","source":"q1n51","target":"q1n68","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e100","source":"q1n59","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer7 = \"RSA\"","label":"varReplacer7 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer8 = \"BC\"","label":"varReplacer8 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer7, varReplacer8)","label":"r2 = staticinvoke (varReplacer7, varReplacer8)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer3 = 2048","label":"varReplacer3 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer3)","label":"virtualinvoke r2.(varReplacer3)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer4 = \"RSA\/None\/NoPadding\"","label":"varReplacer4 = \"RSA\/None\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer5 = \"BC\"","label":"varReplacer5 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer4, varReplacer5)","label":"r4 = staticinvoke (varReplacer4, varReplacer5)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer6 = 1","label":"varReplacer6 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer6, $r5)","label":"virtualinvoke r4.(varReplacer6, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer0 = \"RSA\/None\/NoPadding\"","label":"varReplacer0 = \"RSA\/None\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer1 = \"BC\"","label":"varReplacer1 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer0, varReplacer1)","label":"r6 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer2 = 2","label":"varReplacer2 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer2, $r7)","label":"virtualinvoke r6.(varReplacer2, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA2: void main(java.lang.String[])>","id":2}],"query":"F r2 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#bd3057ce69de13cc65bcaefad0c006a5b7c378c1a262cb735bebed8870c23f32.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#bd3057ce69de13cc65bcaefad0c006a5b7c378c1a262cb735bebed8870c23f32.json new file mode 100644 index 000000000..f66d444da --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#bd3057ce69de13cc65bcaefad0c006a5b7c378c1a262cb735bebed8870c23f32.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 3]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":22,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> ERR]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"directed":"true","id":"e53","source":"q1n43","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e54","source":"q1n50","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e55","source":"q1n48","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e56","source":"q1n42","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n47","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n44","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e59","source":"q1n46","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e60","source":"q1n41","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n45","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n51","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n40","target":"q1n41","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n49","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n52","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer9 = \"RSA\"","label":"varReplacer9 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer10 = \"BC\"","label":"varReplacer10 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer9, varReplacer10)","label":"r1 = staticinvoke (varReplacer9, varReplacer10)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer6 = 1024","label":"varReplacer6 = 1024","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer6, $r2)","label":"virtualinvoke r1.(varReplacer6, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer7 = \"SHA256withRSA\"","label":"varReplacer7 = \"SHA256withRSA\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer8 = \"BC\"","label":"varReplacer8 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer7, varReplacer8)","label":"r4 = staticinvoke (varReplacer7, varReplacer8)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PKCS1\"","label":"$r5 = \"Testing RSA PKCS1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer11 = \"UTF-8\"","label":"varReplacer11 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer11)","label":"r6 = virtualinvoke $r5.(varReplacer11)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.weakSignatureRSA.PKCS1Sign1024xSHA256_2: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c30646694781c4dcd7b69d8919281ffe106f6ad14642d44417f1a3a6d60ed1a0.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c30646694781c4dcd7b69d8919281ffe106f6ad14642d44417f1a3a6d60ed1a0.json new file mode 100644 index 000000000..fd9983769 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c30646694781c4dcd7b69d8919281ffe106f6ad14642d44417f1a3a6d60ed1a0.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":42,"label":"r9 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":43,"label":"r9 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":29,"factId":42,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":33,"factId":42,"ideValue":"Weight: [-1 -> 1]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":37,"factId":42,"ideValue":"Weight: [-1 -> ERR]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":26,"factId":43,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":60,"y":570},"group":"nodes"},{"data":{"stmtId":36,"factId":42,"ideValue":"Weight: [-1 -> ERR]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":39,"factId":42,"ideValue":"Weight: [-1 -> ERR]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":35,"factId":42,"ideValue":"Weight: [-1 -> 3]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":32,"factId":42,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":34,"factId":42,"ideValue":"Weight: [-1 -> 3]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":38,"factId":42,"ideValue":"Weight: [-1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":28,"factId":42,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":31,"factId":42,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"directed":"true","id":"e56","source":"q1n54","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e57","source":"q1n50","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e58","source":"q1n46","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e59","source":"q1n51","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e60","source":"q1n52","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n55","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n53","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n45","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n44","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n48","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n47","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r15 := @parameter0: java.lang.String[]","label":"r15 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","label":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[],"shortLabel":"r16 = $r0.getBytes()","label":"r16 = virtualinvoke $r0.()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"r1 = newarray (byte)[8]","label":"r1 = newarray (byte)[8]","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":9,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":10}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt9","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":12}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt11","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt11","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r5 = new javax.crypto.spec.DESedeKeySpec","label":"$r5 = new javax.crypto.spec.DESedeKeySpec","id":"stmt15","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":16,"callees":[{"methodName":"<javax.crypto.spec.DESedeKeySpec: void <init>(byte[])>","id":17}],"shortLabel":"$r5.(r16)","label":"specialinvoke $r5.(byte[])>(r16)","id":"stmt16","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt16","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt18","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer19 = \"DESede\"","label":"varReplacer19 = \"DESede\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer20 = \"SunJCE\"","label":"varReplacer20 = \"SunJCE\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.SecretKeyFactory: javax.crypto.SecretKeyFactory getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r7 = getInstance(varReplacer19, varReplacer20)","label":"r7 = staticinvoke (varReplacer19, varReplacer20)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"r8 = r7.generateSecret(r6)","label":"r8 = virtualinvoke r7.(r6)","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer16 = \"DESede\/CTR\/NoPadding\"","label":"varReplacer16 = \"DESede\/CTR\/NoPadding\"","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer17 = \"SunJCE\"","label":"varReplacer17 = \"SunJCE\"","id":"stmt25","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":27}],"shortLabel":"r9 = getInstance(varReplacer16, varReplacer17)","label":"r9 = staticinvoke (varReplacer16, varReplacer17)","id":"stmt26","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r10 = new javax.crypto.spec.IvParameterSpec","label":"$r10 = new javax.crypto.spec.IvParameterSpec","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":30}],"shortLabel":"$r10.(r1)","label":"specialinvoke $r10.(byte[])>(r1)","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"r11 = $r10","label":"r11 = $r10","id":"stmt31","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"varReplacer21 = 1","label":"varReplacer21 = 1","id":"stmt32","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"r9.init(varReplacer21, r8, r11)","label":"virtualinvoke r9.(varReplacer21, r8, r11)","id":"stmt33","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r12 = r9.doFinal(r4)","label":"r12 = virtualinvoke r9.(r4)","id":"stmt34","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"varReplacer18 = 2","label":"varReplacer18 = 2","id":"stmt35","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":36,"callees":[],"shortLabel":"r9.init(varReplacer18, r8, r11)","label":"virtualinvoke r9.(varReplacer18, r8, r11)","id":"stmt36","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":37,"callees":[],"shortLabel":"r13 = r9.doFinal(r12)","label":"r13 = virtualinvoke r9.(r12)","id":"stmt37","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt38","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"$r14 := @caughtexception","label":"$r14 := @caughtexception","id":"stmt40","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"r17 = $r14","label":"r17 = $r14","id":"stmt41","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt41","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt39","stmtIndex":32},"classes":"stmt label returnSite method2","position":{"x":10,"y":990}}]},"methodName":"<pkm.constantKey.ConstantKey3DES: void main(java.lang.String[])>","id":2}],"query":"F r9 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c46ad4abada6d8c50b1d55f8f86c72f6ad4d24b5e09f7b034150f7e3727632a3.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c46ad4abada6d8c50b1d55f8f86c72f6ad4d24b5e09f7b034150f7e3727632a3.json new file mode 100644 index 000000000..df39a47be --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c46ad4abada6d8c50b1d55f8f86c72f6ad4d24b5e09f7b034150f7e3727632a3.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":37,"label":"r1 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":38,"label":"r1 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":20,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n39"},"classes":"esgNode method2 ","position":{"x":30,"y":390},"group":"nodes"},{"data":{"stmtId":25,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n40"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":12,"factId":38,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n41"},"classes":"esgNode method2 ","position":{"x":60,"y":210},"group":"nodes"},{"data":{"stmtId":28,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n42"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":21,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n43"},"classes":"esgNode method2 ","position":{"x":30,"y":420},"group":"nodes"},{"data":{"stmtId":29,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n44"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":30,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n45"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":31,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n46"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":34,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":24,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":36,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":22,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":450},"group":"nodes"},{"data":{"stmtId":27,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":33,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":32,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":19,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":360},"group":"nodes"},{"data":{"stmtId":17,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":300},"group":"nodes"},{"data":{"stmtId":15,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":270},"group":"nodes"},{"data":{"stmtId":14,"factId":37,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":240},"group":"nodes"},{"data":{"stmtId":18,"factId":37,"ideValue":"Weight: [-1 -> 1]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":330},"group":"nodes"},{"data":{"stmtId":26,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":35,"factId":37,"ideValue":"Weight: [-1 -> 2]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"directed":"true","id":"e61","source":"q1n43","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n41","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n57","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n53","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n42","target":"q1n44","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n54","target":"q1n39","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n50","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n51","target":"q1n42","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n58","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n39","target":"q1n43","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n52","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n46","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n47","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n44","target":"q1n45","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n60","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n48","target":"q1n40","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n40","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n45","target":"q1n46","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n55","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n59","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n56","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r11 := @parameter0: java.lang.String[]","label":"r11 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"varReplacer16 = \"RSA\"","label":"varReplacer16 = \"RSA\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"varReplacer17 = \"BC\"","label":"varReplacer17 = \"BC\"","id":"stmt11","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":12,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":13}],"shortLabel":"r1 = getInstance(varReplacer16, varReplacer17)","label":"r1 = staticinvoke (varReplacer16, varReplacer17)","id":"stmt12","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt14","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":15,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt15","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt15","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"varReplacer12 = 1024","label":"varReplacer12 = 1024","id":"stmt17","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r1.initialize(varReplacer12, $r2)","label":"virtualinvoke r1.(varReplacer12, $r2)","id":"stmt18","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":19,"callees":[],"shortLabel":"r3 = r1.generateKeyPair()","label":"r3 = virtualinvoke r1.()","id":"stmt19","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer13 = \"SHA1withRSA\"","label":"varReplacer13 = \"SHA1withRSA\"","id":"stmt20","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer14 = \"BC\"","label":"varReplacer14 = \"BC\"","id":"stmt21","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<java.security.Signature: java.security.Signature getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r4 = getInstance(varReplacer13, varReplacer14)","label":"r4 = staticinvoke (varReplacer13, varReplacer14)","id":"stmt22","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r5 = \"Testing RSA PKCS1\"","label":"$r5 = \"Testing RSA PKCS1\"","id":"stmt24","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"varReplacer15 = \"UTF-8\"","label":"varReplacer15 = \"UTF-8\"","id":"stmt25","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":26,"callees":[],"shortLabel":"r6 = $r5.getBytes(varReplacer15)","label":"r6 = virtualinvoke $r5.(varReplacer15)","id":"stmt26","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":27,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt27","stmtIndex":19},"classes":"stmt label callSite method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r8 = new java.security.SecureRandom","label":"$r8 = new java.security.SecureRandom","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":16}],"shortLabel":"$r8.()","label":"specialinvoke $r8.()>()","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r4.initSign($r7, $r8)","label":"virtualinvoke r4.($r7, $r8)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt31","stmtIndex":23},"classes":"stmt label callSite method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[],"shortLabel":"r4.sign()","label":"virtualinvoke r4.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":33,"callees":[],"shortLabel":"$r10 = r3.getPublic()","label":"$r10 = virtualinvoke r3.()","id":"stmt33","stmtIndex":25},"classes":"stmt label callSite method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":34,"callees":[],"shortLabel":"r4.initVerify($r10)","label":"virtualinvoke r4.($r10)","id":"stmt34","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"r4.update(r6)","label":"virtualinvoke r4.(r6)","id":"stmt35","stmtIndex":27},"classes":"stmt label callSite method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt36","stmtIndex":28},"classes":"stmt label returnSite method2","position":{"x":10,"y":870}}]},"methodName":"<pkc.sign.weakSignatureRSA.PKCS1Sign1024xSHA1_1: void main(java.lang.String[])>","id":2}],"query":"F r1 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c514fe992b30b780cdc1c3970531de973da9d339505220b24aa14f323a204d41.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c514fe992b30b780cdc1c3970531de973da9d339505220b24aa14f323a204d41.json new file mode 100644 index 000000000..fadb43a18 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#c514fe992b30b780cdc1c3970531de973da9d339505220b24aa14f323a204d41.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r6 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r6 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":28,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":60,"y":630},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"directed":"true","id":"e62","source":"q1n53","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n49","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n61","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n48","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n57","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n59","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n47","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n55","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n51","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n56","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n60","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n54","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n55","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n52","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n50","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer15 = \"RSA\"","label":"varReplacer15 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer16 = \"BC\"","label":"varReplacer16 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer15, varReplacer16)","label":"r2 = staticinvoke (varReplacer15, varReplacer16)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer9 = 2048","label":"varReplacer9 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer9)","label":"virtualinvoke r2.(varReplacer9)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer11 = \"RSA\/NONE\/NoPadding\"","label":"varReplacer11 = \"RSA\/NONE\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer12 = \"BC\"","label":"varReplacer12 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer11, varReplacer12)","label":"r4 = staticinvoke (varReplacer11, varReplacer12)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer10 = 1","label":"varReplacer10 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer10, $r5)","label":"virtualinvoke r4.(varReplacer10, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer13 = \"RSA\/NONE\/NoPadding\"","label":"varReplacer13 = \"RSA\/NONE\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer14 = \"BC\"","label":"varReplacer14 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer13, varReplacer14)","label":"r6 = staticinvoke (varReplacer13, varReplacer14)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer17 = 2","label":"varReplacer17 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer17, $r7)","label":"virtualinvoke r6.(varReplacer17, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA3: void main(java.lang.String[])>","id":2}],"query":"F r6 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#d27265dd1d0b72380cb3919533b43adc976d7737e1b6b9e969a46d491142c41a.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#d27265dd1d0b72380cb3919533b43adc976d7737e1b6b9e969a46d491142c41a.json new file mode 100644 index 000000000..f5f4d1f41 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#d27265dd1d0b72380cb3919533b43adc976d7737e1b6b9e969a46d491142c41a.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r6 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r6 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":28,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":60,"y":630},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"directed":"true","id":"e62","source":"q1n58","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n52","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n54","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n56","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n54","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n47","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n57","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n50","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n61","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n51","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n59","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n53","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n60","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n48","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n55","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer7 = \"RSA\"","label":"varReplacer7 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer8 = \"BC\"","label":"varReplacer8 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer7, varReplacer8)","label":"r2 = staticinvoke (varReplacer7, varReplacer8)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer3 = 2048","label":"varReplacer3 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer3)","label":"virtualinvoke r2.(varReplacer3)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer4 = \"RSA\/None\/NoPadding\"","label":"varReplacer4 = \"RSA\/None\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer5 = \"BC\"","label":"varReplacer5 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer4, varReplacer5)","label":"r4 = staticinvoke (varReplacer4, varReplacer5)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer6 = 1","label":"varReplacer6 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer6, $r5)","label":"virtualinvoke r4.(varReplacer6, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer0 = \"RSA\/None\/NoPadding\"","label":"varReplacer0 = \"RSA\/None\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer1 = \"BC\"","label":"varReplacer1 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer0, varReplacer1)","label":"r6 = staticinvoke (varReplacer0, varReplacer1)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer2 = 2","label":"varReplacer2 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer2, $r7)","label":"virtualinvoke r6.(varReplacer2, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA2: void main(java.lang.String[])>","id":2}],"query":"F r6 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#db948c559ae0f85d96bf70e6e0f16d1f56150b5061fca9066cff9d2bdbabbc09.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#db948c559ae0f85d96bf70e6e0f16d1f56150b5061fca9066cff9d2bdbabbc09.json new file mode 100644 index 000000000..9a9b97ff3 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#db948c559ae0f85d96bf70e6e0f16d1f56150b5061fca9066cff9d2bdbabbc09.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":44,"label":"r13 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":45,"label":"$r11 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"factId":46,"label":"$r11 [{}]* "},"classes":"fact label method2","position":{"x":90,"y":0}},{"data":{"stmtId":37,"factId":44,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":60,"y":840},"group":"nodes"},{"data":{"stmtId":39,"factId":44,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":60,"y":900},"group":"nodes"},{"data":{"stmtId":35,"factId":46,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":90,"y":780},"group":"nodes"},{"data":{"stmtId":38,"factId":44,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":60,"y":870},"group":"nodes"},{"data":{"stmtId":40,"factId":44,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":60,"y":930},"group":"nodes"},{"data":{"stmtId":41,"factId":44,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":60,"y":1020},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":60,"y":810},"group":"nodes"},{"data":{"stmtId":36,"factId":44,"ideValue":"Weight: [-1 -> 0 with [(byte[],int,int,java.lang.String)>, (byte[],java.lang.String)>]]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"directed":"true","id":"e60","source":"q1n52","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e61","source":"q1n51","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e62","source":"q1n58","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e63","source":"q1n51","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e64","source":"q1n54","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e65","source":"q1n47","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e66","source":"q1n55","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e67","source":"q1n50","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e68","source":"q1n48","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n59","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n53","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n49","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r16 := @parameter0: java.lang.String[]","label":"r16 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","label":"$r0 = \"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\"","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[],"shortLabel":"r17 = $r0.getBytes()","label":"r17 = virtualinvoke $r0.()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"r1 = newarray (byte)[16]","label":"r1 = newarray (byte)[16]","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":9,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":10}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt9","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":12}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt11","stmtIndex":7},"classes":"stmt label callSite method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt11","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r5 = new javax.crypto.spec.SecretKeySpec","label":"$r5 = new javax.crypto.spec.SecretKeySpec","id":"stmt15","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer10 = \"AES\"","label":"varReplacer10 = \"AES\"","id":"stmt16","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":18}],"shortLabel":"$r5.(r17, varReplacer10)","label":"specialinvoke $r5.(byte[],java.lang.String)>(r17, varReplacer10)","id":"stmt17","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt17","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer12 = \"AES\/CTR\/NoPadding\"","label":"varReplacer12 = \"AES\/CTR\/NoPadding\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"varReplacer13 = \"SunJCE\"","label":"varReplacer13 = \"SunJCE\"","id":"stmt21","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":22,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":23}],"shortLabel":"r7 = getInstance(varReplacer12, varReplacer13)","label":"r7 = staticinvoke (varReplacer12, varReplacer13)","id":"stmt22","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt22","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r8 = new javax.crypto.spec.IvParameterSpec","label":"$r8 = new javax.crypto.spec.IvParameterSpec","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":26}],"shortLabel":"$r8.(r1)","label":"specialinvoke $r8.(byte[])>(r1)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt27","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"varReplacer11 = 1","label":"varReplacer11 = 1","id":"stmt28","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"r7.init(varReplacer11, r6, r9)","label":"virtualinvoke r7.(varReplacer11, r6, r9)","id":"stmt29","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":30,"callees":[],"shortLabel":"r10 = r7.doFinal(r4)","label":"r10 = virtualinvoke r7.(r4)","id":"stmt30","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r11 = new javax.crypto.spec.SecretKeySpec","label":"$r11 = new javax.crypto.spec.SecretKeySpec","id":"stmt31","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":32,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: byte[] getEncoded()>","id":33}],"shortLabel":"$r12 = r6.getEncoded()","label":"$r12 = virtualinvoke r6.()","id":"stmt32","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt32","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"varReplacer15 = \"AES\"","label":"varReplacer15 = \"AES\"","id":"stmt34","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":18}],"shortLabel":"$r11.($r12, varReplacer15)","label":"specialinvoke $r11.(byte[],java.lang.String)>($r12, varReplacer15)","id":"stmt35","stmtIndex":26},"classes":"stmt label callSite method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"r13 = $r11","label":"r13 = $r11","id":"stmt36","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"varReplacer14 = 2","label":"varReplacer14 = 2","id":"stmt37","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":38,"callees":[],"shortLabel":"r7.init(varReplacer14, r13, r9)","label":"virtualinvoke r7.(varReplacer14, r13, r9)","id":"stmt38","stmtIndex":29},"classes":"stmt label callSite method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r7.doFinal(r10)","label":"virtualinvoke r7.(r10)","id":"stmt39","stmtIndex":30},"classes":"stmt label callSite method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt40","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"shortLabel":"$r15 := @caughtexception","label":"$r15 := @caughtexception","id":"stmt42","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt42","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"r18 = $r15","label":"r18 = $r15","id":"stmt43","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt43","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt41","stmtIndex":34},"classes":"stmt label returnSite method2","position":{"x":10,"y":1050}}]},"methodName":"<pkm.constantKey.ConstantKeyAES3: void main(java.lang.String[])>","id":2}],"query":"F $r11 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#ef9f8db5e51f736863122ed34896d897ad5c31c1630197649ce842c6c076561c.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#ef9f8db5e51f736863122ed34896d897ad5c31c1630197649ce842c6c076561c.json new file mode 100644 index 000000000..f97702775 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#ef9f8db5e51f736863122ed34896d897ad5c31c1630197649ce842c6c076561c.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":45,"label":"r4 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":46,"label":"r4 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":28,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n47"},"classes":"esgNode method2 ","position":{"x":30,"y":630},"group":"nodes"},{"data":{"stmtId":42,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n48"},"classes":"esgNode method2 ","position":{"x":30,"y":1110},"group":"nodes"},{"data":{"stmtId":35,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n49"},"classes":"esgNode method2 ","position":{"x":30,"y":840},"group":"nodes"},{"data":{"stmtId":33,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n50"},"classes":"esgNode method2 ","position":{"x":30,"y":780},"group":"nodes"},{"data":{"stmtId":31,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n51"},"classes":"esgNode method2 ","position":{"x":30,"y":720},"group":"nodes"},{"data":{"stmtId":34,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n52"},"classes":"esgNode method2 ","position":{"x":30,"y":810},"group":"nodes"},{"data":{"stmtId":41,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n53"},"classes":"esgNode method2 ","position":{"x":30,"y":990},"group":"nodes"},{"data":{"stmtId":26,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n54"},"classes":"esgNode method2 ","position":{"x":30,"y":570},"group":"nodes"},{"data":{"stmtId":29,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n55"},"classes":"esgNode method2 ","position":{"x":30,"y":660},"group":"nodes"},{"data":{"stmtId":25,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n56"},"classes":"esgNode method2 ","position":{"x":30,"y":540},"group":"nodes"},{"data":{"stmtId":40,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n57"},"classes":"esgNode method2 ","position":{"x":30,"y":960},"group":"nodes"},{"data":{"stmtId":23,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n58"},"classes":"esgNode method2 ","position":{"x":30,"y":480},"group":"nodes"},{"data":{"stmtId":27,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n59"},"classes":"esgNode method2 ","position":{"x":30,"y":600},"group":"nodes"},{"data":{"stmtId":37,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n60"},"classes":"esgNode method2 ","position":{"x":30,"y":870},"group":"nodes"},{"data":{"stmtId":38,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n61"},"classes":"esgNode method2 ","position":{"x":30,"y":900},"group":"nodes"},{"data":{"stmtId":32,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n62"},"classes":"esgNode method2 ","position":{"x":30,"y":750},"group":"nodes"},{"data":{"stmtId":36,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 1, -1 -> 3, -1 -> ERR]","id":"q1n63"},"classes":"esgNode method2 ","position":{"x":30,"y":1020},"group":"nodes"},{"data":{"stmtId":24,"factId":45,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n64"},"classes":"esgNode method2 ","position":{"x":30,"y":510},"group":"nodes"},{"data":{"stmtId":21,"factId":46,"ideValue":"Weight: [-1 -> 0 with [, , ]]","id":"q1n65"},"classes":"esgNode method2 ","position":{"x":60,"y":450},"group":"nodes"},{"data":{"stmtId":30,"factId":45,"ideValue":"Weight: [-1 -> 1]","id":"q1n66"},"classes":"esgNode method2 ","position":{"x":30,"y":690},"group":"nodes"},{"data":{"stmtId":39,"factId":45,"ideValue":"Weight: [-1 -> ERR, -1 -> 3, -1 -> ERR]","id":"q1n67"},"classes":"esgNode method2 ","position":{"x":30,"y":930},"group":"nodes"},{"data":{"directed":"true","id":"e68","source":"q1n65","target":"q1n58","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e69","source":"q1n58","target":"q1n64","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e70","source":"q1n59","target":"q1n47","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e71","source":"q1n47","target":"q1n55","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e72","source":"q1n51","target":"q1n62","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e73","source":"q1n62","target":"q1n50","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e74","source":"q1n49","target":"q1n60","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e75","source":"q1n66","target":"q1n51","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e76","source":"q1n52","target":"q1n49","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e77","source":"q1n50","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e78","source":"q1n53","target":"q1n52","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e79","source":"q1n56","target":"q1n54","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e80","source":"q1n63","target":"q1n48","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e81","source":"q1n54","target":"q1n59","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e82","source":"q1n57","target":"q1n53","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e83","source":"q1n55","target":"q1n66","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e84","source":"q1n61","target":"q1n67","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e85","source":"q1n67","target":"q1n57","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e86","source":"q1n64","target":"q1n56","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e87","source":"q1n60","target":"q1n61","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e88","source":"q1n52","target":"q1n63","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","label":"$r0 = new org.bouncycastle.jce.provider.BouncyCastleProvider","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":6,"callees":[{"methodName":"<org.bouncycastle.jce.provider.BouncyCastleProvider: void <init>()>","id":7}],"shortLabel":"$r0.()","label":"specialinvoke $r0.()>()","id":"stmt6","stmtIndex":3},"classes":"stmt label callSite method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":8,"callees":[{"methodName":"<java.security.Security: int addProvider(java.security.Provider)>","id":9}],"shortLabel":"addProvider($r0)","label":"staticinvoke ($r0)","id":"stmt8","stmtIndex":4},"classes":"stmt label callSite method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt8","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r1 = \"demo msg\"","label":"$r1 = \"demo msg\"","id":"stmt10","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":11,"callees":[],"shortLabel":"r14 = $r1.getBytes()","label":"r14 = virtualinvoke $r1.()","id":"stmt11","stmtIndex":6},"classes":"stmt label callSite method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"varReplacer15 = \"RSA\"","label":"varReplacer15 = \"RSA\"","id":"stmt12","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"varReplacer16 = \"BC\"","label":"varReplacer16 = \"BC\"","id":"stmt13","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":14,"callees":[{"methodName":"<java.security.KeyPairGenerator: java.security.KeyPairGenerator getInstance(java.lang.String,java.lang.String)>","id":15}],"shortLabel":"r2 = getInstance(varReplacer15, varReplacer16)","label":"r2 = staticinvoke (varReplacer15, varReplacer16)","id":"stmt14","stmtIndex":9},"classes":"stmt label callSite method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt14","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"varReplacer9 = 2048","label":"varReplacer9 = 2048","id":"stmt16","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":17,"callees":[],"shortLabel":"r2.initialize(varReplacer9)","label":"virtualinvoke r2.(varReplacer9)","id":"stmt17","stmtIndex":11},"classes":"stmt label callSite method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":18,"callees":[],"shortLabel":"r3 = r2.generateKeyPair()","label":"r3 = virtualinvoke r2.()","id":"stmt18","stmtIndex":12},"classes":"stmt label callSite method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"varReplacer11 = \"RSA\/NONE\/NoPadding\"","label":"varReplacer11 = \"RSA\/NONE\/NoPadding\"","id":"stmt19","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"varReplacer12 = \"BC\"","label":"varReplacer12 = \"BC\"","id":"stmt20","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":21,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r4 = getInstance(varReplacer11, varReplacer12)","label":"r4 = staticinvoke (varReplacer11, varReplacer12)","id":"stmt21","stmtIndex":15},"classes":"stmt label callSite method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt21","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":23,"callees":[],"shortLabel":"$r5 = r3.getPublic()","label":"$r5 = virtualinvoke r3.()","id":"stmt23","stmtIndex":16},"classes":"stmt label callSite method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"varReplacer10 = 1","label":"varReplacer10 = 1","id":"stmt24","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":25,"callees":[],"shortLabel":"r4.init(varReplacer10, $r5)","label":"virtualinvoke r4.(varReplacer10, $r5)","id":"stmt25","stmtIndex":18},"classes":"stmt label callSite method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"varReplacer13 = \"RSA\/NONE\/NoPadding\"","label":"varReplacer13 = \"RSA\/NONE\/NoPadding\"","id":"stmt26","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"varReplacer14 = \"BC\"","label":"varReplacer14 = \"BC\"","id":"stmt27","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":28,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":22}],"shortLabel":"r6 = getInstance(varReplacer13, varReplacer14)","label":"r6 = staticinvoke (varReplacer13, varReplacer14)","id":"stmt28","stmtIndex":21},"classes":"stmt label callSite method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":29,"callees":[],"shortLabel":"$r7 = r3.getPrivate()","label":"$r7 = virtualinvoke r3.()","id":"stmt29","stmtIndex":22},"classes":"stmt label callSite method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"varReplacer17 = 2","label":"varReplacer17 = 2","id":"stmt30","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":31,"callees":[],"shortLabel":"r6.init(varReplacer17, $r7)","label":"virtualinvoke r6.(varReplacer17, $r7)","id":"stmt31","stmtIndex":24},"classes":"stmt label callSite method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"r8 = newarray (byte[])[2]","label":"r8 = newarray (byte[])[2]","id":"stmt32","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"i1 = 0","label":"i1 = 0","id":"stmt33","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"if i1 >= 2 goto (branch)","label":"if i1 >= 2 goto (branch)","id":"stmt34","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"directed":"true","source":"stmt34","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":35,"callees":[],"shortLabel":"$r9 = r4.doFinal(r14)","label":"$r9 = virtualinvoke r4.(r14)","id":"stmt35","stmtIndex":28},"classes":"stmt label callSite method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt35","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"r8[i1] = $r9","label":"r8[i1] = $r9","id":"stmt37","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"$r10 = r8[i1]","label":"$r10 = r8[i1]","id":"stmt38","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":39,"callees":[],"shortLabel":"r6.doFinal($r10)","label":"virtualinvoke r6.($r10)","id":"stmt39","stmtIndex":31},"classes":"stmt label callSite method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"i1 = i1 + 1","label":"i1 = i1 + 1","id":"stmt40","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"stmtId":41,"shortLabel":"goto [?= (branch)]","label":"goto [?= (branch)]","id":"stmt41","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt41","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt36","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt36","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":43,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt43","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt43","target":"stmt44"},"classes":"cfgEdge label method2"},{"data":{"stmtId":44,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt44","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt44","target":"stmt42"},"classes":"cfgEdge label method2"},{"data":{"stmtId":42,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt42","stmtIndex":37},"classes":"stmt label returnSite method2","position":{"x":10,"y":1140}}]},"methodName":"<pkc.enc.insecurePadding.InsecurePaddingRSA3: void main(java.lang.String[])>","id":2}],"query":"F r4 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/cognicrypt-output/viz/ObjectId#f595bba8080c64d4d4cfb61f784dac80f5b93ec7c5d67b5f17119a4cdb857117.json b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#f595bba8080c64d4d4cfb61f784dac80f5b93ec7c5d67b5f17119a4cdb857117.json new file mode 100644 index 000000000..2a9c8c570 --- /dev/null +++ b/CryptoAnalysis/cognicrypt-output/viz/ObjectId#f595bba8080c64d4d4cfb61f784dac80f5b93ec7c5d67b5f17119a4cdb857117.json @@ -0,0 +1 @@ +[{"methods":[{"dfg":{"dataFlowNode":[{"data":{"factId":70,"label":"varReplacer6 ({} · [{}]* )"},"classes":"fact label method2","position":{"x":30,"y":0}},{"data":{"factId":71,"label":"varReplacer6 [{}]* "},"classes":"fact label method2","position":{"x":60,"y":0}},{"data":{"stmtId":56,"factId":70,"ideValue":"ONE","id":"q1n72"},"classes":"esgNode method2 ","position":{"x":30,"y":1470},"group":"nodes"},{"data":{"stmtId":66,"factId":70,"ideValue":"ONE","id":"q1n73"},"classes":"esgNode method2 ","position":{"x":30,"y":1740},"group":"nodes"},{"data":{"stmtId":60,"factId":70,"ideValue":"ONE","id":"q1n74"},"classes":"esgNode method2 ","position":{"x":30,"y":1560},"group":"nodes"},{"data":{"stmtId":53,"factId":70,"ideValue":"ONE","id":"q1n75"},"classes":"esgNode method2 ","position":{"x":30,"y":1410},"group":"nodes"},{"data":{"stmtId":49,"factId":71,"ideValue":"ONE","id":"q1n76"},"classes":"esgNode method2 ","position":{"x":60,"y":1320},"group":"nodes"},{"data":{"stmtId":67,"factId":70,"ideValue":"ONE","id":"q1n77"},"classes":"esgNode method2 ","position":{"x":30,"y":1830},"group":"nodes"},{"data":{"stmtId":64,"factId":70,"ideValue":"ONE","id":"q1n78"},"classes":"esgNode method2 ","position":{"x":30,"y":1680},"group":"nodes"},{"data":{"stmtId":57,"factId":70,"ideValue":"ONE","id":"q1n79"},"classes":"esgNode method2 ","position":{"x":30,"y":1500},"group":"nodes"},{"data":{"stmtId":52,"factId":70,"ideValue":"ONE","id":"q1n80"},"classes":"esgNode method2 ","position":{"x":30,"y":1380},"group":"nodes"},{"data":{"stmtId":54,"factId":70,"ideValue":"ONE","id":"q1n81"},"classes":"esgNode method2 ","position":{"x":30,"y":1440},"group":"nodes"},{"data":{"stmtId":63,"factId":70,"ideValue":"ONE","id":"q1n82"},"classes":"esgNode method2 ","position":{"x":30,"y":1650},"group":"nodes"},{"data":{"stmtId":65,"factId":70,"ideValue":"ONE","id":"q1n83"},"classes":"esgNode method2 ","position":{"x":30,"y":1710},"group":"nodes"},{"data":{"stmtId":61,"factId":70,"ideValue":"ONE","id":"q1n84"},"classes":"esgNode method2 ","position":{"x":30,"y":1590},"group":"nodes"},{"data":{"stmtId":51,"factId":70,"ideValue":"ONE","id":"q1n85"},"classes":"esgNode method2 ","position":{"x":30,"y":1350},"group":"nodes"},{"data":{"stmtId":59,"factId":70,"ideValue":"ONE","id":"q1n86"},"classes":"esgNode method2 ","position":{"x":30,"y":1530},"group":"nodes"},{"data":{"stmtId":62,"factId":70,"ideValue":"ONE","id":"q1n87"},"classes":"esgNode method2 ","position":{"x":30,"y":1620},"group":"nodes"},{"data":{"directed":"true","id":"e88","source":"q1n79","target":"q1n86","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e89","source":"q1n73","target":"q1n77","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e90","source":"q1n72","target":"q1n79","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e91","source":"q1n74","target":"q1n84","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e92","source":"q1n80","target":"q1n75","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e93","source":"q1n82","target":"q1n78","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e94","source":"q1n84","target":"q1n87","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e95","source":"q1n87","target":"q1n82","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e96","source":"q1n86","target":"q1n74","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e97","source":"q1n78","target":"q1n83","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e98","source":"q1n75","target":"q1n81","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e99","source":"q1n81","target":"q1n72","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e100","source":"q1n85","target":"q1n80","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e101","source":"q1n83","target":"q1n73","direction":"Forward"},"classes":"esgEdge method2","group":"edges"},{"data":{"directed":"true","id":"e102","source":"q1n76","target":"q1n85","direction":"Forward"},"classes":"esgEdge method2","group":"edges"}]},"cfg":{"controlFlowNode":[{"data":{"stmtId":3,"shortLabel":"nop","label":"nop","id":"stmt3","stmtIndex":0},"classes":"stmt label method2","position":{"x":10,"y":30}},{"data":{"directed":"true","source":"stmt3","target":"stmt4"},"classes":"cfgEdge label method2"},{"data":{"stmtId":4,"shortLabel":"r13 := @parameter0: java.lang.String[]","label":"r13 := @parameter0: java.lang.String[]","id":"stmt4","stmtIndex":1},"classes":"stmt label method2","position":{"x":10,"y":60}},{"data":{"directed":"true","source":"stmt4","target":"stmt5"},"classes":"cfgEdge label method2"},{"data":{"stmtId":5,"shortLabel":"$r0 = newarray (byte)[32]","label":"$r0 = newarray (byte)[32]","id":"stmt5","stmtIndex":2},"classes":"stmt label method2","position":{"x":10,"y":90}},{"data":{"directed":"true","source":"stmt5","target":"stmt6"},"classes":"cfgEdge label method2"},{"data":{"stmtId":6,"shortLabel":"$r0[0] = 1","label":"$r0[0] = 1","id":"stmt6","stmtIndex":3},"classes":"stmt label method2","position":{"x":10,"y":120}},{"data":{"directed":"true","source":"stmt6","target":"stmt7"},"classes":"cfgEdge label method2"},{"data":{"stmtId":7,"shortLabel":"$r0[1] = 35","label":"$r0[1] = 35","id":"stmt7","stmtIndex":4},"classes":"stmt label method2","position":{"x":10,"y":150}},{"data":{"directed":"true","source":"stmt7","target":"stmt8"},"classes":"cfgEdge label method2"},{"data":{"stmtId":8,"shortLabel":"$r0[2] = 69","label":"$r0[2] = 69","id":"stmt8","stmtIndex":5},"classes":"stmt label method2","position":{"x":10,"y":180}},{"data":{"directed":"true","source":"stmt8","target":"stmt9"},"classes":"cfgEdge label method2"},{"data":{"stmtId":9,"shortLabel":"$r0[3] = 103","label":"$r0[3] = 103","id":"stmt9","stmtIndex":6},"classes":"stmt label method2","position":{"x":10,"y":210}},{"data":{"directed":"true","source":"stmt9","target":"stmt10"},"classes":"cfgEdge label method2"},{"data":{"stmtId":10,"shortLabel":"$r0[4] = -119","label":"$r0[4] = -119","id":"stmt10","stmtIndex":7},"classes":"stmt label method2","position":{"x":10,"y":240}},{"data":{"directed":"true","source":"stmt10","target":"stmt11"},"classes":"cfgEdge label method2"},{"data":{"stmtId":11,"shortLabel":"$r0[5] = -85","label":"$r0[5] = -85","id":"stmt11","stmtIndex":8},"classes":"stmt label method2","position":{"x":10,"y":270}},{"data":{"directed":"true","source":"stmt11","target":"stmt12"},"classes":"cfgEdge label method2"},{"data":{"stmtId":12,"shortLabel":"$r0[6] = -51","label":"$r0[6] = -51","id":"stmt12","stmtIndex":9},"classes":"stmt label method2","position":{"x":10,"y":300}},{"data":{"directed":"true","source":"stmt12","target":"stmt13"},"classes":"cfgEdge label method2"},{"data":{"stmtId":13,"shortLabel":"$r0[7] = -17","label":"$r0[7] = -17","id":"stmt13","stmtIndex":10},"classes":"stmt label method2","position":{"x":10,"y":330}},{"data":{"directed":"true","source":"stmt13","target":"stmt14"},"classes":"cfgEdge label method2"},{"data":{"stmtId":14,"shortLabel":"$r0[8] = 1","label":"$r0[8] = 1","id":"stmt14","stmtIndex":11},"classes":"stmt label method2","position":{"x":10,"y":360}},{"data":{"directed":"true","source":"stmt14","target":"stmt15"},"classes":"cfgEdge label method2"},{"data":{"stmtId":15,"shortLabel":"$r0[9] = 35","label":"$r0[9] = 35","id":"stmt15","stmtIndex":12},"classes":"stmt label method2","position":{"x":10,"y":390}},{"data":{"directed":"true","source":"stmt15","target":"stmt16"},"classes":"cfgEdge label method2"},{"data":{"stmtId":16,"shortLabel":"$r0[10] = 69","label":"$r0[10] = 69","id":"stmt16","stmtIndex":13},"classes":"stmt label method2","position":{"x":10,"y":420}},{"data":{"directed":"true","source":"stmt16","target":"stmt17"},"classes":"cfgEdge label method2"},{"data":{"stmtId":17,"shortLabel":"$r0[11] = 103","label":"$r0[11] = 103","id":"stmt17","stmtIndex":14},"classes":"stmt label method2","position":{"x":10,"y":450}},{"data":{"directed":"true","source":"stmt17","target":"stmt18"},"classes":"cfgEdge label method2"},{"data":{"stmtId":18,"shortLabel":"$r0[12] = -119","label":"$r0[12] = -119","id":"stmt18","stmtIndex":15},"classes":"stmt label method2","position":{"x":10,"y":480}},{"data":{"directed":"true","source":"stmt18","target":"stmt19"},"classes":"cfgEdge label method2"},{"data":{"stmtId":19,"shortLabel":"$r0[13] = -85","label":"$r0[13] = -85","id":"stmt19","stmtIndex":16},"classes":"stmt label method2","position":{"x":10,"y":510}},{"data":{"directed":"true","source":"stmt19","target":"stmt20"},"classes":"cfgEdge label method2"},{"data":{"stmtId":20,"shortLabel":"$r0[14] = -51","label":"$r0[14] = -51","id":"stmt20","stmtIndex":17},"classes":"stmt label method2","position":{"x":10,"y":540}},{"data":{"directed":"true","source":"stmt20","target":"stmt21"},"classes":"cfgEdge label method2"},{"data":{"stmtId":21,"shortLabel":"$r0[15] = -17","label":"$r0[15] = -17","id":"stmt21","stmtIndex":18},"classes":"stmt label method2","position":{"x":10,"y":570}},{"data":{"directed":"true","source":"stmt21","target":"stmt22"},"classes":"cfgEdge label method2"},{"data":{"stmtId":22,"shortLabel":"$r0[16] = 1","label":"$r0[16] = 1","id":"stmt22","stmtIndex":19},"classes":"stmt label method2","position":{"x":10,"y":600}},{"data":{"directed":"true","source":"stmt22","target":"stmt23"},"classes":"cfgEdge label method2"},{"data":{"stmtId":23,"shortLabel":"$r0[17] = 35","label":"$r0[17] = 35","id":"stmt23","stmtIndex":20},"classes":"stmt label method2","position":{"x":10,"y":630}},{"data":{"directed":"true","source":"stmt23","target":"stmt24"},"classes":"cfgEdge label method2"},{"data":{"stmtId":24,"shortLabel":"$r0[18] = 69","label":"$r0[18] = 69","id":"stmt24","stmtIndex":21},"classes":"stmt label method2","position":{"x":10,"y":660}},{"data":{"directed":"true","source":"stmt24","target":"stmt25"},"classes":"cfgEdge label method2"},{"data":{"stmtId":25,"shortLabel":"$r0[19] = 103","label":"$r0[19] = 103","id":"stmt25","stmtIndex":22},"classes":"stmt label method2","position":{"x":10,"y":690}},{"data":{"directed":"true","source":"stmt25","target":"stmt26"},"classes":"cfgEdge label method2"},{"data":{"stmtId":26,"shortLabel":"$r0[20] = -119","label":"$r0[20] = -119","id":"stmt26","stmtIndex":23},"classes":"stmt label method2","position":{"x":10,"y":720}},{"data":{"directed":"true","source":"stmt26","target":"stmt27"},"classes":"cfgEdge label method2"},{"data":{"stmtId":27,"shortLabel":"$r0[21] = -85","label":"$r0[21] = -85","id":"stmt27","stmtIndex":24},"classes":"stmt label method2","position":{"x":10,"y":750}},{"data":{"directed":"true","source":"stmt27","target":"stmt28"},"classes":"cfgEdge label method2"},{"data":{"stmtId":28,"shortLabel":"$r0[22] = -51","label":"$r0[22] = -51","id":"stmt28","stmtIndex":25},"classes":"stmt label method2","position":{"x":10,"y":780}},{"data":{"directed":"true","source":"stmt28","target":"stmt29"},"classes":"cfgEdge label method2"},{"data":{"stmtId":29,"shortLabel":"$r0[23] = -17","label":"$r0[23] = -17","id":"stmt29","stmtIndex":26},"classes":"stmt label method2","position":{"x":10,"y":810}},{"data":{"directed":"true","source":"stmt29","target":"stmt30"},"classes":"cfgEdge label method2"},{"data":{"stmtId":30,"shortLabel":"$r0[24] = 1","label":"$r0[24] = 1","id":"stmt30","stmtIndex":27},"classes":"stmt label method2","position":{"x":10,"y":840}},{"data":{"directed":"true","source":"stmt30","target":"stmt31"},"classes":"cfgEdge label method2"},{"data":{"stmtId":31,"shortLabel":"$r0[25] = 35","label":"$r0[25] = 35","id":"stmt31","stmtIndex":28},"classes":"stmt label method2","position":{"x":10,"y":870}},{"data":{"directed":"true","source":"stmt31","target":"stmt32"},"classes":"cfgEdge label method2"},{"data":{"stmtId":32,"shortLabel":"$r0[26] = 69","label":"$r0[26] = 69","id":"stmt32","stmtIndex":29},"classes":"stmt label method2","position":{"x":10,"y":900}},{"data":{"directed":"true","source":"stmt32","target":"stmt33"},"classes":"cfgEdge label method2"},{"data":{"stmtId":33,"shortLabel":"$r0[27] = 103","label":"$r0[27] = 103","id":"stmt33","stmtIndex":30},"classes":"stmt label method2","position":{"x":10,"y":930}},{"data":{"directed":"true","source":"stmt33","target":"stmt34"},"classes":"cfgEdge label method2"},{"data":{"stmtId":34,"shortLabel":"$r0[28] = -119","label":"$r0[28] = -119","id":"stmt34","stmtIndex":31},"classes":"stmt label method2","position":{"x":10,"y":960}},{"data":{"directed":"true","source":"stmt34","target":"stmt35"},"classes":"cfgEdge label method2"},{"data":{"stmtId":35,"shortLabel":"$r0[29] = -85","label":"$r0[29] = -85","id":"stmt35","stmtIndex":32},"classes":"stmt label method2","position":{"x":10,"y":990}},{"data":{"directed":"true","source":"stmt35","target":"stmt36"},"classes":"cfgEdge label method2"},{"data":{"stmtId":36,"shortLabel":"$r0[30] = -51","label":"$r0[30] = -51","id":"stmt36","stmtIndex":33},"classes":"stmt label method2","position":{"x":10,"y":1020}},{"data":{"directed":"true","source":"stmt36","target":"stmt37"},"classes":"cfgEdge label method2"},{"data":{"stmtId":37,"shortLabel":"$r0[31] = -17","label":"$r0[31] = -17","id":"stmt37","stmtIndex":34},"classes":"stmt label method2","position":{"x":10,"y":1050}},{"data":{"directed":"true","source":"stmt37","target":"stmt38"},"classes":"cfgEdge label method2"},{"data":{"stmtId":38,"shortLabel":"r14 = $r0","label":"r14 = $r0","id":"stmt38","stmtIndex":35},"classes":"stmt label method2","position":{"x":10,"y":1080}},{"data":{"directed":"true","source":"stmt38","target":"stmt39"},"classes":"cfgEdge label method2"},{"data":{"stmtId":39,"shortLabel":"r1 = newarray (byte)[16]","label":"r1 = newarray (byte)[16]","id":"stmt39","stmtIndex":36},"classes":"stmt label method2","position":{"x":10,"y":1110}},{"data":{"directed":"true","source":"stmt39","target":"stmt40"},"classes":"cfgEdge label method2"},{"data":{"stmtId":40,"shortLabel":"$r2 = new java.security.SecureRandom","label":"$r2 = new java.security.SecureRandom","id":"stmt40","stmtIndex":37},"classes":"stmt label method2","position":{"x":10,"y":1140}},{"data":{"directed":"true","source":"stmt40","target":"stmt41"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":41,"callees":[{"methodName":"<java.security.SecureRandom: void <init>()>","id":42}],"shortLabel":"$r2.()","label":"specialinvoke $r2.()>()","id":"stmt41","stmtIndex":38},"classes":"stmt label callSite method2","position":{"x":10,"y":1170}},{"data":{"directed":"true","source":"stmt41","target":"stmt43"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":43,"callees":[{"methodName":"<java.security.SecureRandom: void nextBytes(byte[])>","id":44}],"shortLabel":"$r2.nextBytes(r1)","label":"virtualinvoke $r2.(r1)","id":"stmt43","stmtIndex":39},"classes":"stmt label callSite method2","position":{"x":10,"y":1200}},{"data":{"directed":"true","source":"stmt43","target":"stmt45"},"classes":"cfgEdge label method2"},{"data":{"stmtId":45,"shortLabel":"$r3 = \"demo text\"","label":"$r3 = \"demo text\"","id":"stmt45","stmtIndex":40},"classes":"stmt label method2","position":{"x":10,"y":1230}},{"data":{"directed":"true","source":"stmt45","target":"stmt46"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":46,"callees":[],"shortLabel":"r4 = $r3.getBytes()","label":"r4 = virtualinvoke $r3.()","id":"stmt46","stmtIndex":41},"classes":"stmt label callSite method2","position":{"x":10,"y":1260}},{"data":{"directed":"true","source":"stmt46","target":"stmt47"},"classes":"cfgEdge label method2"},{"data":{"stmtId":47,"shortLabel":"$r5 = new javax.crypto.spec.SecretKeySpec","label":"$r5 = new javax.crypto.spec.SecretKeySpec","id":"stmt47","stmtIndex":42},"classes":"stmt label method2","position":{"x":10,"y":1290}},{"data":{"directed":"true","source":"stmt47","target":"stmt48"},"classes":"cfgEdge label method2"},{"data":{"stmtId":48,"shortLabel":"varReplacer6 = \"AES\"","label":"varReplacer6 = \"AES\"","id":"stmt48","stmtIndex":43},"classes":"stmt label method2","position":{"x":10,"y":1320}},{"data":{"directed":"true","source":"stmt48","target":"stmt49"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":49,"callees":[{"methodName":"<javax.crypto.spec.SecretKeySpec: void <init>(byte[],java.lang.String)>","id":50}],"shortLabel":"$r5.(r14, varReplacer6)","label":"specialinvoke $r5.(byte[],java.lang.String)>(r14, varReplacer6)","id":"stmt49","stmtIndex":44},"classes":"stmt label callSite method2","position":{"x":10,"y":1350}},{"data":{"directed":"true","source":"stmt49","target":"stmt51"},"classes":"cfgEdge label method2"},{"data":{"stmtId":51,"shortLabel":"r6 = $r5","label":"r6 = $r5","id":"stmt51","stmtIndex":45},"classes":"stmt label method2","position":{"x":10,"y":1380}},{"data":{"directed":"true","source":"stmt51","target":"stmt52"},"classes":"cfgEdge label method2"},{"data":{"stmtId":52,"shortLabel":"varReplacer8 = \"AES\/CTR\/NoPadding\"","label":"varReplacer8 = \"AES\/CTR\/NoPadding\"","id":"stmt52","stmtIndex":46},"classes":"stmt label method2","position":{"x":10,"y":1410}},{"data":{"directed":"true","source":"stmt52","target":"stmt53"},"classes":"cfgEdge label method2"},{"data":{"stmtId":53,"shortLabel":"varReplacer9 = \"SunJCE\"","label":"varReplacer9 = \"SunJCE\"","id":"stmt53","stmtIndex":47},"classes":"stmt label method2","position":{"x":10,"y":1440}},{"data":{"directed":"true","source":"stmt53","target":"stmt54"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":54,"callees":[{"methodName":"<javax.crypto.Cipher: javax.crypto.Cipher getInstance(java.lang.String,java.lang.String)>","id":55}],"shortLabel":"r7 = getInstance(varReplacer8, varReplacer9)","label":"r7 = staticinvoke (varReplacer8, varReplacer9)","id":"stmt54","stmtIndex":48},"classes":"stmt label callSite method2","position":{"x":10,"y":1470}},{"data":{"directed":"true","source":"stmt54","target":"stmt56"},"classes":"cfgEdge label method2"},{"data":{"stmtId":56,"shortLabel":"$r8 = new javax.crypto.spec.IvParameterSpec","label":"$r8 = new javax.crypto.spec.IvParameterSpec","id":"stmt56","stmtIndex":49},"classes":"stmt label method2","position":{"x":10,"y":1500}},{"data":{"directed":"true","source":"stmt56","target":"stmt57"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":57,"callees":[{"methodName":"<javax.crypto.spec.IvParameterSpec: void <init>(byte[])>","id":58}],"shortLabel":"$r8.(r1)","label":"specialinvoke $r8.(byte[])>(r1)","id":"stmt57","stmtIndex":50},"classes":"stmt label callSite method2","position":{"x":10,"y":1530}},{"data":{"directed":"true","source":"stmt57","target":"stmt59"},"classes":"cfgEdge label method2"},{"data":{"stmtId":59,"shortLabel":"r9 = $r8","label":"r9 = $r8","id":"stmt59","stmtIndex":51},"classes":"stmt label method2","position":{"x":10,"y":1560}},{"data":{"directed":"true","source":"stmt59","target":"stmt60"},"classes":"cfgEdge label method2"},{"data":{"stmtId":60,"shortLabel":"varReplacer5 = 1","label":"varReplacer5 = 1","id":"stmt60","stmtIndex":52},"classes":"stmt label method2","position":{"x":10,"y":1590}},{"data":{"directed":"true","source":"stmt60","target":"stmt61"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":61,"callees":[],"shortLabel":"r7.init(varReplacer5, r6, r9)","label":"virtualinvoke r7.(varReplacer5, r6, r9)","id":"stmt61","stmtIndex":53},"classes":"stmt label callSite method2","position":{"x":10,"y":1620}},{"data":{"directed":"true","source":"stmt61","target":"stmt62"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":62,"callees":[],"shortLabel":"r10 = r7.doFinal(r4)","label":"r10 = virtualinvoke r7.(r4)","id":"stmt62","stmtIndex":54},"classes":"stmt label callSite method2","position":{"x":10,"y":1650}},{"data":{"directed":"true","source":"stmt62","target":"stmt63"},"classes":"cfgEdge label method2"},{"data":{"stmtId":63,"shortLabel":"varReplacer7 = 2","label":"varReplacer7 = 2","id":"stmt63","stmtIndex":55},"classes":"stmt label method2","position":{"x":10,"y":1680}},{"data":{"directed":"true","source":"stmt63","target":"stmt64"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":64,"callees":[],"shortLabel":"r7.init(varReplacer7, r6, r9)","label":"virtualinvoke r7.(varReplacer7, r6, r9)","id":"stmt64","stmtIndex":56},"classes":"stmt label callSite method2","position":{"x":10,"y":1710}},{"data":{"directed":"true","source":"stmt64","target":"stmt65"},"classes":"cfgEdge label method2"},{"data":{"callSite":true,"stmtId":65,"callees":[],"shortLabel":"r11 = r7.doFinal(r10)","label":"r11 = virtualinvoke r7.(r10)","id":"stmt65","stmtIndex":57},"classes":"stmt label callSite method2","position":{"x":10,"y":1740}},{"data":{"directed":"true","source":"stmt65","target":"stmt66"},"classes":"cfgEdge label method2"},{"data":{"stmtId":66,"shortLabel":"goto [?= return]","label":"goto [?= return]","id":"stmt66","stmtIndex":58},"classes":"stmt label method2","position":{"x":10,"y":1770}},{"data":{"directed":"true","source":"stmt66","target":"stmt67"},"classes":"cfgEdge label method2"},{"data":{"stmtId":68,"shortLabel":"$r12 := @caughtexception","label":"$r12 := @caughtexception","id":"stmt68","stmtIndex":59},"classes":"stmt label method2","position":{"x":10,"y":1800}},{"data":{"directed":"true","source":"stmt68","target":"stmt69"},"classes":"cfgEdge label method2"},{"data":{"stmtId":69,"shortLabel":"r15 = $r12","label":"r15 = $r12","id":"stmt69","stmtIndex":60},"classes":"stmt label method2","position":{"x":10,"y":1830}},{"data":{"directed":"true","source":"stmt69","target":"stmt67"},"classes":"cfgEdge label method2"},{"data":{"stmtId":67,"returnSite":true,"shortLabel":"return","label":"return","callers":[],"id":"stmt67","stmtIndex":61},"classes":"stmt label returnSite method2","position":{"x":10,"y":1860}}]},"methodName":"<pkm.constantKey.ConstantKeyAES1: void main(java.lang.String[])>","id":2}],"query":"F varReplacer6 @ main","id":1}] \ No newline at end of file diff --git a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java index 31cd365b6..41dab6331 100644 --- a/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java +++ b/CryptoAnalysis/src/main/java/crypto/analysis/AnalysisSeedWithSpecification.java @@ -353,8 +353,8 @@ private void expectPredicateWhenThisObjectIsInState(State stateNode, Statement c // predicates. if (containsTargetState(e.getValue(), stateNode)) { EnsuredCrySLPredicate ensuredPred = new EnsuredCrySLPredicate(predToBeEnsured, parameterAnalysis.getCollectedValues()); - predicateHandler.addNewPred(this, e.getRowKey(), e.getColumnKey(), ensuredPred); ensuredPred.addAnalysisSeedToParameter(this, 0); // by definition, "this" can only be at first position in parameter list + predicateHandler.addNewPred(this, e.getRowKey(), e.getColumnKey(), ensuredPred); } } }