code: public static PublicKey decodeECPoint(byte[] encodeByte, String curveName) {
  		final ECNamedCurveParameterSpec namedSpec = ECNamedCurveTable.getParameterSpec(curveName);
  		final ECCurve curve = namedSpec.getCurve();
  		final EllipticCurve ecCurve = new EllipticCurve(//
  				new ECFieldFp(curve.getField().getCharacteristic()), //
  				curve.getA().toBigInteger(), //
  				curve.getB().toBigInteger());
  		// 根据X恢复点Y
  		final ECPoint point = ECPointUtil.decodePoint(ecCurve, encodeByte);
  
  		// 根据曲线恢复公钥格式
  		ECParameterSpec ecSpec = new ECNamedCurveSpec(curveName, curve, namedSpec.getG(), namedSpec.getN());
  
  		final KeyFactory PubKeyGen = KeyUtil.getKeyFactory("EC");
  		try {
  			return PubKeyGen.generatePublic(new ECPublicKeySpec(point, ecSpec));
  		} catch (GeneralSecurityException e) {
  			throw new CryptoException(e);
  		}
  	}
docs: 解码恢复EC压缩公钥,支持Base64和Hex编码,（基于BouncyCastle）<br>
  见：https://www.cnblogs.com/xinzhao/p/8963724.html
  
  @param encodeByte 压缩公钥
  @param curveName EC曲线名，例如{@link KeyUtil#SM2_DEFAULT_CURVE}
  @since 4.4.4