# IdentityKey

Artifact: [androidx.credentials:credentials-e2ee](https://developer.android.com/jetpack/androidx/releases/credentials) [View Source](https://cs.android.com/search?q=file:androidx/credentials/e2ee/IdentityKey.kt+class:androidx.credentials.e2ee.IdentityKey) Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03) Deprecated in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03)

*** ** * ** ***


```
public final class IdentityKey
```

<br />

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
> This API is deprecated and will be removed in a future release.

A public-private key pair usable for signing, representing an end user identity in an end-to-end encrypted messaging system.

This API is deprecated and will be removed in a future release.

## Summary

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#IDENTITY_KEY_TYPE_ED25519() = 6` **This field is deprecated.** This API is deprecated and will be removed in a future release. |
| `static final int` | `https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#IDENTITY_KEY_TYPE_RESERVED() = 0` **This field is deprecated.** This API is deprecated and will be removed in a future release. |

| ### Public methods |
|---|---|
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey` | `@https://developer.android.com/reference/androidx/annotation/WorkerThread [createFromPrf](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#createFromPrf(kotlin.ByteArray,kotlin.ByteArray,kotlin.Int))(@https://developer.android.com/reference/androidx/annotation/NonNull byte[] prf, byte[] salt, int keyType)` **This method is deprecated.** This API is deprecated and will be removed in a future release. |
| `boolean` | `[equals](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#equals(kotlin.Any))(https://developer.android.com/reference/java/lang/Object.html other)` **This method is deprecated.** This API is deprecated and will be removed in a future release. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull byte[]` | `[getPrivate](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#getPrivate())()` **This method is deprecated.** This API is deprecated and will be removed in a future release. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull byte[]` | `[getPublic](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#getPublic())()` **This method is deprecated.** This API is deprecated and will be removed in a future release. |
| `final int` | `[getType](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#getType())()` **This method is deprecated.** This API is deprecated and will be removed in a future release. |
| `int` | `[hashCode](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#hashCode())()` **This method is deprecated.** This API is deprecated and will be removed in a future release. |

## Constants

### IDENTITY_KEY_TYPE_ED25519

```
public static final int IDENTITY_KEY_TYPE_ED25519 = 6
```

> [!CAUTION]
> **This field is deprecated.**   
> This API is deprecated and will be removed in a future release.

A signing key on Ed25519. The value matches https://www.iana.org/assignments/cose/cose.xhtml#algorithms

### IDENTITY_KEY_TYPE_RESERVED

```
public static final int IDENTITY_KEY_TYPE_RESERVED = 0
```

> [!CAUTION]
> **This field is deprecated.**   
> This API is deprecated and will be removed in a future release.

The default signing key type, which should not be used. This is required to match https://www.iana.org/assignments/cose/cose.xhtml#algorithms

## Public methods

### createFromPrf

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03) Deprecated in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03)

```
@WorkerThread
public static final @NonNull IdentityKey [createFromPrf](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#createFromPrf(kotlin.ByteArray,kotlin.ByteArray,kotlin.Int))(@NonNull byte[] prf, byte[] salt, int keyType)
```

> [!CAUTION]
> **This method is deprecated.**   
> This API is deprecated and will be removed in a future release.

Creates a `https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey`, a public/private key pair usable for signing. It is intended for use with the WebAuthn PRF extension (https://w3c.github.io/webauthn/#prf-extension). The generated IdentityKey is deterministic given prf and salt, thus the prf value must be kept secret. Currently, only Ed25519 is supported as a key type.

This API is deprecated and will be removed in a future release.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull byte[] prf` | The PRF output of WebAuthn used in the key derivation. |
| `byte[] salt` | An optional salt used in the key derivation. |
| `int keyType` | The type of IdentityKey to generate, e.g. Ed25519. Value is one of the following: - `0` - `6` <br /> |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey` | a `https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey`, a public/private key pair usable for signing. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if the key type is not supported. |

### equals

```
public boolean [equals](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#equals(kotlin.Any))(Object other)
```

> [!CAUTION]
> **This method is deprecated.**   
> This API is deprecated and will be removed in a future release.

### getPrivate

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03) Deprecated in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03)

```
public final @NonNull byte[] [getPrivate](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#getPrivate())()
```

> [!CAUTION]
> **This method is deprecated.**   
> This API is deprecated and will be removed in a future release.

The private key, stored as a byte array.

### getPublic

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03) Deprecated in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03)

```
public final @NonNull byte[] [getPublic](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#getPublic())()
```

> [!CAUTION]
> **This method is deprecated.**   
> This API is deprecated and will be removed in a future release.

The public key, stored as a byte array.

### getType

Added in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03) Deprecated in [1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/credentials#1.0.0-alpha03)

```
public final int [getType](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#getType())()
```

> [!CAUTION]
> **This method is deprecated.**   
> This API is deprecated and will be removed in a future release.

The type of signing key, e.g. Ed25519.

### hashCode

```
public int [hashCode](https://developer.android.com/reference/androidx/credentials/e2ee/IdentityKey#hashCode())()
```

> [!CAUTION]
> **This method is deprecated.**   
> This API is deprecated and will be removed in a future release.