public void performTest()
        throws Exception
    {
        testSig(1, pub1, prv1, slt1a, msg1a, sig1a);
        testSig(2, pub1, prv1, slt1b, msg1b, sig1b);
        testSig(3, pub2, prv2, slt2a, msg2a, sig2a);
        testSig(4, pub2, prv2, slt2b, msg2b, sig2b);
        testSig(5, pub4, prv4, slt4a, msg4a, sig4a);
        testSig(6, pub4, prv4, slt4b, msg4b, sig4b);
        testSig(7, pub8, prv8, slt8a, msg8a, sig8a);
        testSig(8, pub8, prv8, slt8b, msg8b, sig8b);
        testSig(9, pub9, prv9, slt9a, msg9a, sig9a);
        testSig(10, pub9, prv9, slt9b, msg9b, sig9b);
        
        //
        // loop test
        //
        int failed = 0;
        byte[] data = new byte[DATA_LENGTH];

        SecureRandom    random = new SecureRandom();


        RSAKeyParameters[] kprv ={prv1, prv2, prv4, prv8, prv9};
        RSAKeyParameters[] kpub ={pub1, pub2, pub4, pub8, pub9};

        int i = 0;
        for (int j = 0; j < NUM_TESTS; j++, i++)
        {
            if (i == kprv.length)
            {
                i = 0;
            }

            if (!isProcessingOkay(kpub[i], kprv[i], data, random))
            {
                failed++;
            }
        }

        if (failed != 0)
        {
            fail("loop test failed - failures: " + failed);
        }

        //
        // key generation test
        //
        RSAKeyPairGenerator  pGen = new RSAKeyPairGenerator();
        RSAKeyGenerationParameters  genParam = new RSAKeyGenerationParameters(
                                            BigInteger.valueOf(0x11), new SecureRandom(), 1024, 25);

        pGen.init(genParam);
        failed = 0;

        for (int k = 0; k < NUM_TESTS_WITH_KEY_GENERATION; k++)
        {
            AsymmetricCipherKeyPair pair = pGen.generateKeyPair();

            for (int j = 0; j < NUM_TESTS; j++)
            {
                if (!isProcessingOkay((RSAKeyParameters)pair.getPublic(), (RSAKeyParameters)pair.getPrivate(), data, random))
                {
                    failed++;
                }
            }

        }
        
        if (failed != 0)
        {
            fail("loop test with key generation failed - failures: " + failed);
        }
    }