/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.intel.mtwilson.client.jaxrs; import com.intel.mtwilson.attestation.client.jaxrs.Oems; import com.intel.mtwilson.attestation.client.jaxrs.MleSources; import com.intel.mtwilson.attestation.client.jaxrs.Oss; import com.intel.mtwilson.attestation.client.jaxrs.MlePcrs; import com.intel.mtwilson.attestation.client.jaxrs.Mles; import com.intel.dcsg.cpg.crypto.Sha1Digest; import com.intel.dcsg.cpg.io.UUID; import com.intel.mtwilson.My; import com.intel.mtwilson.as.rest.v2.model.Mle; import com.intel.mtwilson.as.rest.v2.model.MleCollection; import com.intel.mtwilson.as.rest.v2.model.MleFilterCriteria; import com.intel.mtwilson.as.rest.v2.model.MlePcr; import com.intel.mtwilson.as.rest.v2.model.MlePcrCollection; import com.intel.mtwilson.as.rest.v2.model.MlePcrFilterCriteria; import com.intel.mtwilson.as.rest.v2.model.MleSource; import com.intel.mtwilson.as.rest.v2.model.MleSourceCollection; import com.intel.mtwilson.as.rest.v2.model.MleSourceFilterCriteria; import com.intel.mtwilson.as.rest.v2.model.Oem; import com.intel.mtwilson.as.rest.v2.model.OemCollection; import com.intel.mtwilson.as.rest.v2.model.OemFilterCriteria; import com.intel.mtwilson.as.rest.v2.model.Os; import com.intel.mtwilson.as.rest.v2.model.OsCollection; import com.intel.mtwilson.as.rest.v2.model.OsFilterCriteria; import com.intel.mtwilson.datatypes.ManifestData; import java.util.ArrayList; import java.util.List; import org.junit.BeforeClass; import org.junit.Test; /** * * @author ssbangal */ public class MleTest { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MleTest.class); private static Mles client = null; private static Oems oemClient = null; private static Oss osClient = null; private static MlePcrs pcrClient = null; private static MleSources mleSourceClient = null; @BeforeClass public static void init() throws Exception { client = new Mles(My.configuration().getClientProperties()); oemClient = new Oems(My.configuration().getClientProperties()); osClient = new Oss(My.configuration().getClientProperties()); pcrClient = new MlePcrs(My.configuration().getClientProperties()); mleSourceClient = new MleSources(My.configuration().getClientProperties()); } @Test public void testMleOps() { UUID oemUuid = null, osUuid = null; OemFilterCriteria oemCriteria = new OemFilterCriteria(); oemCriteria.nameEqualTo = "EPSD"; OemCollection oems = oemClient.searchOems(oemCriteria); for (Oem oem : oems.getOems()) { oemUuid = oem.getId(); } OsFilterCriteria osCriteria = new OsFilterCriteria(); osCriteria.nameContains = "VMWare"; OsCollection oss = osClient.searchOss(osCriteria); for (Os os : oss.getOss()) { osUuid = os.getId(); } Mle biosMle = new Mle(); biosMle.setName("Intel BIOS Mle"); biosMle.setVersion("1.2.3"); biosMle.setAttestationType(Mle.AttestationType.PCR); biosMle.setMleType(Mle.MleType.BIOS); biosMle.setOemUuid(oemUuid.toString()); biosMle.setSource("192.168.0.1"); List<ManifestData> biosPcrs = new ArrayList<>(); biosPcrs.add(new ManifestData("0", Sha1Digest.digestOf(new UUID().toByteArray().getBytes()).toString())); biosPcrs.add(new ManifestData("17", Sha1Digest.digestOf(new UUID().toByteArray().getBytes()).toString())); biosMle.setMleManifests(biosPcrs); biosMle = client.createMle(biosMle); MlePcr mlePcr = new MlePcr(); mlePcr.setPcrIndex("1"); mlePcr.setPcrValue(Sha1Digest.digestOf(new UUID().toByteArray().getBytes()).toString()); mlePcr.setMleUuid(biosMle.getId().toString()); mlePcr = pcrClient.createMlePcr(mlePcr); MlePcrFilterCriteria pcrCriteria = new MlePcrFilterCriteria(); pcrCriteria.mleUuid = biosMle.getId(); MlePcrCollection pcrs = pcrClient.searchMlePcrs(pcrCriteria); for (MlePcr pcr : pcrs.getMlePcrs()) { log.debug("Retrieved PCR {} with value {} for MLE with UUID {}.", pcr.getPcrIndex(), pcr.getPcrValue(), pcr.getMleUuid()); } mlePcr.setDescription("Added description"); mlePcr.setPcrValue(Sha1Digest.digestOf(new UUID().toByteArray().getBytes()).toString()); mlePcr = pcrClient.editMlePcr(mlePcr); log.debug("Updated PCR {} with value {} for MLE with UUID {}.", mlePcr.getPcrIndex(), mlePcr.getPcrValue(), mlePcr.getMleUuid()); MleSourceFilterCriteria sourceCriteria = new MleSourceFilterCriteria(); sourceCriteria.mleUuid = biosMle.getId(); MleSourceCollection mleSources = mleSourceClient.searchMleSources(sourceCriteria); if (mleSources != null && mleSources.getMleSources().size() == 1) { MleSource mleSource = mleSources.getMleSources().get(0); mleSource.setName("192.168.20.20"); mleSource = mleSourceClient.editMleSource(mleSource); log.debug("Updated MLE {} with source {}", mleSource.getMleUuid(), mleSource.getName()); } else { MleSource mleSource = new MleSource(); mleSource.setName("192.168.10.10"); mleSource.setMleUuid(biosMle.getId().toString()); mleSource = mleSourceClient.editMleSource(mleSource); log.debug("Created MLE {} with source {}", mleSource.getMleUuid(), mleSource.getName()); } MleFilterCriteria mleCriteria = new MleFilterCriteria(); mleCriteria.id = UUID.valueOf(biosMle.getId().toString()); //biosMle.getId(); MleCollection mles = client.searchMles(mleCriteria); for (Mle mle : mles.getMles()) { log.debug("Mle details : {} - {} - {} - {}", mle.getName(), mle.getVersion(), mle.getSource(), mle.getId().toString()); } Mle newBiosMle = client.retrieveMle(biosMle.getId().toString()); log.debug("Mle details : {} - {} - {} - {}", newBiosMle.getName(), newBiosMle.getVersion(), newBiosMle.getSource(), newBiosMle.getId().toString()); client.deleteMle(biosMle.getId().toString()); } }