com.trilead.ssh2.signature.RSAPrivateKey Maven / Gradle / Ivy
package com.trilead.ssh2.signature;
import java.math.BigInteger;
import java.security.KeyPair;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.security.GeneralSecurityException;
import java.security.spec.RSAPublicKeySpec;
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.InvalidKeySpecException;
/**
* RSAPrivateKey.
*
* @author Christian Plattner, [email protected]
* @version $Id: RSAPrivateKey.java,v 1.1 2007/10/15 12:49:57 cplattne Exp $
*/
public class RSAPrivateKey
{
private BigInteger d;
private BigInteger e;
private BigInteger n;
public RSAPrivateKey(BigInteger d, BigInteger e, BigInteger n)
{
this.d = d;
this.e = e;
this.n = n;
}
public BigInteger getD()
{
return d;
}
public BigInteger getE()
{
return e;
}
public BigInteger getN()
{
return n;
}
public RSAPublicKey getPublicKey()
{
return new RSAPublicKey(e, n);
}
/**
* Converts this to a JCE API representation of the RSA key pair.
*/
public KeyPair toJCEKeyPair() throws GeneralSecurityException {
KeyFactory kf = KeyFactory.getInstance("RSA");
return new KeyPair(
kf.generatePublic(new RSAPublicKeySpec(getN(), getE())),
kf.generatePrivate(new RSAPrivateKeySpec(getN(), getD())));
}
}