# X509EncodedKeySpec

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/X509EncodedKeySpec#pubctors)\|[Methods](https://developer.android.com/reference/java/security/spec/X509EncodedKeySpec#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/java/security/spec/X509EncodedKeySpec#inhmethods)  

# X509EncodedKeySpec

`
public


class
X509EncodedKeySpec
`  
`


``

extends `[EncodedKeySpec](https://developer.android.com/reference/java/security/spec/EncodedKeySpec)`


``


`

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

<br />

*** ** * ** ***

This class represents the ASN.1 encoding of a public key, encoded according to the ASN.1 type`SubjectPublicKeyInfo`. The`SubjectPublicKeyInfo`syntax is defined in the X.509 standard as follows:  

```
 SubjectPublicKeyInfo ::= SEQUENCE {
   algorithm AlgorithmIdentifier,
   subjectPublicKey BIT STRING }
 
```

<br />

**See also:**

- [Key](https://developer.android.com/reference/java/security/Key)
- [KeyFactory](https://developer.android.com/reference/java/security/KeyFactory)
- [KeySpec](https://developer.android.com/reference/java/security/spec/KeySpec)
- [EncodedKeySpec](https://developer.android.com/reference/java/security/spec/EncodedKeySpec)
- [PKCS8EncodedKeySpec](https://developer.android.com/reference/java/security/spec/PKCS8EncodedKeySpec)

## Summary

|                                                                                                                                                   ### Public constructors                                                                                                                                                   ||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[X509EncodedKeySpec](https://developer.android.com/reference/java/security/spec/X509EncodedKeySpec#X509EncodedKeySpec(byte[]))`(byte[] encodedKey) ` Creates a new`X509EncodedKeySpec`with the given encoded key.                                                                                                     |
| ` `[X509EncodedKeySpec](https://developer.android.com/reference/java/security/spec/X509EncodedKeySpec#X509EncodedKeySpec(byte[],%20java.lang.String))`(byte[] encodedKey, `[String](https://developer.android.com/reference/java/lang/String)` algorithm) ` Creates a new`X509EncodedKeySpec`with the given encoded key. |

|                                                                                                                             ### Public methods                                                                                                                              ||
|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` byte[]`                                                                   | ` `[getEncoded](https://developer.android.com/reference/java/security/spec/X509EncodedKeySpec#getEncoded())`() ` Returns the key bytes, encoded according to the X.509 standard.               |
| ` final `[String](https://developer.android.com/reference/java/lang/String) | ` `[getFormat](https://developer.android.com/reference/java/security/spec/X509EncodedKeySpec#getFormat())`() ` Returns the name of the encoding format associated with this key specification. |

| ### Inherited methods |
|-----------------------|---|
| From class` `[java.security.spec.EncodedKeySpec](https://developer.android.com/reference/java/security/spec/EncodedKeySpec)` ` |--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[getAlgorithm](https://developer.android.com/reference/java/security/spec/EncodedKeySpec#getAlgorithm())`() ` Returns the name of the algorithm of the encoded key.                     | | ` byte[]`                                                                      | ` `[getEncoded](https://developer.android.com/reference/java/security/spec/EncodedKeySpec#getEncoded())`() ` Returns the encoded key.                                                      | | ` abstract `[String](https://developer.android.com/reference/java/lang/String) | ` `[getFormat](https://developer.android.com/reference/java/security/spec/EncodedKeySpec#getFormat())`() ` Returns the name of the encoding format associated with this key specification. | ||
| From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object)` ` |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object)          | ` `[clone](https://developer.android.com/reference/java/lang/Object#clone())`() ` Creates and returns a copy of this object.                                                                                                                                                      | | ` boolean`                                                                     | ` `[equals](https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` obj) ` Indicates whether some other object is "equal to" this one.                                           | | ` void`                                                                        | ` `[finalize](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 `[Class](https://developer.android.com/reference/java/lang/Class)`<?>` | ` `[getClass](https://developer.android.com/reference/java/lang/Object#getClass())`() ` Returns the runtime class of this`Object`.                                                                                                                                                | | ` int`                                                                         | ` `[hashCode](https://developer.android.com/reference/java/lang/Object#hashCode())`() ` Returns a hash code value for the object.                                                                                                                                                 | | ` final void`                                                                  | ` `[notify](https://developer.android.com/reference/java/lang/Object#notify())`() ` Wakes up a single thread that is waiting on this object's monitor.                                                                                                                            | | ` final void`                                                                  | ` `[notifyAll](https://developer.android.com/reference/java/lang/Object#notifyAll())`() ` Wakes up all threads that are waiting on this object's monitor.                                                                                                                         | | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[toString](https://developer.android.com/reference/java/lang/Object#toString())`() ` Returns a string representation of the object.                                                                                                                                            | | ` final void`                                                                  | ` `[wait](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`                                                                  | ` `[wait](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`                                                                  | ` `[wait](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

### X509EncodedKeySpec

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

```
public X509EncodedKeySpec (byte[] encodedKey)
```

Creates a new`X509EncodedKeySpec`with the given encoded key.

<br />

|                                                                                       Parameters                                                                                       ||
|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `encodedKey` | `byte`: the key, which is assumed to be encoded according to the X.509 standard. The contents of the array are copied to protect against subsequent modification. <br /> |

|                                                         Throws                                                         ||
|------------------------------------------------------------------------------------------------|------------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException) | if`encodedKey`is null. |

### X509EncodedKeySpec

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

```
public X509EncodedKeySpec (byte[] encodedKey, 
                String algorithm)
```

Creates a new`X509EncodedKeySpec`with the given encoded key. This constructor is useful when subsequent callers of the`X509EncodedKeySpec`object might not know the algorithm of the key.

<br />

|                                                                                                                                                         Parameters                                                                                                                                                          ||
|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `encodedKey` | `byte`: the key, which is assumed to be encoded according to the X.509 standard. The contents of the array are copied to protect against subsequent modification. <br />                                                                                                                                      |
| `algorithm`  | `String`: the algorithm name of the encoded public key See the KeyFactory section in the[Java Security Standard Algorithm Names Specification](https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html#keyfactory-algorithms)for information about standard algorithm names. <br /> |

|                                                                    Throws                                                                    ||
|--------------------------------------------------------------------------------------------------------|--------------------------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)         | if`encodedKey`or`algorithm`is null.  |
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if`algorithm`is the empty string`""` |

## Public methods

### getEncoded

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

```
public byte[] getEncoded ()
```

Returns the key bytes, encoded according to the X.509 standard.

<br />

|                                               Returns                                                ||
|----------|--------------------------------------------------------------------------------------------|
| `byte[]` | the X.509 encoding of the key. Returns a new array each time this method is called. <br /> |

### getFormat

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

```
public final String getFormat ()
```

Returns the name of the encoding format associated with this key specification.

<br />

|                                             Returns                                             ||
|--------------------------------------------------------------------|-----------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | the string`"X.509"`. <br /> |