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:
@@ -0,0 +1,35 @@
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
/** Tiny helper shared by the demos: read a fixture, print a section header, assert. */
|
||||
final class Fx {
|
||||
static final Path DIR = Path.of(System.getProperty("fixtures", "fixtures"));
|
||||
static String read(String name) {
|
||||
try { return Files.readString(DIR.resolve(name)); }
|
||||
catch (IOException e) { throw new RuntimeException(e); }
|
||||
}
|
||||
static void h(String s) { System.out.println("== " + s); }
|
||||
static void check(boolean ok, String what) {
|
||||
if (!ok) throw new AssertionError(what);
|
||||
System.out.println("ok: " + what);
|
||||
}
|
||||
/** Run, and print the exception class and message instead of a stack trace. */
|
||||
static void tryIt(String label, java.util.concurrent.Callable<Object> c) {
|
||||
try {
|
||||
Object o = c.call();
|
||||
System.out.println(label + " -> " + describe(o));
|
||||
} catch (Throwable t) {
|
||||
System.out.println(label + " !! " + t);
|
||||
}
|
||||
}
|
||||
static String describe(Object o) {
|
||||
if (o instanceof java.security.PEM p) return "PEM(type=" + p.type() + ") - NOT decoded";
|
||||
if (o instanceof java.security.KeyPair) return "KeyPair";
|
||||
if (o instanceof java.security.PrivateKey k) return "PrivateKey " + k.getAlgorithm();
|
||||
if (o instanceof java.security.PublicKey k) return "PublicKey " + k.getAlgorithm();
|
||||
if (o instanceof java.security.cert.X509Certificate c) return "X509Certificate " + c.getSubjectX500Principal();
|
||||
if (o instanceof javax.crypto.EncryptedPrivateKeyInfo e) return "EncryptedPrivateKeyInfo " + e.getAlgName();
|
||||
return String.valueOf(o);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user