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

# PrivateKeyEntry

```
class PrivateKeyEntry : KeyStore.Entry
```

|---|---|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||
| ↳ | [java.security.KeyStore.PrivateKeyEntry](https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#) |

A `KeyStore` entry that holds a `PrivateKey` and corresponding certificate chain.

## Summary

| Public constructors ||
|---|---|
| `https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#PrivateKeyEntry(java.security.PrivateKey,%20kotlin.Array)(privateKey: https://developer.android.com/reference/kotlin/java/security/PrivateKey!, chain: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/java/security/cert/Certificate!>!)` Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain. |
| `https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#PrivateKeyEntry(java.security.PrivateKey,%20kotlin.Array,%20kotlin.collections.MutableSet)(privateKey: https://developer.android.com/reference/kotlin/java/security/PrivateKey!, chain: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/java/security/cert/Certificate!>!, attributes: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html<https://developer.android.com/reference/kotlin/java/security/KeyStore.Entry.Attribute!>!)` Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain and associated entry attributes. |

| Public methods ||
|---|---|
| [MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[KeyStore.Entry.Attribute](https://developer.android.com/reference/kotlin/java/security/KeyStore.Entry.Attribute)!\>! | `https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#getAttributes()()` Retrieves the attributes associated with an entry. |
| [Certificate](https://developer.android.com/reference/kotlin/java/security/cert/Certificate)! | `https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#getCertificate()()` Gets the end entity `Certificate` from the certificate chain in this entry. |
| [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)\<[Certificate](https://developer.android.com/reference/kotlin/java/security/cert/Certificate)!\>! | `https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#getCertificateChain()()` Gets the `Certificate` chain from this entry. |
| [PrivateKey](https://developer.android.com/reference/kotlin/java/security/PrivateKey)! | `https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#getPrivateKey()()` Gets the `PrivateKey` from this entry. |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | `https://developer.android.com/reference/kotlin/java/security/KeyStore.PrivateKeyEntry#toString()()` Returns a string representation of this PrivateKeyEntry. |

## Public constructors

### PrivateKeyEntry

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

```
PrivateKeyEntry(
    privateKey: PrivateKey!, 
    chain: Array<Certificate!>!)
```

Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain.

The specified `chain` is cloned before it is stored in the new `PrivateKeyEntry` object.

| Parameters ||
|---|---|
| `privateKey` | [PrivateKey](https://developer.android.com/reference/kotlin/java/security/PrivateKey)!: the `PrivateKey` |
| `chain` | [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)\<[Certificate](https://developer.android.com/reference/kotlin/java/security/cert/Certificate)!\>!: an array of `Certificate`s representing the certificate chain. The chain must be ordered and contain a `Certificate` at index 0 corresponding to the private key. |

| Exceptions ||
|---|---|
| `java.lang.IllegalArgumentException` | if the specified chain has a length of 0, if the specified chain does not contain `Certificate`s of the same type, or if the `PrivateKey` algorithm does not match the algorithm of the `PublicKey` in the end entity `Certificate` (at index 0) |
| `java.lang.NullPointerException` | if `privateKey` or `chain` is `null` |

### PrivateKeyEntry

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

```
PrivateKeyEntry(
    privateKey: PrivateKey!, 
    chain: Array<Certificate!>!, 
    attributes: MutableSet<KeyStore.Entry.Attribute!>!)
```

Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain and associated entry attributes.

The specified `chain` and `attributes` are cloned before they are stored in the new `PrivateKeyEntry` object.

| Parameters ||
|---|---|
| `privateKey` | [PrivateKey](https://developer.android.com/reference/kotlin/java/security/PrivateKey)!: the `PrivateKey` |
| `chain` | [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)\<[Certificate](https://developer.android.com/reference/kotlin/java/security/cert/Certificate)!\>!: an array of `Certificate`s representing the certificate chain. The chain must be ordered and contain a `Certificate` at index 0 corresponding to the private key. |
| `attributes` | [MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[KeyStore.Entry.Attribute](https://developer.android.com/reference/kotlin/java/security/KeyStore.Entry.Attribute)!\>!: the attributes |

| Exceptions ||
|---|---|
| `java.lang.IllegalArgumentException` | if the specified chain has a length of 0, if the specified chain does not contain `Certificate`s of the same type, or if the `PrivateKey` algorithm does not match the algorithm of the `PublicKey` in the end entity `Certificate` (at index 0) |
| `java.lang.NullPointerException` | if `privateKey`, `chain` or `attributes` is `null` |

## Public methods

### getAttributes

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

```
fun getAttributes(): MutableSet<KeyStore.Entry.Attribute!>!
```

Retrieves the attributes associated with an entry.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html<https://developer.android.com/reference/kotlin/java/security/KeyStore.Entry.Attribute!>!` | an unmodifiable `Set` of attributes, possibly empty |

### getCertificate

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

```
fun getCertificate(): Certificate!
```

Gets the end entity `Certificate` from the certificate chain in this entry.

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/java/security/cert/Certificate!` | the end entity `Certificate` (at index 0) from the certificate chain in this entry. If the certificate is of type X.509, the runtime type of the returned certificate is `X509Certificate`. |

### getCertificateChain

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

```
fun getCertificateChain(): Array<Certificate!>!
```

Gets the `Certificate` chain from this entry.

The stored chain is cloned before being returned.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html<https://developer.android.com/reference/kotlin/java/security/cert/Certificate!>!` | an array of `Certificate`s corresponding to the certificate chain for the public key. If the certificates are of type X.509, the runtime type of the returned array is `X509Certificate[]`. |

### getPrivateKey

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

```
fun getPrivateKey(): PrivateKey!
```

Gets the `PrivateKey` from this entry.

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/java/security/PrivateKey!` | the `PrivateKey` from this entry |

### toString

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

```
fun toString(): String
```

Returns a string representation of this PrivateKeyEntry.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | a string representation of this PrivateKeyEntry. |