public RSAMultiPrimePrivateCrtKeySpec(BigInteger modulus,
BigInteger publicExponent,
BigInteger privateExponent,
BigInteger primeP,
BigInteger primeQ,
BigInteger primeExponentP,
BigInteger primeExponentQ,
BigInteger crtCoefficient,
RSAOtherPrimeInfo[] otherPrimeInfo) {
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 = otherPrimeInfo.clone();
}
}
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. Parameters:
modulus - the modulus n.
publicExponent - the public exponent e.
privateExponent - the private exponent d.
primeP - the prime factor p of n.
primeQ - the prime factor q of n.
primeExponentP - this is d mod (p-1).
primeExponentQ - this is d mod (q-1).
crtCoefficient - the Chinese Remainder Theorem
coefficient q-1 mod p.
otherPrimeInfo - triplets of the rest of primes, null can be
specified if there are only two prime factors (p and q).
Throws:
NullPointerException - if any of the parameters, i.e.
modulus,
publicExponent, privateExponent,
primeP, primeQ,
primeExponentP, primeExponentQ,
crtCoefficient, is null.
IllegalArgumentException - if an empty, i.e. 0-length,
otherPrimeInfo is specified.
- exception:
NullPointerException - if any of the parameters, i.e.
modulus,
publicExponent, privateExponent,
primeP, primeQ,
primeExponentP, primeExponentQ,
crtCoefficient, is null.
- exception:
IllegalArgumentException - if an empty, i.e. 0-length,
otherPrimeInfo is specified.
|