Package org.jscep.transport

Source Code of org.jscep.transport.AbstractTransportTest

package org.jscep.transport;

import java.math.BigInteger;
import java.net.Proxy;
import java.net.URL;
import java.security.GeneralSecurityException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.cert.X509Certificate;

import javax.security.auth.x500.X500Principal;

import junit.framework.Assert;

import org.bouncycastle.asn1.cms.IssuerAndSerialNumber;
import org.bouncycastle.asn1.x500.X500Name;
import org.eclipse.jetty.server.Server;
import org.jscep.message.GetCert;
import org.jscep.message.PkcsPkiEnvelopeEncoder;
import org.jscep.message.PkiMessageEncoder;
import org.jscep.transaction.Nonce;
import org.jscep.transaction.TransactionId;
import org.jscep.transport.request.PkiOperationRequest;
import org.jscep.transport.response.PkiOperationResponseHandler;
import org.jscep.util.X509Certificates;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

abstract public class AbstractTransportTest {
    protected URL url;
    protected Proxy proxy;
    protected Transport transport;
    private Server server;

    @Before
    public void setUp() throws Exception {
  server = new Server(0);
  server.start();
  url = new URL("http://localhost:"
    + server.getConnectors()[0].getLocalPort() + "/");
  proxy = Proxy.NO_PROXY;
  transport = getTransport(url);
    }

    abstract protected Transport getTransport(URL url);

    @After
    public void tearDown() throws Exception {
  server.stop();
    }

    @Test
    public void test404() throws Exception {
  KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair();

  PkcsPkiEnvelopeEncoder envEnc = new PkcsPkiEnvelopeEncoder(
    getCertificate(keyPair), "DES");
  PkiMessageEncoder enc = new PkiMessageEncoder(keyPair.getPrivate(),
    getCertificate(keyPair), envEnc);

  TransactionId transId = TransactionId.createTransactionId();
  Nonce senderNonce = Nonce.nextNonce();
  X500Name name = new X500Name("CN=jscep.org");
  BigInteger serialNumber = BigInteger.ONE;
  IssuerAndSerialNumber iasn = new IssuerAndSerialNumber(name,
    serialNumber);
  GetCert getCert = new GetCert(transId, senderNonce, iasn);
  PkiOperationRequest req = new PkiOperationRequest(enc.encode(getCert));

  try {
      transport.sendRequest(req, new PkiOperationResponseHandler());
  } catch (TransportException e) {
      Assert.assertEquals(e.getMessage(), "404 Not Found");
  }
    }

    private X509Certificate getCertificate(KeyPair keyPair)
      throws GeneralSecurityException {
  final X500Principal subject = new X500Principal("CN=example.org");

  return X509Certificates.createEphemeral(subject, keyPair);
    }
}
TOP

Related Classes of org.jscep.transport.AbstractTransportTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.