Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8046125

JEP 135: Base64 Encoding & Decoding

    Details

    • Type: JEP
    • Status: Completed
    • Priority: P4
    • Resolution: Unresolved
    • Fix Version/s: 8
    • Component/s: core-libs
    • Labels:
      None
    • Author:
      Alan Bateman
    • JEP Type:
      Feature
    • Exposure:
      Open
    • Scope:
      SE
    • Discussion:
      core dash libs dash dev at openjdk dot java dot net
    • Effort:
      S
    • Duration:
      S
    • JEP Number:
      135

      Description

      Summary

      Define a standard API for Base64 encoding and decoding.

      Motivation

      Base64 encoding schemes are frequently used to encode binary/octet sequences that are transmitted as textual data. It is commonly used by applications using Multipurpose Internal Mail Extensions (MIME), encoding passwords for HTTP headers, message digests, etc.

      The JDK is long overdue a standard API for Base64 encoding and decoding. It has been frequently requested by developers for many years, many resorting to using JDK private and unsupported classes such as sun.misc.BASE64Encoder and sun.misc.BASE64Decoder.

      The JDK itself has several internal implementations: java.util.prefs.Base64, com.sun.org.apache.xml.internal.security.utils.Base64, and com.sun.net.httpserver.Base64 to name a few. A standard API would allow these sorts of implementations to be retired.

      Description

      Define a simple API, probably in java.util, for Base64 encoding and decoding.

      The API must clearly specify the Base64 encoding scheme that is implements, probably the Base64 Content-Transfer-Encoding specified by RFC 1521.

      The API should support common cases, such as encoding binary data in a byte array or read from an input stream, and decoding strings to a byte array or ByteBuffer.

      Existing usages and implementations of Base64 in the JDK should be examined for opportunities to replace and use the new API.

      Testing

      This API will require new unit tests that will be developed along with the implementation. New functional tests would be useful too.

      Impact

      • TCK: New tests will be required.

        Issue Links

          Activity

          There are no comments yet on this issue.

            People

            • Assignee:
              alanb Alan Bateman
              Reporter:
              alanb Alan Bateman
              Owner:
              Alan Bateman
              Endorsed By:
              Brian Goetz
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: