wsattacker.library.signatureFaking.helper.CertificateHandlerTest.java Source code

Java tutorial

Introduction

Here is the source code for wsattacker.library.signatureFaking.helper.CertificateHandlerTest.java

Source

/**
 * WS-Attacker - A Modular Web Services Penetration Testing Framework Copyright
 * (C) 2013 Juraj Somorovsky
 *
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 51
 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 */
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package wsattacker.library.signatureFaking.helper;

import java.io.ByteArrayInputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import junit.framework.TestCase;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import sun.security.x509.X509CertImpl;

/**
 * @author Juraj Somorovsky - juraj.somorovsky@rub.de
 * @version 0.1
 */
public class CertificateHandlerTest extends TestCase {

    public static final String DIR = "src/test/resources/test-certificates";

    Logger log = Logger.getLogger(CertificateHandlerTest.class);

    private static String LOG_FILE = "logging.properties";

    /**
     * Create the test case
     * 
     * @param testName name of the test case
     */
    public CertificateHandlerTest(String testName) {
        super(testName);
        PropertyConfigurator.configure(LOG_FILE);
    }

    public static void testCertificateHandler() throws Exception {
        String certificate = FileReader.readFile(DIR + "/test-cert");
        CertificateHandler ch = new CertificateHandler(certificate);
        ch.createFakedCertificate();
        X509CertImpl faked = ch.getFakedCertificate();

        CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
        X509Certificate original = (X509Certificate) certFactory
                .generateCertificate(new ByteArrayInputStream(Base64.decodeBase64(certificate)));

        assertEquals(faked.getIssuerDN().getName(), original.getIssuerDN().getName());
        assertEquals(faked.getSigAlgOID(), original.getSigAlgOID());
        assertEquals(faked.getSubjectDN().getName(), original.getSubjectDN().getName());
        faked.verify(faked.getPublicKey());
    }
}