如果我未来的自己需要解决方案:
// Generate KeysECGenParameterSpec ecGenSpec = new ECGenParameterSpec("secp256r1");KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("ECDSA", "BC");keyPairGenerator.initialize(ecGenSpec, new SecureRandom());java.security.KeyPair pair = keyPairGenerator.generateKeyPair();ECPrivateKey privateKey = (ECPrivateKey) pair.getPrivate();ECPublicKey publicKeyExpected = (ECPublicKey) pair.getPublic();// Expected public keySystem.out.print("Expected Public Key: " + baseEncoding.base64Url().enpre(publicKeyExpected.getEnpred()));// Generate public key from private keyKeyFactory keyFactory = KeyFactory.getInstance("ECDSA", "BC");ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("secp256r1");ECPoint Q = ecSpec.getG().multiply(privateKey.getD());byte[] publicDerBytes = Q.getEnpred(false);ECPoint point = ecSpec.getCurve().deprePoint(publicDerBytes);ECPublicKeySpec pubSpec = new ECPublicKeySpec(point, ecSpec);ECPublicKey publicKeyGenerated = (ECPublicKey) keyFactory.generatePublic(pubSpec);// Generated public key from private keySystem.out.print("Generated Public Key: " + baseEncoding.base64Url().enpre(publicKeyGenerated.getEnpred()));


