/** * 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() ); } }