RSAMultiPrimePrivateCrtKeySpecpublic class RSAMultiPrimePrivateCrtKeySpec extends RSAPrivateKeySpec This class specifies an RSA multi-prime private key, as defined in the
PKCS#1 v2.1, using the Chinese Remainder Theorem (CRT) information
values for efficiency. |
Fields Summary |
---|
private final BigInteger | publicExponent | private final BigInteger | primeP | private final BigInteger | primeQ | private final BigInteger | primeExponentP | private final BigInteger | primeExponentQ | private final BigInteger | crtCoefficient | private final RSAOtherPrimeInfo[] | otherPrimeInfo |
Constructors Summary |
---|
public RSAMultiPrimePrivateCrtKeySpec(BigInteger modulus, BigInteger publicExponent, BigInteger privateExponent, BigInteger primeP, BigInteger primeQ, BigInteger primeExponentP, BigInteger primeExponentQ, BigInteger crtCoefficient, RSAOtherPrimeInfo[] otherPrimeInfo)Creates a new RSAMultiPrimePrivateCrtKeySpec
given the modulus, publicExponent, privateExponent,
primeP, primeQ, primeExponentP, primeExponentQ,
crtCoefficient, and otherPrimeInfo as defined in PKCS#1 v2.1.
Note that the contents of otherPrimeInfo
are copied to protect against subsequent modification when
constructing this object.
super(modulus, privateExponent);
if (modulus == null) {
throw new NullPointerException("the modulus parameter must be " +
"non-null");
}
if (publicExponent == null) {
throw new NullPointerException("the publicExponent parameter " +
"must be non-null");
}
if (privateExponent == null) {
throw new NullPointerException("the privateExponent parameter " +
"must be non-null");
}
if (primeP == null) {
throw new NullPointerException("the primeP parameter " +
"must be non-null");
}
if (primeQ == null) {
throw new NullPointerException("the primeQ parameter " +
"must be non-null");
}
if (primeExponentP == null) {
throw new NullPointerException("the primeExponentP parameter " +
"must be non-null");
}
if (primeExponentQ == null) {
throw new NullPointerException("the primeExponentQ parameter " +
"must be non-null");
}
if (crtCoefficient == null) {
throw new NullPointerException("the crtCoefficient parameter " +
"must be non-null");
}
this.publicExponent = publicExponent;
this.primeP = primeP;
this.primeQ = primeQ;
this.primeExponentP = primeExponentP;
this.primeExponentQ = primeExponentQ;
this.crtCoefficient = crtCoefficient;
if (otherPrimeInfo == null) {
this.otherPrimeInfo = null;
} else if (otherPrimeInfo.length == 0) {
throw new IllegalArgumentException("the otherPrimeInfo " +
"parameter must not be empty");
} else {
this.otherPrimeInfo = (RSAOtherPrimeInfo[])otherPrimeInfo.clone();
}
|
Methods Summary |
---|
public java.math.BigInteger | getCrtCoefficient()Returns the crtCoefficient.
return this.crtCoefficient;
| public java.security.spec.RSAOtherPrimeInfo[] | getOtherPrimeInfo()Returns a copy of the otherPrimeInfo or null if there are
only two prime factors (p and q).
if (otherPrimeInfo == null) return null;
return (RSAOtherPrimeInfo[]) otherPrimeInfo.clone();
| public java.math.BigInteger | getPrimeExponentP()Returns the primeExponentP.
return this.primeExponentP;
| public java.math.BigInteger | getPrimeExponentQ()Returns the primeExponentQ.
return this.primeExponentQ;
| public java.math.BigInteger | getPrimeP()Returns the primeP.
return this.primeP;
| public java.math.BigInteger | getPrimeQ()Returns the primeQ.
return this.primeQ;
| public java.math.BigInteger | getPublicExponent()Returns the public exponent.
return this.publicExponent;
|
|