public class PKCS8EncodedKeySpec
extends EncodedKeySpec



This class represents the ASN.1 encoding of a private key, encoded according to the ASN.1 type PrivateKeyInfo. The PrivateKeyInfo syntax is defined in the PKCS#8 standard as follows:

 PrivateKeyInfo ::= SEQUENCE {
   version Version,
   privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
   privateKey PrivateKey,
   attributes [0] IMPLICIT Attributes OPTIONAL }

 Version ::= INTEGER

 PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier

 PrivateKey ::= OCTET STRING

 Attributes ::= SET OF Attribute
 

Summary

Public constructors

PKCS8EncodedKeySpec(byte[] encodedKey)

Creates a new PKCS8EncodedKeySpec with the given encoded key.

PKCS8EncodedKeySpec(byte[] encodedKey, String algorithm)

Creates a new PKCS8EncodedKeySpec with the given encoded key and algorithm.

Public methods

byte[] getEncoded()

Returns the key bytes, encoded according to the PKCS #8 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

PKCS8EncodedKeySpec

public PKCS8EncodedKeySpec (byte[] encodedKey)

Creates a new PKCS8EncodedKeySpec with the given encoded key.

Parameters
encodedKey byte: the key, which is assumed to be encoded according to the PKCS #8 standard. The contents of the array are copied to protect against subsequent modification.
Throws
NullPointerException if encodedKey is null.

PKCS8EncodedKeySpec

public PKCS8EncodedKeySpec (byte[] encodedKey, 
                String algorithm)

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

Parameters
encodedKey byte: the key, which is assumed to be encoded according to the PKCS #8 standard. The contents of the array are copied to protect against subsequent modification.
algorithm String: the algorithm name of the encoded private 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 PKCS #8 standard.

Returns
byte[] the PKCS #8 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 "PKCS#8".

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.