/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.intel.mtwilson.trustagent.client.jaxrs; import com.intel.dcsg.cpg.configuration.Configuration; import com.intel.dcsg.cpg.io.UUID; import com.intel.dcsg.cpg.tls.policy.TlsConnection; import com.intel.mtwilson.jaxrs2.client.MtWilsonClient; import com.intel.mtwilson.jaxrs2.mediatype.CryptoMediaType; import com.intel.mtwilson.trustagent.model.*; import java.net.URL; import java.security.cert.X509Certificate; import java.util.Properties; import javax.ws.rs.client.Entity; import javax.ws.rs.core.MediaType; /** * * @author ssbangal */ public class TrustAgentClient extends MtWilsonClient { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TrustAgentClient.class); public TrustAgentClient(Properties properties, TlsConnection tlsConnection) throws Exception { super(properties, tlsConnection); } public X509Certificate getAik() { log.debug("target: {}", getTarget().getUri().toString()); X509Certificate aik = getTarget() .path("/aik") .request() .accept(CryptoMediaType.APPLICATION_PKIX_CERT) .get(X509Certificate.class); return aik; } public X509Certificate getAikCa() { log.debug("target: {}", getTarget().getUri().toString()); X509Certificate aik = getTarget() .path("/aik/ca") .request() .accept(CryptoMediaType.APPLICATION_PKIX_CERT) .get(X509Certificate.class); return aik; } public HostInfo getHostInfo() { log.debug("target: {}", getTarget().getUri().toString()); HostInfo hostInfo = getTarget() .path("/host") .request() .accept(MediaType.APPLICATION_JSON) .get(HostInfo.class); return hostInfo; } public void writeTag(byte[] tag, UUID hardwareUuid) { TagWriteRequest tagWriteRequest = new TagWriteRequest(); tagWriteRequest.setTag(tag); tagWriteRequest.setHardwareUuid(hardwareUuid); getTarget() .path("/tag") .request() .accept(MediaType.APPLICATION_JSON) .post(Entity.json(tagWriteRequest)); } public TpmQuoteResponse getTpmQuote(byte[] nonce, int[] pcrs) { TpmQuoteRequest tpmQuoteRequest = new TpmQuoteRequest(); tpmQuoteRequest.setNonce(nonce); tpmQuoteRequest.setPcrs(pcrs); log.debug("target: {}", getTarget().getUri().toString()); TpmQuoteResponse tpmQuoteResponse = getTarget() .path("/tpm/quote") .request() .accept(MediaType.APPLICATION_XML) .post(Entity.json(tpmQuoteRequest), TpmQuoteResponse.class); return tpmQuoteResponse; } }