Spec-Zone.ru › OpenJDK 27

Class PEM

java.lang.Object
java.security.PEM
All Implemented Interfaces:
BinaryEncodablePREVIEW
public final class PEM extends Object implements BinaryEncodablePREVIEW
PEM is a preview API of the Java platform.
Programs can only use PEM when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
A BinaryEncodablePREVIEW representing a Privacy-Enhanced Mail (PEM) structure composed of a type identifier, Base64-encoded content, and optional leading data that precedes the PEM header.

The type is the label in the PEM header, following the BEGIN keyword and excluding the encapsulation boundaries. Common type values include, but are not limited to: CERTIFICATE, CERTIFICATE REQUEST, ATTRIBUTE CERTIFICATE, X509 CRL, PKCS7, CMS, PRIVATE KEY, ENCRYPTED PRIVATE KEY, and PUBLIC KEY.

Instances of this class are returned by PEMDecoder.decode(String)PREVIEW and PEMDecoder.decode(InputStream)PREVIEW when the content cannot be represented as a cryptographic object. To explicitly retrieve a PEM instance with access to the leading data, use PEMDecoder.decode(String, Class)PREVIEW or PEMDecoder.decode(InputStream, Class)PREVIEW with PEM.class as the type.

A PEM object can be encoded to its textual representation by invoking toString() or by using PEMEncoderPREVIEW.

To construct a PEM instance, type and base64Content must be non-null. For constructors that accept leadingData, it must also be non-null.

No validation is performed to ensure that the type conforms to RFC 7468 or legacy formats, or that the content corresponds to the declared type.

Since:
26
External Specifications
  • RFC 7468: Textual Encodings of PKIX, PKCS, and CMS Structures
See Also:
  • PEMDecoderPREVIEW
  • PEMEncoderPREVIEW

Constructor Summary

Constructor Description
PEM(String type, byte[] base64Content)
Creates a PEM instance with the specified type and Base64-encoded content byte array.
PEM(String type, byte[] base64Content, byte[] leadingData)
Creates a PEM instance with the specified type and Base64-encoded content and leading data as byte arrays.
PEM(String type, String base64Content)
Creates a PEM instance with the specified type and Base64-encoded content string.
PEM(String type, String base64Content, byte[] leadingData)
Creates a PEM instance with the specified type, Base64-encoded content string, and leading data byte array.

Method Summary

Modifier and Type Method Description
byte[] content()
Returns the Base64-encoded content.
byte[] decode()
Returns the Base64-decoded content as a byte array, using Base64.getMimeDecoder().
byte[] leadingData()
Returns the leading data that preceded the PEM header in the decoded input.
String toString()
Returns a PEM string representation of this object, using type for the header and footer lines and content for the Base64 body.
String type()
Returns the PEM type identifier.

Methods declared in class Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Modifier and Type Method Description
protected Object clone()
Creates and returns a copy of this object.
boolean equals(Object obj)
Indicates whether some other object is "equal to" this one.
protected void finalize()
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
final Class<?> getClass()
Returns the runtime class of this Object.
int hashCode()
Returns a hash code value for this 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.
final void wait()
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
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(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.

Constructor Details

PEM

public PEM(String type, String base64Content, byte[] leadingData)
Creates a PEM instance with the specified type, Base64-encoded content string, and leading data byte array.
Parameters:
type - the PEM type identifier; must not contain PEM encapsulation syntax
base64Content - the Base64-encoded content, excluding the PEM header and footer
leadingData - data that precedes the PEM header. This array is defensively copied.
Throws:
IllegalArgumentException - if type contains PEM encapsulation syntax
NullPointerException - if any parameter is null

PEM

public PEM(String type, String base64Content)
Creates a PEM instance with the specified type and Base64-encoded content string.
Parameters:
type - the PEM type identifier; must not contain PEM encapsulation syntax
base64Content - the Base64-encoded content, excluding the PEM header and footer
Throws:
IllegalArgumentException - if type contains PEM encapsulation syntax
NullPointerException - if any parameter is null

PEM

public PEM(String type, byte[] base64Content, byte[] leadingData)
Creates a PEM instance with the specified type and Base64-encoded content and leading data as byte arrays.
Parameters:
type - the PEM type identifier; must not contain PEM encapsulation syntax
base64Content - the Base64-encoded content, excluding the PEM header and footer. This array is defensively copied.
leadingData - data that precedes the PEM header. This array is defensively copied.
Throws:
IllegalArgumentException - if type contains PEM encapsulation syntax
NullPointerException - if any parameter is null
Since:
27

PEM

public PEM(String type, byte[] base64Content)
Creates a PEM instance with the specified type and Base64-encoded content byte array.
Parameters:
type - the PEM type identifier; must not contain PEM encapsulation syntax
base64Content - the Base64-encoded content, excluding the PEM header and footer. This array is defensively copied.
Throws:
IllegalArgumentException - if type contains PEM encapsulation syntax
NullPointerException - if any parameter is null
Since:
27

Method Details

type

public String type()
Returns the PEM type identifier.
Returns:
the PEM type identifier

leadingData

public byte[] leadingData()
Returns the leading data that preceded the PEM header in the decoded input.
Returns:
a newly-allocated byte array containing leading data, or null if no leading data is present

content

public byte[] content()
Returns the Base64-encoded content.
Returns:
a newly-allocated byte array containing the Base64 content
Since:
27

decode

public byte[] decode()
Returns the Base64-decoded content as a byte array, using Base64.getMimeDecoder().
Returns:
a newly-allocated byte array containing the decoded content
Throws:
IllegalArgumentException - if decoding fails

toString

public String toString()
Returns a PEM string representation of this object, using type for the header and footer lines and content for the Base64 body.
Overrides:
toString in class Object
Returns:
the PEM-formatted string

Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2026, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API