< prev index next > test/jdk/sun/security/ec/xec/TestXDH.java
Print this page
import java.security.*;
import java.security.spec.*;
import javax.crypto.*;
import java.util.Arrays;
- import java.math.BigInteger;
+ import java.util.Hex;
+
import jdk.test.lib.Convert;
public class TestXDH {
public static void main(String[] args) throws Exception {
private static void runDiffieHellmanTest(String a_pri,
String b_pub, String result) throws Exception {
KeyFactory kf = KeyFactory.getInstance("XDH");
- byte[] a_pri_ba = Convert.hexStringToByteArray(a_pri);
+ byte[] a_pri_ba = Hex.decoder().decode(a_pri);
KeySpec privateSpec = new PKCS8EncodedKeySpec(a_pri_ba);
PrivateKey privateKey = kf.generatePrivate(privateSpec);
- byte[] b_pub_ba = Convert.hexStringToByteArray(b_pub);
+ byte[] b_pub_ba = Hex.decoder().decode(b_pub);
KeySpec publicSpec = new X509EncodedKeySpec(b_pub_ba);
PublicKey publicKey = kf.generatePublic(publicSpec);
KeyAgreement ka = KeyAgreement.getInstance("XDH");
ka.init(privateKey);
ka.doPhase(publicKey, true);
byte[] sharedSecret = ka.generateSecret();
- byte[] expectedResult = Convert.hexStringToByteArray(result);
+ byte[] expectedResult = Hex.decoder().decode(result);
if (!Arrays.equals(sharedSecret, expectedResult)) {
throw new RuntimeException("fail: expected=" + result + ", actual="
- + Convert.byteArrayToHexString(sharedSecret));
+ + Hex.encoder().encode(sharedSecret));
}
}
private static void runDiffieHellmanTest(String curveName, String a_pri,
String b_pub, String result) throws Exception {
NamedParameterSpec paramSpec = new NamedParameterSpec(curveName);
KeyFactory kf = KeyFactory.getInstance("XDH");
KeySpec privateSpec = new XECPrivateKeySpec(paramSpec,
- Convert.hexStringToByteArray(a_pri));
+ Hex.decoder().decode(a_pri));
PrivateKey privateKey = kf.generatePrivate(privateSpec);
boolean clearHighBit = curveName.equals("X25519");
KeySpec publicSpec = new XECPublicKeySpec(paramSpec,
Convert.hexStringToBigInteger(clearHighBit, b_pub));
PublicKey publicKey = kf.generatePublic(publicSpec);
byte[] encodedPrivateKey = privateKey.getEncoded();
System.out.println("Encoded private: " +
- Convert.byteArrayToHexString(encodedPrivateKey));
+ Hex.encoder().encode(encodedPrivateKey));
byte[] encodedPublicKey = publicKey.getEncoded();
System.out.println("Encoded public: " +
- Convert.byteArrayToHexString(encodedPublicKey));
+ Hex.encoder().encode(encodedPublicKey));
KeyAgreement ka = KeyAgreement.getInstance("XDH");
ka.init(privateKey);
ka.doPhase(publicKey, true);
byte[] sharedSecret = ka.generateSecret();
- byte[] expectedResult = Convert.hexStringToByteArray(result);
+ byte[] expectedResult = Hex.decoder().decode(result);
if (!Arrays.equals(sharedSecret, expectedResult)) {
throw new RuntimeException("fail: expected=" + result + ", actual="
- + Convert.byteArrayToHexString(sharedSecret));
+ + Hex.encoder().encode(sharedSecret));
}
}
/*
* Ensure that SunEC rejects parameters/points for the wrong curve
< prev index next >