Files

30 lines
1.3 KiB
Plaintext

$ java --enable-preview PemDemo (JDK 27)
--- public key, encoded
-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----
--- private key, encoded
-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----
CHECK ok : a PublicKey encodes as BEGIN PUBLIC KEY
CHECK ok : a PrivateKey encodes as BEGIN PRIVATE KEY (PKCS#8)
CHECK ok : the decoded public key equals the original
CHECK ok : the decoded private key equals the original
--- decode(String) returns whatever the header says it is
-----BEGIN PUBLIC KEY----- -> PublicKey (EC)
-----BEGIN PRIVATE KEY----- -> PrivateKey (EC)
--- encrypted private key
-----BEGIN ENCRYPTED PRIVATE KEY-----
CHECK ok : withEncryption produces ENCRYPTED PRIVATE KEY
decoded with no password: javax.crypto.EncryptedPrivateKeyInfo
CHECK ok : without a password you get the still-encrypted structure back
CHECK ok : with the password you get the original private key
--- PEM(type, byte[]) does NOT Base64-encode: the bytes go in as they are
-----BEGIN ANKURM DEMO-----
hello, pem
-----END ANKURM DEMO-----
CHECK ok : raw bytes appear verbatim between the header and footer
--- give it the Base64 text and it round-trips
-----BEGIN ANKURM DEMO-----
aGVsbG8sIHBlbQ==
-----END ANKURM DEMO-----
CHECK ok : type, Base64 text (content()) and decoded payload (decode()) all survive
exit=0