}
else if (key instanceof DHPrivateKey)
{
if (elGamalFactory)
{
return new JCEElGamalPrivateKey((DHPrivateKey)key);
}
else
{
return new JCEDHPrivateKey((DHPrivateKey)key);
}
}
else if (key instanceof DSAPublicKey)
{
return new JDKDSAPublicKey((DSAPublicKey)key);
}
else if (key instanceof DSAPrivateKey)
{
return new JDKDSAPrivateKey((DSAPrivateKey)key);
}
else if (key instanceof ElGamalPublicKey)
{
return new JCEElGamalPublicKey((ElGamalPublicKey)key);
}
else if (key instanceof ElGamalPrivateKey)
{
return new JCEElGamalPrivateKey((ElGamalPrivateKey)key);
}
throw new InvalidKeyException("key type unknown");
}