/* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.privacyca.v2.resource; import com.intel.mtwilson.jaxrs2.mediatype.DataMediaType; import com.intel.mtwilson.launcher.ws.ext.V2; import com.intel.mtwilson.privacyca.v2.model.IdentityChallenge; import com.intel.mtwilson.privacyca.v2.model.IdentityChallengeRequest; import com.intel.mtwilson.privacyca.v2.rpc.IdentityRequestGetChallenge; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; /** * * @author jbuhacoff */ @V2 @Path("/privacyca/identity-challenge-request") public class IdentityRequestGetChallengeResource { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(IdentityRequestGetChallengeResource.class); /** * * @param derEncodedIdentityChallengeRequest is an ASN.1 structure SEQUENCE ( DEROCTETSTREAM identityRequest , DEROCTETSTREAM endorsementCertificate ) * @return encrypted identity challenge * @throws Exception */ @POST @Consumes(MediaType.APPLICATION_OCTET_STREAM) @Produces(MediaType.APPLICATION_OCTET_STREAM) public byte[] identityChallengeRequest(byte[] derEncodedIdentityChallengeRequest) throws Exception { IdentityChallengeRequest identityChallengeRequest = IdentityChallengeRequest.valueOf(derEncodedIdentityChallengeRequest); IdentityRequestGetChallenge rpc = new IdentityRequestGetChallenge(); rpc.setIdentityRequest(identityChallengeRequest.getIdentityRequest()); rpc.setEndorsementCertificate(identityChallengeRequest.getEndorsementCertificate()); return rpc.call(); } @POST @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, DataMediaType.APPLICATION_YAML, DataMediaType.TEXT_YAML}) @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, DataMediaType.APPLICATION_YAML, DataMediaType.TEXT_YAML}) public IdentityChallenge identityChallengeRequest(IdentityChallengeRequest identityChallengeRequest) throws Exception { IdentityRequestGetChallenge rpc = new IdentityRequestGetChallenge(); rpc.setIdentityRequest(identityChallengeRequest.getIdentityRequest()); rpc.setEndorsementCertificate(identityChallengeRequest.getEndorsementCertificate()); byte[] encryptedChallenge = rpc.call(); IdentityChallenge identityChallenge = new IdentityChallenge(); identityChallenge.setIdentityChallenge(encryptedChallenge); return identityChallenge; } }