public void TestCustomRsaCsp()
        {
            RSACryptoServiceProvider rsaCsp = KeyingMaterial.DefaultX509Key_2048.PrivateKey as RSACryptoServiceProvider;

            if (rsaCsp == null)
            {
                return;
            }

            Assert.True(rsaCsp.CspKeyContainerInfo.ProviderType == 1, "Default RsaCSP provider type is not equal to 1. ProviderType: " + rsaCsp.CspKeyContainerInfo.ProviderType);
            SignData(rsaCsp, ExpectedException.CryptographicException("Invalid algorithm specified"));
            SignData(new RSACryptoServiceProviderProxy(rsaCsp), ExpectedException.NoExceptionExpected);

            rsaCsp = CreateProviderWithProviderType(rsaCsp.CspKeyContainerInfo, 1);
            SignData(rsaCsp, ExpectedException.CryptographicException("Invalid algorithm specified"));
            SignData(new RSACryptoServiceProviderProxy(rsaCsp), ExpectedException.NoExceptionExpected);

            rsaCsp = CreateProviderWithProviderType(rsaCsp.CspKeyContainerInfo, 12);
            Assert.True(rsaCsp.CspKeyContainerInfo.ProviderType == 12, "rsa provider type != 12. ProviderType: " + rsaCsp.CspKeyContainerInfo.ProviderType);
            SignData(rsaCsp, ExpectedException.CryptographicException("Invalid algorithm specified"));
            SignData(new RSACryptoServiceProviderProxy(rsaCsp), ExpectedException.NoExceptionExpected);

            rsaCsp = CreateProviderWithProviderType(rsaCsp.CspKeyContainerInfo, 24);
            SignData(rsaCsp, ExpectedException.NoExceptionExpected);
            SignData(new RSACryptoServiceProviderProxy(rsaCsp), ExpectedException.NoExceptionExpected);
        }