public class X509EncodedKeySpec
extends EncodedKeySpec



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 }
 

Summary

Public constructors

X509EncodedKeySpec(byte[] encodedKey)

Creates a new X509EncodedKeySpec with the given encoded key.

X509EncodedKeySpec(byte[] encodedKey, String algorithm)

Creates a new X509EncodedKeySpec with the given encoded key.

Public methods

byte[] getEncoded()

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

final String getFormat()

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

Inherited methods

From class java.security.spec.EncodedKeySpec

String getAlgorithm()

Returns the name of the algorithm of the encoded key.

byte[] getEncoded()

Returns the encoded key.

abstract String getFormat()

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

From class java.lang.Object

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(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(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()

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

Public constructors

X509EncodedKeySpec

public X509EncodedKeySpec (byte[] encodedKey)

Creates a new X509EncodedKeySpec with the given encoded key.

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.
Throws
NullPointerException if encodedKey is null.

X509EncodedKeySpec

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.

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.
algorithm String: the algorithm name of the encoded public key See the KeyFactory section in the Java Security Standard Algorithm Names Specification for information about standard algorithm names.
Throws
IllegalArgumentException if algorithm is the empty string ""
NullPointerException if encodedKey or algorithm is null.

Public methods

getEncoded

public byte[] getEncoded ()

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

Returns
byte[] the X.509 encoding of the key. Returns a new array each time this method is called.

getFormat

public final String getFormat ()

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

Returns
String the string "X.509".

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2026-02-13 UTC.