diff --git a/src/mohawk/refine/AbsRefine.java b/src/mohawk/refine/AbsRefine.java deleted file mode 100644 index 0af5820be38ff754d4aafa3590ab16d74403604f..0000000000000000000000000000000000000000 --- a/src/mohawk/refine/AbsRefine.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * The MIT License - * - * Copyright (c) 2010 Karthick Jayaraman, 2014 Jonathan Shahen - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package mohawk.refine; - -import java.io.File; -import java.util.logging.Logger; - -import mohawk.global.pieces.mohawk.NuSMVMode; -import mohawk.rbac.RBACInstance; -import mohawk.rbac.RBACSpecReader; - -/** - * @author Karthick Jayaraman, Jonathan Shahen - * - */ -public class AbsRefine { - public final static Logger logger = Logger.getLogger("mohawk"); - - public void refine(String specfile) { - refine(specfile, null); - } - - public void refine(String specfile, NuSMVMode mode) { - File rbacfile = new File(specfile); - - if (!rbacfile.exists()) { - System.out.println("The RBAC specification file " + rbacfile + " does not exists."); - return; - } - - RBACSpecReader reader = new RBACSpecReader(specfile); - RBACInstance rbac = reader.getRBAC(); - - RolesAbsRefine absrefine = new RolesAbsRefine(rbac); - if (mode == null) - absrefine.setMode(NuSMVMode.SMC); // Set the SMC mode - else - absrefine.setMode(mode); - absrefine.absrefineloop(); - } -} diff --git a/src/mohawk/util/RemoveCR.java b/src/mohawk/util/RemoveCR.java deleted file mode 100644 index 0ad85231d07270493b52375b475b136b940f12d5..0000000000000000000000000000000000000000 --- a/src/mohawk/util/RemoveCR.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * - */ -package mohawk.util; - -import java.io.*; -import java.util.logging.Logger; - -import org.antlr.v4.runtime.*; - -import mohawk.global.parser.mohawk.v1.MohawkLexer; -import mohawk.global.parser.mohawk.v1.MohawkParser; -import mohawk.output.WriteRBACSpec; -import mohawk.rbac.RBACInstance; - -/** - * @author Karthick Jayaraman - * - * STAND ALONE - * - */ -public class RemoveCR { - public final static Logger logger = Logger.getLogger("mohawk"); - - /** - * @param args - */ - public static void main(String[] args) throws Exception { - File rbacfile = new File(args[0]); - - if (!rbacfile.exists()) { - System.out.println("The RBAC specification file " + rbacfile + " does not exists."); - return; - } - - String outputfile = args[1]; - - InputStream is = new FileInputStream(args[0]); - ANTLRInputStream input = new ANTLRInputStream(is); - MohawkLexer lexer = new MohawkLexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - MohawkParser parser = new MohawkParser(tokens); - - RBACInstance rbac = null; - - parser.initRbac(); - - try { - - parser.init(); - rbac = new RBACInstance(parser.vRoles, parser.vUsers, parser.vAdmin, parser.mUA, parser.mCR, parser.mCA, - parser.vSpec); - - } catch (RecognitionException e) { - e.printStackTrace(); - } - - rbac.getCR().clear(); - - WriteRBACSpec writer = new WriteRBACSpec("rbac.st"); - try { - writer.Write2File(rbac, outputfile); - } catch (IOException e1) { - e1.printStackTrace(); - } - - } - -} diff --git a/src/mohawk/util/Replicate.java b/src/mohawk/util/Replicate.java deleted file mode 100644 index 4f376645232cae670a1359a0278c41a8c54f9af0..0000000000000000000000000000000000000000 --- a/src/mohawk/util/Replicate.java +++ /dev/null @@ -1,201 +0,0 @@ -package mohawk.util; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Vector; -import java.util.logging.Logger; - -import mohawk.global.pieces.mohawk.*; -import mohawk.output.WriteRBACSpec; -import mohawk.rbac.RBACInstance; -import mohawk.rbac.RBACSpecReader; - -/** - * - * @author Karthick Jayaraman - * - * STAND ALONE - */ - -public class Replicate { - public final static Logger logger = Logger.getLogger("mohawk"); - - /** - * @param args - */ - public static void main(String[] args) { - - if (args.length < 2) { - System.out.println("Usage: java -jar ./rbac2smv.jar Slicer rbacspec nusmvfile"); - } - - File rbacfile = new File(args[0]); - - if (!rbacfile.exists()) { - System.out.println("The RBAC specification file " + rbacfile + " does not exists."); - return; - } - - String nusmvfile = args[1]; - int times = Integer.parseInt(args[2]); - - RBACSpecReader rbacreader = new RBACSpecReader(args[0]); - RBACInstance rbac = rbacreader.getRBAC(); - - Replicator replica = new Replicator(rbac); - RBACInstance newrbac = replica.replicatePolicy(times); - - WriteRBACSpec writer = new WriteRBACSpec("rbac.st"); - try { - writer.Write2File(newrbac, nusmvfile); - } catch (IOException e1) { - e1.printStackTrace(); - } - } -} - -class Replicator { - - public Replicator(RBACInstance in_rbac) { - - rbac = in_rbac; - } - - public boolean isRole(String inRole) { - - if (inRole.equalsIgnoreCase("Employee") || inRole.equalsIgnoreCase("Admin")) { - return false; - } else { - return true; - } - } - - public Map> modifyUA(Vector newRoles) { - - Map> originalUA = rbac.getUA(); - Map> newUA = new HashMap>(); - - for (String strKey : originalUA.keySet()) { - Vector oldroleindices = originalUA.get(strKey); - Vector newroleindices = new Vector(); - - for (int i = 0; i < oldroleindices.size(); i++) { - int oldindex = oldroleindices.get(i); - int newindex = newRoles.indexOf(rbac.getRoles().get(oldindex)); - newroleindices.add(newindex); - } - - newUA.put(strKey, newroleindices); - } - - return newUA; - } - - public RBACInstance replicatePolicy(int times) { - - Vector vRoles = replicateRoles(times); - Map> mCA = this.replicateCA(rbac.getCA(), vRoles, times); - Map> mCR = this.replicateCR(rbac.getCR(), times); - Vector newSpec = new Vector(); - newSpec.add("user0"); - newSpec.add("Branch1"); - return new RBACInstance(vRoles, rbac.getUsers(), rbac.getAdmin(), modifyUA(vRoles), mCR, mCA, newSpec); - } - - public int getRoleIndex(Vector vRoles, String strRole) { - - for (int i = 0; i < vRoles.size(); i++) { - if (vRoles.get(i).equalsIgnoreCase(strRole)) - return i; - } - return -1; - } - - public Vector replicateRoles(int times) { - - Vector rvRoles = new Vector(); - Vector inRoles = rbac.getRoles(); - - int index_to_add = 1; - - while (index_to_add <= times) { - for (int i = 0; i < inRoles.size(); i++) { - String tmpRole = inRoles.get(i); - - if (isRole(tmpRole)) { - tmpRole = tmpRole + index_to_add; - rvRoles.add(tmpRole); - } - } - index_to_add++; - } - - rvRoles.add("Employee"); - rvRoles.add("Admin"); - return rvRoles; - } - - public Map> replicateCR(Map> in_mCR, int times) { - - Map> new_mCR = new HashMap>(); - int index_to_add = 1; - - while (index_to_add <= times) { - for (String strRole : in_mCR.keySet()) { - String newtargetrole; - - if (this.isRole(strRole)) - newtargetrole = strRole + index_to_add; - else - newtargetrole = strRole; - - Vector new_vCR = new Vector(); - CREntry newcr = new CREntry("Admin", newtargetrole); - new_vCR.add(newcr); - new_mCR.put(newtargetrole, new_vCR); - } - index_to_add++; - } - - return new_mCR; - } - - public Map> replicateCA(Map> in_mCA, Vector newRoles, - int times) { - - int index_to_add = 1; - Map> new_mCA = new HashMap>(); - - while (index_to_add <= times) { - for (String strRole : in_mCA.keySet()) { - Vector in_vCA = in_mCA.get(strRole); - String newTargetRole = strRole + index_to_add; - - Vector new_vCA = new Vector(); - - for (int i = 0; i < in_vCA.size(); i++) { - CAEntry oldcae = in_vCA.get(i); - PreCondition oldprecond = oldcae.getPreConditions(); - PreCondition newprecond = new PreCondition(); - - for (int roleindex : oldprecond.keySet()) { - String tmpRole = rbac.getRoles().get(roleindex); - int newindex = this.getRoleIndex(newRoles, tmpRole + index_to_add); - newprecond.addConditional(newindex, oldprecond.getConditional(roleindex)); - } - - CAEntry newcae = new CAEntry("Admin", newprecond, newTargetRole); - new_vCA.add(newcae); - } - - new_mCA.put(newTargetRole, new_vCA); - } - index_to_add++; - } - return new_mCA; - } - - RBACInstance rbac; -} diff --git a/src/mohawk/util/RoleAnalysis.java b/src/mohawk/util/RoleAnalysis.java deleted file mode 100644 index 0037265751d4dad5322ef0d3bc4ad9ca84cc0914..0000000000000000000000000000000000000000 --- a/src/mohawk/util/RoleAnalysis.java +++ /dev/null @@ -1,103 +0,0 @@ -/** - * - */ -package mohawk.util; - -import java.io.File; -import java.util.*; - -import mohawk.global.pieces.mohawk.CAEntry; -import mohawk.global.pieces.mohawk.CREntry; -import mohawk.rbac.RBACInstance; -import mohawk.rbac.RBACSpecReader; -import mohawk.slicer.RoleSlicer; - -/** - * @author kjayaram - * - * STAND ALONE - * - */ -public class RoleAnalysis { - - /** - * @param args - */ - public static void main(String[] args) { - // int oldroles, oldusers, oldcarules, oldcrrules; // NEVER USED - - if (args.length < 2) { - System.out.println("Usage: java -jar ./rbac2smv.jar RoleAnalysis rbacspec nusmvfile"); - } - - File rbacfile = new File(args[0]); - - if (!rbacfile.exists()) { - System.out.println("The RBAC specification file " + rbacfile + " does not exists."); - return; - } - - RBACInstance rbac = null; - - RBACSpecReader rbacreader = new RBACSpecReader(args[0]); - rbac = rbacreader.getRBAC(); - // oldroles = rbac.getRoles().size(); // NEVER USED - // oldusers = rbac.getUsers().size(); // NEVER USED - // oldcarules = getCASize(rbac.getCA()); // NEVER USED - // oldcrrules = getCRSize(rbac.getCR()); // NEVER USED - - Vector AllDisjuncts = rbac.getCA().get(rbac.getSpec().get(1)); - Map> mCA = rbac.getCA(); - /* - * Preparing Sliced Policy file. - */ - - for (int i = 0; i < AllDisjuncts.size(); i++) { - Vector slicedDisjuncts = new Vector(); - slicedDisjuncts.add(AllDisjuncts.get(i)); - mCA.put(rbac.getSpec().get(1), slicedDisjuncts); - // mCA.remove(rbac.getSpec().get(1)); - RBACInstance tmprbac = new RBACInstance(rbac.getRoles(), rbac.getUsers(), rbac.getAdmin(), rbac.getUA(), - rbac.getCR(), mCA, rbac.getSpec()); - - RoleSlicer roleslicer = new RoleSlicer(tmprbac); - try { - tmprbac = roleslicer.getSlicedPolicy(); - } catch (Exception e) { - e.printStackTrace(); - } - - System.out.println("After slicing Disjunct " + i); - System.out.println("Roles : " + tmprbac.getRoles().size()); - System.out.println("Users : " + tmprbac.getUsers().size()); - System.out.println("CA : " + getCASize(tmprbac.getCA())); - System.out.println("CR : " + getCRSize(tmprbac.getCR())); - } - - } - - private static int getCASize(Map> mCA) { - int size = 0; - Collection> carules = mCA.values(); - Iterator> iterator = carules.iterator(); - - while (iterator.hasNext()) { - Vector vCA = iterator.next(); - size += vCA.size(); - } - return size; - } - - private static int getCRSize(Map> mCR) { - int size = 0; - Collection> carules = mCR.values(); - Iterator> iterator = carules.iterator(); - - while (iterator.hasNext()) { - Vector vCR = iterator.next(); - size += vCR.size(); - } - return size; - } - -} diff --git a/src/mohawk/util/SizeOfRBAC.java b/src/mohawk/util/SizeOfRBAC.java deleted file mode 100644 index 3feb5bd31b539d6de96e92b307d2b436fdc43551..0000000000000000000000000000000000000000 --- a/src/mohawk/util/SizeOfRBAC.java +++ /dev/null @@ -1,85 +0,0 @@ -/** - * - */ -package mohawk.util; - -import java.io.*; -import java.util.*; -import java.util.logging.Logger; - -import org.antlr.v4.runtime.*; - -import mohawk.global.parser.mohawk.v1.MohawkLexer; -import mohawk.global.parser.mohawk.v1.MohawkParser; -import mohawk.global.pieces.mohawk.CAEntry; -import mohawk.global.pieces.mohawk.CREntry; -import mohawk.rbac.RBACInstance; - -/** - * @author Karthick Jayaraman - * - */ -public class SizeOfRBAC { - public final static Logger logger = Logger.getLogger("mohawk"); - - /** - * @param args - * @throws FileNotFoundException - */ - public static void main(String[] args) throws Exception { - File rbacfile = new File(args[0]); - - if (!rbacfile.exists()) { - System.out.println("The RBAC specification file " + rbacfile + " does not exists."); - return; - } - - InputStream is = new FileInputStream(args[0]); - ANTLRInputStream input = new ANTLRInputStream(is); - MohawkLexer lexer = new MohawkLexer(input); - CommonTokenStream tokens = new CommonTokenStream(lexer); - MohawkParser parser = new MohawkParser(tokens); - - RBACInstance rbac = null; - - parser.initRbac(); - - try { - - parser.init(); - rbac = new RBACInstance(parser.vRoles, parser.vUsers, parser.vAdmin, parser.mUA, parser.mCR, parser.mCA, - parser.vSpec); - - } catch (RecognitionException e) { - e.printStackTrace(); - } - - System.out.println("No of roles : " + rbac.getRoles().size()); - System.out.println("No of CA Rules : " + getCASize(rbac.getCA())); - System.out.println("No of CA Rules : " + getCRSize(rbac.getCR())); - } - - private static int getCASize(Map> mCA) { - int size = 0; - Collection> carules = mCA.values(); - Iterator> iterator = carules.iterator(); - - while (iterator.hasNext()) { - Vector vCA = iterator.next(); - size += vCA.size(); - } - return size; - } - - private static int getCRSize(Map> mCR) { - int size = 0; - Collection> carules = mCR.values(); - Iterator> iterator = carules.iterator(); - - while (iterator.hasNext()) { - Vector vCR = iterator.next(); - size += vCR.size(); - } - return size; - } -} diff --git a/src/mohawk/util/Slicer.java b/src/mohawk/util/Slicer.java deleted file mode 100644 index 760862f53454b4332e718fd1f6d9c6d47f00a379..0000000000000000000000000000000000000000 --- a/src/mohawk/util/Slicer.java +++ /dev/null @@ -1,127 +0,0 @@ -/** - * - */ -package mohawk.util; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; -import java.util.Vector; -import java.util.logging.Logger; - -import mohawk.global.pieces.mohawk.CAEntry; -import mohawk.global.pieces.mohawk.CREntry; -import mohawk.output.WriteRBACSpec; -import mohawk.rbac.RBACInstance; -import mohawk.rbac.RBACSpecReader; -import mohawk.slicer.RoleSlicer; -import mohawk.slicer.SliceQueryRole; - -/** - * @author kjayaram - * - */ -public class Slicer { - public final static Logger logger = Logger.getLogger("mohawk"); - - /** - * @param args - */ - public static void main(String[] args) { - int oldroles, oldusers, oldcarules, oldcrrules; - - if (args.length < 2) { - System.out.println("Usage: java -jar ./rbac2smv.jar Slicer rbacspec nusmvfile"); - } - - File rbacfile = new File(args[0]); - - if (!rbacfile.exists()) { - System.out.println("The RBAC specification file " + rbacfile + " does not exists."); - return; - } - - String nusmvfile = args[1]; - - /* - * Reader reader = null; try { reader = new FileReader(rbacfile); } catch (FileNotFoundException e) { - * Auto-generated catch block e.printStackTrace(); } - */ - // RBACLexer lexer = new RBACLexer(reader); - // RBACParser parser = new RBACParser(lexer); - RBACInstance rbac = null; - - RBACSpecReader rbacreader = new RBACSpecReader(args[0]); - rbac = rbacreader.getRBAC(); - oldroles = rbac.getRoles().size(); - oldusers = rbac.getUsers().size(); - oldcarules = getCASize(rbac.getCA()); - oldcrrules = getCRSize(rbac.getCR()); - - /* - * Preparing Sliced Policy file. - */ - - RoleSlicer roleslicer = new RoleSlicer(rbac); - try { - rbac = roleslicer.getSlicedPolicy(); - } catch (Exception e) { - e.printStackTrace(); - } - - if (args.length == 3) { - // if(args[2] == "QueryRole") - { - SliceQueryRole scRole = new SliceQueryRole(rbac); - try { - rbac = scRole.getSlicedPolicy(); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - // FwdPruning fwdpruning = new FwdPruning(rbac); - // rbac = fwdpruning.getSlicedPolicy(); - - WriteRBACSpec writer = new WriteRBACSpec("rbac.st"); - try { - writer.Write2File(rbac, nusmvfile); - } catch (IOException e1) { - e1.printStackTrace(); - } - - System.out.println("Sliced specification for " + rbacfile + " written to " + nusmvfile); - System.out.println("Results of slicing"); - System.out.println("Roles old :" + oldroles + " new :" + rbac.getRoles().size()); - System.out.println("Users old :" + oldusers + " new :" + rbac.getUsers().size()); - System.out.println("CA Rules old :" + oldcarules + " new :" + getCASize(rbac.getCA())); - System.out.println("CR Rules old :" + oldcrrules + " new :" + getCRSize(rbac.getCR())); - } - - private static int getCASize(Map> mCA) { - int size = 0; - Collection> carules = mCA.values(); - Iterator> iterator = carules.iterator(); - - while (iterator.hasNext()) { - Vector vCA = iterator.next(); - size += vCA.size(); - } - return size; - } - - private static int getCRSize(Map> mCR) { - int size = 0; - Collection> carules = mCR.values(); - Iterator> iterator = carules.iterator(); - - while (iterator.hasNext()) { - Vector vCR = iterator.next(); - size += vCR.size(); - } - return size; - } -}