Add pem-api module: PEMDecoder/PEMEncoder (JEP 538 preview on JDK 27, JEP 542 final in JDK 28) for JWT keys, TLS, encrypted keys and BouncyCastle migration

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01CifR2BE7PBvRy5hT8TS9oz
This commit is contained in:
2026-10-26 01:50:05 +00:00
co-authored by Claude Sonnet 5.5
parent c3cc57f482
commit 2e25042a68
34 changed files with 895 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
$ javac RoundTrip.java Fx.java (no flags) (27.0.1.0.2+1)
src/Fx.java:27: error: PEM is a preview API and is disabled by default.
if (o instanceof java.security.PEM p) return "PEM(type=" + p.type() + ") - NOT decoded";
^
(use --enable-preview to enable preview APIs)
src/RoundTrip.java:10: error: PEMDecoder is a preview API and is disabled by default.
PEMDecoder decoder = PEMDecoder.of();
^
(use --enable-preview to enable preview APIs)
src/RoundTrip.java:10: error: PEMDecoder is a preview API and is disabled by default.
PEMDecoder decoder = PEMDecoder.of();
^
(use --enable-preview to enable preview APIs)
src/RoundTrip.java:11: error: PEMEncoder is a preview API and is disabled by default.
PEMEncoder encoder = PEMEncoder.of();
^
(use --enable-preview to enable preview APIs)
src/RoundTrip.java:11: error: PEMEncoder is a preview API and is disabled by default.
PEMEncoder encoder = PEMEncoder.of();
^
(use --enable-preview to enable preview APIs)
5 errors
exit=1
$ java RoundTrip (compiled with --enable-preview, run without it) (27.0.1.0.2+1)
Error: LinkageError occurred while loading main class RoundTrip
java.lang.UnsupportedClassVersionError: Preview features are not enabled for RoundTrip (class file version 71.65535). Try running with '--enable-preview'
$ javac --enable-preview --release 27 RoundTrip.java Fx.java
src/Fx.java:27: warning: [preview] PEM is a preview API and may be removed in a future release.
if (o instanceof java.security.PEM p) return "PEM(type=" + p.type() + ") - NOT decoded";
^
src/RoundTrip.java:10: warning: [preview] PEMDecoder is a preview API and may be removed in a future release.
PEMDecoder decoder = PEMDecoder.of();
^
src/RoundTrip.java:10: warning: [preview] PEMDecoder is a preview API and may be removed in a future release.
PEMDecoder decoder = PEMDecoder.of();
^
src/RoundTrip.java:11: warning: [preview] PEMEncoder is a preview API and may be removed in a future release.
PEMEncoder encoder = PEMEncoder.of();
^
exit=0