diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-08-11 04:53:30 -0500 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2012-08-15 12:07:04 -0500 |
commit | 56768d1bd274228a391ac8a4272ab9ccf5ac3e51 (patch) | |
tree | 470e4d05ea650e9475c82265182557bd240ef3b5 /base/kra/functional/src/com/netscape/cms/servlet/test/DRMClient.java | |
parent | c70859039d60db53a1966f3b1781defd032a4062 (diff) | |
download | pki-56768d1bd274228a391ac8a4272ab9ccf5ac3e51.tar.gz pki-56768d1bd274228a391ac8a4272ab9ccf5ac3e51.tar.xz pki-56768d1bd274228a391ac8a4272ab9ccf5ac3e51.zip |
Cleaned up REST client class names.
The REST client classes have been renamed for better clarity
and consistency.
Ticket #259
Diffstat (limited to 'base/kra/functional/src/com/netscape/cms/servlet/test/DRMClient.java')
-rw-r--r-- | base/kra/functional/src/com/netscape/cms/servlet/test/DRMClient.java | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/base/kra/functional/src/com/netscape/cms/servlet/test/DRMClient.java b/base/kra/functional/src/com/netscape/cms/servlet/test/DRMClient.java new file mode 100644 index 000000000..0f12eada2 --- /dev/null +++ b/base/kra/functional/src/com/netscape/cms/servlet/test/DRMClient.java @@ -0,0 +1,130 @@ +package com.netscape.cms.servlet.test; + +import java.net.URISyntaxException; +import java.util.Collection; +import java.util.Iterator; + +import org.jboss.resteasy.client.ClientResponse; + +import com.netscape.certsrv.dbs.keydb.KeyId; +import com.netscape.certsrv.request.RequestId; +import com.netscape.cms.client.cli.ClientConfig; +import com.netscape.cms.servlet.admin.SystemCertificateResource; +import com.netscape.cms.servlet.cert.model.CertificateData; +import com.netscape.cms.servlet.csadmin.PKIClient; +import com.netscape.cms.servlet.key.KeyResource; +import com.netscape.cms.servlet.key.model.KeyData; +import com.netscape.cms.servlet.key.model.KeyDataInfo; +import com.netscape.cms.servlet.key.model.KeyDataInfos; +import com.netscape.cms.servlet.request.KeyRequestResource; +import com.netscape.cms.servlet.request.model.ArchivalRequestData; +import com.netscape.cms.servlet.request.model.KeyRequestInfo; +import com.netscape.cms.servlet.request.model.KeyRequestInfos; +import com.netscape.cms.servlet.request.model.RecoveryRequestData; +import com.netscape.cmsutil.util.Utils; + +public class DRMClient extends PKIClient { + + private KeyResource keyClient; + private KeyRequestResource keyRequestClient; + private SystemCertificateResource systemCertClient; + + public DRMClient(ClientConfig config) throws URISyntaxException { + super(config); + + systemCertClient = createProxy(SystemCertificateResource.class); + keyRequestClient = createProxy(KeyRequestResource.class); + keyClient = createProxy(KeyResource.class); + } + + public String getTransportCert() { + @SuppressWarnings("unchecked") + ClientResponse<CertificateData> response = (ClientResponse<CertificateData>) systemCertClient + .getTransportCert(); + CertificateData certData = getEntity(response); + String transportCert = certData.getEncoded(); + return transportCert; + } + + public Collection<KeyRequestInfo> listRequests(String requestState, String requestType) { + KeyRequestInfos infos = keyRequestClient.listRequests( + requestState, requestType, null, new RequestId(0), 100, 100, 10 + ); + Collection<KeyRequestInfo> list = infos.getRequests(); + return list; + } + + public KeyRequestInfo archiveSecurityData(byte[] encoded, String clientId, String dataType) { + // create archival request + ArchivalRequestData data = new ArchivalRequestData(); + String req1 = Utils.base64encode(encoded); + data.setWrappedPrivateData(req1); + data.setClientId(clientId); + data.setDataType(dataType); + + KeyRequestInfo info = keyRequestClient.archiveKey(data); + return info; + } + + public KeyDataInfo getKeyData(String clientId, String status) { + KeyDataInfos infos = keyClient.listKeys(clientId, status, 100, 10); + Collection<KeyDataInfo> list = infos.getKeyInfos(); + Iterator<KeyDataInfo> iter = list.iterator(); + + while (iter.hasNext()) { + KeyDataInfo info = iter.next(); + if (info != null) { + // return the first one + return info; + } + } + return null; + } + + public KeyRequestInfo requestRecovery(KeyId keyId, byte[] rpwd, byte[] rkey, byte[] nonceData) { + // create recovery request + RecoveryRequestData data = new RecoveryRequestData(); + data.setKeyId(keyId); + if (rpwd != null) { + data.setSessionWrappedPassphrase(Utils.base64encode(rpwd)); + } + if (rkey != null) { + data.setTransWrappedSessionKey(Utils.base64encode(rkey)); + } + + if (nonceData != null) { + data.setNonceData(Utils.base64encode(nonceData)); + } + + KeyRequestInfo info = keyRequestClient.recoverKey(data); + return info; + } + + public void approveRecovery(RequestId recoveryId) { + keyRequestClient.approveRequest(recoveryId); + } + + public KeyData retrieveKey(KeyId keyId, RequestId requestId, byte[] rpwd, byte[] rkey, byte[] nonceData) { + // create recovery request + RecoveryRequestData data = new RecoveryRequestData(); + data.setKeyId(keyId); + data.setRequestId(requestId); + if (rkey != null) { + data.setTransWrappedSessionKey(Utils.base64encode(rkey)); + } + if (rpwd != null) { + data.setSessionWrappedPassphrase(Utils.base64encode(rpwd)); + } + + if (nonceData != null) { + data.setNonceData(Utils.base64encode(nonceData)); + } + + KeyData key = keyClient.retrieveKey(data); + return key; + } + + public KeyRequestInfo getRequest(RequestId id) { + return keyRequestClient.getRequestInfo(id); + } +} |