Esempio n. 1
0
  public void performTest() throws Exception {
    CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");

    X509Certificate rootCert =
        (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(rootCertBin));
    X509Certificate interCert =
        (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(interCertBin));
    X509Certificate finalCert =
        (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(finalCertBin));

    // Testing CertPath generation from List
    List list = new ArrayList();
    list.add(interCert);
    CertPath certPath1 = cf.generateCertPath(list);

    // Testing CertPath encoding as PkiPath
    byte[] encoded = certPath1.getEncoded("PkiPath");

    // Testing CertPath generation from InputStream
    ByteArrayInputStream inStream = new ByteArrayInputStream(encoded);
    CertPath certPath2 = cf.generateCertPath(inStream, "PkiPath");

    // Comparing both CertPathes
    if (!certPath2.equals(certPath1)) {
      fail("CertPath differ after encoding and decoding.");
    }

    encoded = certPath1.getEncoded("PKCS7");

    // Testing CertPath generation from InputStream
    inStream = new ByteArrayInputStream(encoded);
    certPath2 = cf.generateCertPath(inStream, "PKCS7");

    // Comparing both CertPathes
    if (!certPath2.equals(certPath1)) {
      fail("CertPath differ after encoding and decoding.");
    }

    encoded = certPath1.getEncoded("PEM");

    // Testing CertPath generation from InputStream
    inStream = new ByteArrayInputStream(encoded);
    certPath2 = cf.generateCertPath(inStream, "PEM");

    // Comparing both CertPathes
    if (!certPath2.equals(certPath1)) {
      fail("CertPath differ after encoding and decoding.");
    }

    //
    // empty list test
    //
    list = new ArrayList();

    CertPath certPath = CertificateFactory.getInstance("X.509", "BC").generateCertPath(list);
    if (certPath.getCertificates().size() != 0) {
      fail("list wrong size.");
    }

    //
    // exception tests
    //
    testExceptions();
  }