|
18 | 18 | import com.hierynomus.sshj.secg.SecgUtils; |
19 | 19 | import org.bouncycastle.asn1.nist.NISTNamedCurves; |
20 | 20 | import org.bouncycastle.asn1.x9.X9ECParameters; |
21 | | -import org.bouncycastle.jce.spec.ECParameterSpec; |
22 | | -import org.bouncycastle.jce.spec.ECPublicKeySpec; |
23 | | -import org.bouncycastle.math.ec.ECPoint; |
| 21 | +import org.bouncycastle.jce.spec.ECNamedCurveSpec; |
24 | 22 | import org.slf4j.Logger; |
25 | 23 | import org.slf4j.LoggerFactory; |
26 | 24 |
|
|
31 | 29 | import java.security.PublicKey; |
32 | 30 | import java.security.interfaces.ECKey; |
33 | 31 | import java.security.interfaces.ECPublicKey; |
| 32 | +import java.security.spec.ECPoint; |
| 33 | +import java.security.spec.ECPublicKeySpec; |
34 | 34 | import java.util.Arrays; |
35 | 35 | import java.util.HashMap; |
36 | 36 | import java.util.Map; |
@@ -81,13 +81,14 @@ static PublicKey readPubKeyFromBuffer(Buffer<?> buf, String variation) throws Ge |
81 | 81 | BigInteger bigX = new BigInteger(1, x); |
82 | 82 | BigInteger bigY = new BigInteger(1, y); |
83 | 83 |
|
84 | | - X9ECParameters ecParams = NISTNamedCurves.getByName(NIST_CURVES_NAMES.get(variation)); |
85 | | - ECPoint pPublicPoint = ecParams.getCurve().createPoint(bigX, bigY); |
86 | | - ECParameterSpec spec = new ECParameterSpec(ecParams.getCurve(), ecParams.getG(), ecParams.getN()); |
87 | | - ECPublicKeySpec publicSpec = new ECPublicKeySpec(pPublicPoint, spec); |
| 84 | + String name = NIST_CURVES_NAMES.get(variation); |
| 85 | + X9ECParameters ecParams = NISTNamedCurves.getByName(name); |
| 86 | + ECNamedCurveSpec ecCurveSpec = new ECNamedCurveSpec(name, ecParams.getCurve(), ecParams.getG(), ecParams.getN()); |
| 87 | + ECPoint p = new ECPoint(bigX, bigY); |
| 88 | + ECPublicKeySpec publicKeySpec = new java.security.spec.ECPublicKeySpec(p, ecCurveSpec); |
88 | 89 |
|
89 | 90 | KeyFactory keyFactory = KeyFactory.getInstance("ECDSA"); |
90 | | - return keyFactory.generatePublic(publicSpec); |
| 91 | + return keyFactory.generatePublic(publicKeySpec); |
91 | 92 | } catch (Exception ex) { |
92 | 93 | throw new GeneralSecurityException(ex); |
93 | 94 | } |
|
0 commit comments