Package org.bouncycastle.jce.provider.test.rsa3

Source Code of org.bouncycastle.jce.provider.test.rsa3.RSA3CertTest

package org.bouncycastle.jce.provider.test.rsa3;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.bouncycastle.openssl.PEMReader;

import java.io.InputStreamReader;
import java.io.Reader;
import java.security.Security;
import java.security.Signature;
import java.security.cert.X509Certificate;

/**
* Marius Schilder's Bleichenbacher's Forgery Attack Tests
*/
public class RSA3CertTest
    extends TestCase
{
    public void setUp()
    {
        if (Security.getProvider("BC") == null)
        {
            Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
        }
    }
   
    public void testA()
        throws Exception
    {
        doTest("self-testcase-A.pem");
    }

    public void testB()
        throws Exception
    {
        doTest("self-testcase-B.pem");
    }
   
    public void testC()
        throws Exception
    {
        doTest("self-testcase-C.pem");
    }
   
    public void testD()
        throws Exception
    {
        doTest("self-testcase-D.pem");
    }
   
    public void testE()
        throws Exception
    {
        doTest("self-testcase-E.pem");
    }
   
    public void testF()
        throws Exception
    {
        doTest("self-testcase-F.pem");
    }
   
    public void testG()
        throws Exception
    {
        doTest("self-testcase-G.pem");
    }
   
    public void testH()
        throws Exception
    {
        doTest("self-testcase-H.pem");
    }
   
    public void testI()
        throws Exception
    {
        doTest("self-testcase-I.pem");
    }
   
    public void testJ()
        throws Exception
    {
        doTest("self-testcase-J.pem");
    }
   
    public void testL()
        throws Exception
    {
        doTest("self-testcase-L.pem");
    }
   
    private void doTest(
        String      certName)
        throws Exception
    {
        X509Certificate  cert = loadCert(certName);
        byte[]           tbs = cert.getTBSCertificate();
        Signature        sig = Signature.getInstance(cert.getSigAlgName(), "BC");
       
        sig.initVerify(cert.getPublicKey());
       
        sig.update(tbs);
       
        assertFalse(sig.verify(cert.getSignature()));
    }

    private X509Certificate loadCert(
        String certName)
        throws Exception
    {
        Reader    in = new InputStreamReader(getClass().getResourceAsStream(certName));
        PEMReader rd = new PEMReader(in);
       
        return (X509Certificate)rd.readObject();
    }
   
    public static void main (String[] args)
        throws Exception
    {
        junit.textui.TestRunner.run(suite());
    }
   
    public static Test suite()
        throws Exception
    {  
        TestSuite suite = new TestSuite("Bleichenbacher's Forgery Attack Tests");
       
        suite.addTestSuite(RSA3CertTest.class);
       
        return suite;
    }
}
TOP

Related Classes of org.bouncycastle.jce.provider.test.rsa3.RSA3CertTest

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.