/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.intel.mtwilson.client.jaxrs;
import com.intel.mtwilson.jaxrs2.client.MtWilsonClient;
import com.intel.dcsg.cpg.configuration.Configuration;
import com.intel.dcsg.cpg.tls.policy.TlsConnection;
import com.intel.mtwilson.jaxrs2.mediatype.CryptoMediaType;
import com.intel.mtwilson.privacyca.v2.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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author ssbangal
*/
public class PrivacyCA extends MtWilsonClient {
Logger log = LoggerFactory.getLogger(getClass().getName());
public PrivacyCA(URL url)throws Exception {
super(url);
}
public PrivacyCA(Properties properties) throws Exception {
super(properties);
}
public PrivacyCA(Configuration configuration) throws Exception {
super(configuration);
}
public PrivacyCA(Properties properties, TlsConnection tlsConnection) throws Exception {
super(properties, tlsConnection);
}
public X509Certificate endorseTpm(byte[] ekModulus) {
log.debug("target: {}", getTarget().getUri().toString());
X509Certificate ec = getTarget()
.path("/privacyca/tpm-endorsement")
.request()
.accept(CryptoMediaType.APPLICATION_PKIX_CERT)
.post(Entity.entity(ekModulus, MediaType.APPLICATION_OCTET_STREAM), X509Certificate.class);
return ec;
}
public IdentityChallenge identityChallengeRequest(IdentityChallengeRequest challengeRequest) {
log.debug("target: {}", getTarget().getUri().toString());
IdentityChallenge challenge = getTarget()
.path("/privacyca/identity-challenge-request")
.request()
.accept(MediaType.APPLICATION_JSON)
.post(Entity.json(challengeRequest), IdentityChallenge.class);
return challenge;
}
public IdentityBlob identityChallengeResponse(IdentityChallengeResponse challengeResponse) {
log.debug("target: {}", getTarget().getUri().toString());
IdentityBlob identity = getTarget()
.path("/privacyca/identity-challenge-response")
.request()
.accept(MediaType.APPLICATION_JSON)
.post(Entity.json(challengeResponse), IdentityBlob.class);
return identity;
}
}