Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#pubctors) \| [Methods](https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#inhmethods)

# RSAPrivateCrtKeySpec

` public class RSAPrivateCrtKeySpec `   
` ` ` extends https://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec ` ` `

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [java.security.spec.RSAPrivateKeySpec](https://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec) ||
|   | ↳ | java.security.spec.RSAPrivateCrtKeySpec |

<br />

*** ** * ** ***

This class specifies an RSA private key, as defined in the [PKCS#1 v2.2](https://tools.ietf.org/rfc/rfc8017.txt) standard, using the Chinese Remainder Theorem (CRT) information values for efficiency.
**See also:**

- `https://developer.android.com/reference/java/security/Key`
- `https://developer.android.com/reference/java/security/KeyFactory`
- `https://developer.android.com/reference/java/security/spec/KeySpec`
- `https://developer.android.com/reference/java/security/spec/PKCS8EncodedKeySpec`
- `https://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec`
- `https://developer.android.com/reference/java/security/spec/RSAPublicKeySpec`

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#RSAPrivateCrtKeySpec(java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger)(https://developer.android.com/reference/java/math/BigInteger modulus, https://developer.android.com/reference/java/math/BigInteger publicExponent, https://developer.android.com/reference/java/math/BigInteger privateExponent, https://developer.android.com/reference/java/math/BigInteger primeP, https://developer.android.com/reference/java/math/BigInteger primeQ, https://developer.android.com/reference/java/math/BigInteger primeExponentP, https://developer.android.com/reference/java/math/BigInteger primeExponentQ, https://developer.android.com/reference/java/math/BigInteger crtCoefficient) ` Creates a new `RSAPrivateCrtKeySpec`. |
| ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#RSAPrivateCrtKeySpec(java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.math.BigInteger,%20java.security.spec.AlgorithmParameterSpec)(https://developer.android.com/reference/java/math/BigInteger modulus, https://developer.android.com/reference/java/math/BigInteger publicExponent, https://developer.android.com/reference/java/math/BigInteger privateExponent, https://developer.android.com/reference/java/math/BigInteger primeP, https://developer.android.com/reference/java/math/BigInteger primeQ, https://developer.android.com/reference/java/math/BigInteger primeExponentP, https://developer.android.com/reference/java/math/BigInteger primeExponentQ, https://developer.android.com/reference/java/math/BigInteger crtCoefficient, https://developer.android.com/reference/java/security/spec/AlgorithmParameterSpec keyParams) ` Creates a new `RSAPrivateCrtKeySpec` with additional key parameters. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#getCrtCoefficient()() ` Returns the crtCoefficient. |
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#getPrimeExponentP()() ` Returns the primeExponentP. |
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#getPrimeExponentQ()() ` Returns the primeExponentQ. |
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#getPrimeP()() ` Returns the primeP. |
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#getPrimeQ()() ` Returns the primeQ. |
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/java/security/spec/RSAPrivateCrtKeySpec#getPublicExponent()() ` Returns the public exponent. |

### Inherited methods

From class ` https://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec ` ` https://developer.android.com/reference/java/math/BigInteger` ` https://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec#getModulus()() `

Returns the modulus.
` https://developer.android.com/reference/java/security/spec/AlgorithmParameterSpec` ` https://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec#getParams()() `

Returns the parameters associated with this key, may be null if not present.
` https://developer.android.com/reference/java/math/BigInteger` ` https://developer.android.com/reference/java/security/spec/RSAPrivateKeySpec#getPrivateExponent()() `

Returns the private exponent.
From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public constructors

### RSAPrivateCrtKeySpec

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RSAPrivateCrtKeySpec (BigInteger modulus, 
                BigInteger publicExponent, 
                BigInteger privateExponent, 
                BigInteger primeP, 
                BigInteger primeQ, 
                BigInteger primeExponentP, 
                BigInteger primeExponentQ, 
                BigInteger crtCoefficient)
```

Creates a new `RSAPrivateCrtKeySpec`.

<br />

| Parameters ||
|---|---|
| `modulus` | `BigInteger`: the modulus n <br /> |
| `publicExponent` | `BigInteger`: the public exponent e <br /> |
| `privateExponent` | `BigInteger`: the private exponent d <br /> |
| `primeP` | `BigInteger`: the prime factor p of n <br /> |
| `primeQ` | `BigInteger`: the prime factor q of n <br /> |
| `primeExponentP` | `BigInteger`: this is d mod (p-1) <br /> |
| `primeExponentQ` | `BigInteger`: this is d mod (q-1) <br /> |
| `crtCoefficient` | `BigInteger`: the Chinese Remainder Theorem coefficient q-1 mod p <br /> |

### RSAPrivateCrtKeySpec

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public RSAPrivateCrtKeySpec (BigInteger modulus, 
                BigInteger publicExponent, 
                BigInteger privateExponent, 
                BigInteger primeP, 
                BigInteger primeQ, 
                BigInteger primeExponentP, 
                BigInteger primeExponentQ, 
                BigInteger crtCoefficient, 
                AlgorithmParameterSpec keyParams)
```

Creates a new `RSAPrivateCrtKeySpec` with additional key parameters.

<br />

| Parameters ||
|---|---|
| `modulus` | `BigInteger`: the modulus n <br /> |
| `publicExponent` | `BigInteger`: the public exponent e <br /> |
| `privateExponent` | `BigInteger`: the private exponent d <br /> |
| `primeP` | `BigInteger`: the prime factor p of n <br /> |
| `primeQ` | `BigInteger`: the prime factor q of n <br /> |
| `primeExponentP` | `BigInteger`: this is d mod (p-1) <br /> |
| `primeExponentQ` | `BigInteger`: this is d mod (q-1) <br /> |
| `crtCoefficient` | `BigInteger`: the Chinese Remainder Theorem coefficient q-1 mod p <br /> |
| `keyParams` | `AlgorithmParameterSpec`: the parameters associated with key <br /> |

## Public methods

### getCrtCoefficient

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getCrtCoefficient ()
```

Returns the crtCoefficient.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the crtCoefficient <br /> |

### getPrimeExponentP

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getPrimeExponentP ()
```

Returns the primeExponentP.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the primeExponentP <br /> |

### getPrimeExponentQ

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getPrimeExponentQ ()
```

Returns the primeExponentQ.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the primeExponentQ <br /> |

### getPrimeP

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getPrimeP ()
```

Returns the primeP.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the primeP <br /> |

### getPrimeQ

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getPrimeQ ()
```

Returns the primeQ.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the primeQ <br /> |

### getPublicExponent

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getPublicExponent ()
```

Returns the public exponent.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the public exponent <br /> |