/** * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, Version 3, 29 June 2007; * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.gnu.org/licenses/lgpl-3.0.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kevoree.tools.accesscontrol.framework; import org.kevoree.accesscontrol.*; import org.kevoree.accesscontrol.impl.DefaultAccessControlFactory; import org.kevoree.ContainerRoot; import org.kevoree.Instance; import org.kevoree.adaptation.accesscontrol.api.SignedModel; import org.kevoree.framework.KevoreeXmiHelper; import org.kevoree.kompare.JavaSePrimitive; import org.kevoree.tools.accesscontrol.framework.api.ICompareAccessControl; import org.kevoree.tools.accesscontrol.framework.impl.CompareAccessControlImpl; import org.kevoree.tools.accesscontrol.framework.impl.SignedModelImpl; import org.kevoree.tools.accesscontrol.framework.utils.AccessControlXmiHelper; import org.kevoree.tools.accesscontrol.framework.utils.HelperSignature; import org.kevoreeadaptation.AdaptationPrimitive; import javax.swing.*; import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import java.math.BigInteger; import java.security.KeyFactory; import java.security.KeyPair; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.KeySpec; import java.security.spec.RSAPrivateKeySpec; import java.util.List; /** * Created with IntelliJ IDEA. * User: jed * Date: 21/01/13 * Time: 17:23 * To change this template use File | Settings | File Templates. */ public class Tester { public static void main(String argv[]) throws Exception { ContainerRoot current_model = KevoreeXmiHelper.instance$.loadStream(Tester.class.getClassLoader().getResourceAsStream("empty_node.kev")); ContainerRoot target_model = KevoreeXmiHelper.instance$.loadStream(Tester.class.getClassLoader().getResourceAsStream("random_nio_grapher_group.kev")); AccessControlRoot root = AccessControlXmiHelper.instance$.loadStream(Tester.class.getClassLoader().getResourceAsStream("model.ac")); ICompareAccessControl accessControl = new CompareAccessControlImpl(root); String modulus = ("144020407584804763735781397875483509259162896393675259140832504723667556298258224080835620462080899939316115674945584086752254208548119246078919563808881551818193159408718845506936985497165354139428760891323751580371321471610817626346638768300361018500421805148485036897404239717699245568771580543630086019231"); String private_exponent = ("4109406322895233351937244823949130450198126497340017617427663515773659616365455834584473049790061841196898489588297331922833138074446236327075996525971717609987352411769231643214939977856590128556711125769670219934822712525295744744260700314730439781770858314592005380741217371388959032631896022121650706113"); SignedModel signedmodel = new SignedModelImpl(target_model, HelperSignature.getPrivateKey(modulus, private_exponent)); List<AdaptationPrimitive> result = accessControl.approval("node0", current_model, signedmodel); if(result.size() == 0) { System.out.println("accepted"); }else { for(AdaptationPrimitive p : result) { System.err.println("ERROR "+p.getPrimitiveType().getName()+" "+p.getRef()); } } } }