W3cubDocs

/OpenJDK 25

Record Class PEMRecord

java.lang.Object
java.lang.Record
java.security.PEMRecord
Record Components:
type - the type identifier in the PEM header without PEM syntax labels. For a public key, type would be "PUBLIC KEY".
content - the Base64-encoded data, excluding the PEM header and footer
leadingData - any non-PEM data preceding the PEM header when decoding.
All Implemented Interfaces:
DEREncodablePREVIEW
public record PEMRecord(String type, String content, byte[] leadingData) extends Record implements DEREncodablePREVIEW
PEMRecord is a preview API of the Java platform.
Programs can only use PEMRecord when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
PEMRecord is a DEREncodablePREVIEW that represents Privacy-Enhanced Mail (PEM) data by its type and Base64 form. PEMDecoderPREVIEW and PEMEncoderPREVIEW use PEMRecord when representing the data as a cryptographic object is not desired or the type has no DEREncodable.

type and content may not be null. leadingData may be null if no non-PEM data preceded PEM header during decoding. leadingData may be useful for reading metadata that accompanies PEM data.

No validation is performed during instantiation to ensure that type conforms to RFC 7468, that content is valid Base64, or that content matches the type. leadingData is not defensively copied and does not return a clone when leadingData() is called.

Since:
25
External Specifications
See Also:

Constructor Summary

Constructor Description
PEMRecord(String type, String content)
Creates a PEMRecord instance with a given type and content data in String form.
PEMRecord(String type, String content, byte[] leadingData)
Creates a PEMRecord instance with the given parameters.

Method Summary

Modifier and Type Method Description
String content()
Returns the value of the content record component.
final boolean equals(Object o)
Indicates whether some other object is "equal to" this one.
final int hashCode()
Returns a hash code value for this object.
byte[] leadingData()
Returns the value of the leadingData record component.
String toString()
Returns the type and Base64 encoding in PEM format.
String type()
Returns the value of the type record component.

Methods declared in class Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Constructor Details

PEMRecord

public PEMRecord(String type, String content, byte[] leadingData)
Creates a PEMRecord instance with the given parameters.
Parameters:
type - the type identifier
content - the Base64-encoded data, excluding the PEM header and footer
leadingData - any non-PEM data read during the decoding process before the PEM header. This value maybe null.
Throws:
IllegalArgumentException - if type is incorrectly formatted.
NullPointerException - if type and/or content are null.

PEMRecord

public PEMRecord(String type, String content)
Creates a PEMRecord instance with a given type and content data in String form. leadingData is set to null.
Parameters:
type - the PEM type identifier
content - the Base64-encoded data, excluding the PEM header and footer
Throws:
IllegalArgumentException - if type is incorrectly formatted.
NullPointerException - if type and/or content are null.

Method Details

toString

public String toString()
Returns the type and Base64 encoding in PEM format. leadingData is not returned by this method.
Specified by:
toString in class Record
Returns:
a string representation of the object.
See Also:

hashCode

public final int hashCode()
Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
Specified by:
hashCode in class Record
Returns:
a hash code value for this object
See Also:

equals

public final boolean equals(Object o)
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
Specified by:
equals in class Record
Parameters:
o - the object with which to compare
Returns:
true if this object is the same as the o argument; false otherwise.
See Also:

type

public String type()
Returns the value of the type record component.
Returns:
the value of the type record component

content

public String content()
Returns the value of the content record component.
Returns:
the value of the content record component

leadingData

public byte[] leadingData()
Returns the value of the leadingData record component.
Returns:
the value of the leadingData record component

© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/security/PEMRecord.html