Skip to content

Commit 7d11418

Browse files
author
Bradford Wetmore
committed
8350147: Replace example in KEM class with the one from JEP 452
Reviewed-by: weijun
1 parent 5cf1132 commit 7d11418

File tree

1 file changed

+30
-14
lines changed
  • src/java.base/share/classes/javax/crypto

1 file changed

+30
-14
lines changed

src/java.base/share/classes/javax/crypto/KEM.java

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,24 +65,40 @@
6565
* new shared secret and key encapsulation message.
6666
* <p>
6767
*
68-
* Example:
68+
* Example operation using a ficticious {@code KEM} algorithm {@code ABC}:
6969
* {@snippet lang = java:
70-
* // Receiver side
71-
* var kpg = KeyPairGenerator.getInstance("X25519");
72-
* var kp = kpg.generateKeyPair();
70+
* // Receiver side
71+
* KeyPairGenerator g = KeyPairGenerator.getInstance("ABC");
72+
* KeyPair kp = g.generateKeyPair();
73+
* publishKey(kp.getPublic());
7374
*
74-
* // Sender side
75-
* var kem1 = KEM.getInstance("DHKEM");
76-
* var sender = kem1.newEncapsulator(kp.getPublic());
77-
* var encapsulated = sender.encapsulate();
78-
* var k1 = encapsulated.key();
75+
* // Sender side
76+
* KEM senderKEM = KEM.getInstance("ABC");
77+
* PublicKey receiverPublicKey = retrieveKey();
78+
* ABCKEMParameterSpec senderSpec = new ABCKEMParameterSpec(args);
79+
* KEM.Encapsulator e = senderKEM.newEncapsulator(
80+
* receiverPublicKey, senderSpec, null);
81+
* KEM.Encapsulated enc = e.encapsulate();
82+
* SecretKey senderSecret = enc.key();
7983
*
80-
* // Receiver side
81-
* var kem2 = KEM.getInstance("DHKEM");
82-
* var receiver = kem2.newDecapsulator(kp.getPrivate());
83-
* var k2 = receiver.decapsulate(encapsulated.encapsulation());
84+
* sendBytes(enc.encapsulation());
85+
* sendBytes(enc.params());
8486
*
85-
* assert Arrays.equals(k1.getEncoded(), k2.getEncoded());
87+
* // Receiver side
88+
* byte[] ciphertext = receiveBytes();
89+
* byte[] params = receiveBytes();
90+
*
91+
* KEM receiverKEM = KEM.getInstance("ABC");
92+
* AlgorithmParameters algParams =
93+
* AlgorithmParameters.getInstance("ABC");
94+
* algParams.init(params);
95+
* ABCKEMParameterSpec receiverSpec =
96+
* algParams.getParameterSpec(ABCKEMParameterSpec.class);
97+
* KEM.Decapsulator d =
98+
* receiverKEM.newDecapsulator(kp.getPrivate(), receiverSpec);
99+
* SecretKey receiverSecret = d.decapsulate(ciphertext);
100+
*
101+
* // senderSecret and receiverSecret should now be equal.
86102
* }
87103
*
88104
* @since 21

0 commit comments

Comments
 (0)