All Downloads are FREE. Search and download functionalities are using the official Maven repository.

java.security.spec.RSAPrivateCrtKeySpec Maven / Gradle / Ivy

/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package java.security.spec;

import java.math.BigInteger;

/**
 * The key specification of a RSA private key using Chinese Remainder Theorem
 * (CRT) values.
 * 

* Defined in the PKCS #1 v2.1 * standard. */ public class RSAPrivateCrtKeySpec extends RSAPrivateKeySpec { // Public Exponent private final BigInteger publicExponent; // Prime P private final BigInteger primeP; // Prime Q private final BigInteger primeQ; // Prime Exponent P private final BigInteger primeExponentP; // Prime Exponent Q private final BigInteger primeExponentQ; // CRT Coefficient private final BigInteger crtCoefficient; /** * Creates a new {@code RSAMultiPrimePrivateCrtKeySpec} with the specified * modulus, public exponent, private exponent, prime factors, prime * exponents, crt coefficient, and additional primes. * * @param modulus * the modulus {@code n}. * @param publicExponent * the public exponent {@code e}. * @param privateExponent * the private exponent {@code d}. * @param primeP * the prime factor {@code p} of {@code n}. * @param primeQ * the prime factor {@code q} of {@code n}. * @param primeExponentP * the exponent of the prime {@code p}. * @param primeExponentQ * the exponent of the prime {@code q}. * @param crtCoefficient * the CRT coefficient {@code q^-1 mod p}. */ public RSAPrivateCrtKeySpec(BigInteger modulus, BigInteger publicExponent, BigInteger privateExponent, BigInteger primeP, BigInteger primeQ, BigInteger primeExponentP, BigInteger primeExponentQ, BigInteger crtCoefficient) { super(modulus, privateExponent); this.publicExponent = publicExponent; this.primeP = primeP; this.primeQ = primeQ; this.primeExponentP = primeExponentP; this.primeExponentQ = primeExponentQ; this.crtCoefficient = crtCoefficient; } /** * Returns the CRT coefficient, {@code q^-1 mod p}. * * @return the CRT coefficient, {@code q^-1 mod p}. */ public BigInteger getCrtCoefficient() { return crtCoefficient; } /** * Returns the exponent of the prime {@code p}. * * @return the exponent of the prime {@code p}. */ public BigInteger getPrimeExponentP() { return primeExponentP; } /** * Returns the exponent of the prime {@code q}. * * @return the exponent of the prime {@code q}. */ public BigInteger getPrimeExponentQ() { return primeExponentQ; } /** * Returns the prime factor {@code p}. * * @return the prime factor {@code p}. */ public BigInteger getPrimeP() { return primeP; } /** * Returns the prime factor {@code q}. * * @return the prime factor {@code q}. */ public BigInteger getPrimeQ() { return primeQ; } /** * Returns the public exponent {@code e}. * * @return the public exponent {@code e}. */ public BigInteger getPublicExponent() { return publicExponent; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy