Class PemReader


  • @Beta
    public final class PemReader
    extends Object
    Beta
    PEM file reader.

    Supports reading any PEM stream that contains Base64 encoded content stored inside "-----BEGIN ...-----" and "-----END ...-----" tags. Each call to readNextSection() parses the next section in the PEM file. If you need a section of a certain title use readNextSection(String), for example readNextSection("PRIVATE KEY"). To ensure that the stream is closed properly, call close() in a finally block.

    As a convenience, use readFirstSectionAndClose(Reader) or readFirstSectionAndClose(Reader, String) for the common case of only a single section in a PEM file (or only a single section of a given title).

    Limitations:

    • Assumes the PEM file section content is not encrypted and cannot handle the case of any headers inside the BEGIN and END tag.
    • It also ignores any attributes associated with any PEM file section.
    Since:
    1.14
    Author:
    Yaniv Inbar
    • Constructor Detail

      • PemReader

        public PemReader​(Reader reader)
        Parameters:
        reader - reader
    • Method Detail

      • readNextSection

        public PemReader.Section readNextSection​(String titleToLookFor)
                                          throws IOException
        Reads the next section in the PEM file, optionally based on a title to look for.
        Parameters:
        titleToLookFor - title to look for or null for any title
        Returns:
        next section or null for end of file
        Throws:
        IOException
      • readFirstSectionAndClose

        public static PemReader.Section readFirstSectionAndClose​(Reader reader)
                                                          throws IOException
        Reads the first section in the PEM file, and then closes the reader.
        Parameters:
        reader - reader
        Returns:
        first section found or null for none found
        Throws:
        IOException
      • readFirstSectionAndClose

        public static PemReader.Section readFirstSectionAndClose​(Reader reader,
                                                                 String titleToLookFor)
                                                          throws IOException
        Reads the first section in the PEM file, optionally based on a title to look for, and then closes the reader.
        Parameters:
        titleToLookFor - title to look for or null for any title
        reader - reader
        Returns:
        first section found or null for none found
        Throws:
        IOException
      • close

        public void close()
                   throws IOException
        Closes the reader.

        To ensure that the stream is closed properly, call close() in a finally block.

        Throws:
        IOException