//* Licensed Materials - Property of *
//* IBM *
//* *
//* eu.abc4trust.pabce.1.34 *
//* *
//* (C) Copyright IBM Corp. 2014. All Rights Reserved. *
//* US Government Users Restricted Rights - Use, duplication or *
//* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *
//* *
//* This file is licensed under the Apache License, Version 2.0 (the *
//* "License"); you may not use this file except in compliance with *
//* the License. You may obtain a copy of the License at: *
//* http://www.apache.org/licenses/LICENSE-2.0 *
//* 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 eu.abc4trust.util;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import com.google.inject.Guice;
import com.google.inject.Injector;
import eu.abc4trust.guice.ProductionModuleFactory;
import eu.abc4trust.keyManager.KeyManager;
import eu.abc4trust.keyManager.KeyManagerException;
import eu.abc4trust.xml.CredentialSpecification;
import eu.abc4trust.xml.FriendlyDescription;
import eu.abc4trust.xml.IssuancePolicy;
import eu.abc4trust.xml.IssuerParameters;
import eu.abc4trust.xml.PresentationPolicyAlternatives;
import eu.abc4trust.xml.util.XmlUtils;
public class PolicyFriendlyDescrGeneratorTest {
@Test @org.junit.Ignore
public void testFriendlyPolicyDescrGenerator() throws Exception {
//---------------------------------------------------
//Setup all instances
//---------------------------------------------------
Injector userInjector = Guice.createInjector(ProductionModuleFactory.newModuleWithoutPersistance());
KeyManager userKeyManager = userInjector.getInstance(KeyManager.class);
//---------------------------------------------------
// Create Issuer Parameters
//---------------------------------------------------
IssuerParameters isParamsVoucher = new IssuerParameters();
URI ipUidVoucher = URI.create("https://movies.idemixcloud.zurich.ibm.com/parameters/voucher");
FriendlyDescription fdVoucher = new FriendlyDescription();
fdVoucher.setLang("en");
fdVoucher.setValue("Movie Streaming Service");
isParamsVoucher.getFriendlyIssuerDescription().add(fdVoucher);
List<FriendlyDescription> listFD = new ArrayList<FriendlyDescription>();
listFD.add(fdVoucher);
userKeyManager.storeIssuerParameters(ipUidVoucher, isParamsVoucher);
IssuerParameters isParamsIdCard = new IssuerParameters();
URI ipUidIdCard = URI.create("https://egov.idemixcloud.zurich.ibm.com/parameters/idcard");
isParamsIdCard.setParametersUID(ipUidIdCard);
FriendlyDescription fdIdCard = new FriendlyDescription();
fdIdCard.setLang("en");
fdIdCard.setValue("eGovernment");
isParamsIdCard.getFriendlyIssuerDescription().add(fdIdCard);
userKeyManager.storeIssuerParameters(isParamsIdCard.getParametersUID(), isParamsIdCard);
//---------------------------------------------------
// Read and store credential specifications
//---------------------------------------------------
CredentialSpecification idCardSpec =
(CredentialSpecification) XmlUtils.getObjectFromXML(this.getClass().getResourceAsStream(
"/eu/abc4trust/demo/credentialSpecificationIdCard.xml"), true);
if (idCardSpec !=null){
userKeyManager.storeCredentialSpecification(idCardSpec.getSpecificationUID(), idCardSpec);
}
CredentialSpecification voucherSpec =
(CredentialSpecification) XmlUtils.getObjectFromXML(this.getClass().getResourceAsStream(
"/eu/abc4trust/demo/credentialSpecificationMovieVoucher.xml"), true);
if (voucherSpec !=null){
userKeyManager.storeCredentialSpecification(voucherSpec.getSpecificationUID(), voucherSpec);
}
//---------------------------------------------------
//Retrieve presentation policies
//---------------------------------------------------
PresentationPolicyAlternatives ppDemoVoucherAlt =
(PresentationPolicyAlternatives) XmlUtils.getObjectFromXML(this.getClass().getResourceAsStream(
"/eu/abc4trust/demo/presentationPolicyMovieStreamingOnlyVoucher.xml"), true);
PresentationPolicyAlternatives ppDemoVoucherId12Alt =
(PresentationPolicyAlternatives) XmlUtils.getObjectFromXML(this.getClass().getResourceAsStream(
"/eu/abc4trust/demo/presentationPolicyMovieStreamingVoucherAndAgeOver12.xml"), true);
PresentationPolicyAlternatives ppDemoVoucherId18Alt =
(PresentationPolicyAlternatives) XmlUtils.getObjectFromXML(this.getClass().getResourceAsStream(
"/eu/abc4trust/demo/presentationPolicyMovieStreamingVoucherAndAgeOver18.xml"), true);
//---------------------------------------------------
//Retrieve issuance policies
//---------------------------------------------------
IssuancePolicy ipDemoVoucherAlt =
(IssuancePolicy) XmlUtils.getObjectFromXML(this.getClass().getResourceAsStream(
"/eu/abc4trust/demo/issuancePolicyMovieVoucher.xml"), true);
IssuancePolicy ipDemoID =
(IssuancePolicy) XmlUtils.getObjectFromXML(this.getClass().getResourceAsStream(
"/eu/abc4trust/demo/issuancePolicyIdCard.xml"), true);
//---------------------------------------------------
//Generate friendly descriptions of pp
//---------------------------------------------------
printPolicy(ppDemoVoucherAlt, userKeyManager);
printPolicy(ppDemoVoucherId12Alt, userKeyManager);
printPolicy(ppDemoVoucherId18Alt, userKeyManager);
printIssuancePolicy(ipDemoID, userKeyManager);
printIssuancePolicy(ipDemoVoucherAlt, userKeyManager);
//TODO assertTrue
}
private static void printPolicy(PresentationPolicyAlternatives ppa, KeyManager userKeyManager){
List<String> ret;
try {
ret = PolicyFriendlyDescrGenerator.generateFriendlyPresentationPolicyDescription(ppa, userKeyManager);
for(String item : ret){
System.out.println(item);
}
} catch (KeyManagerException e) {
e.printStackTrace();
}
}
private static void printIssuancePolicy(IssuancePolicy ip, KeyManager userKeyManager){
List<String> ret;
try {
ret = PolicyFriendlyDescrGenerator.generateFriendlyIssuancePolicyDescription(ip, userKeyManager);
for(String item : ret){
System.out.println(item);
}
} catch (KeyManagerException e) {
e.printStackTrace();
}
}
}