我正在尝试用椭圆曲线验证签名。我在stackoverflow中找到了这段代码:
private static boolean isValidSignature(byte[] pubKey, byte[] message,
byte[] signature) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException, SignatureException, InvalidKeySpecException {
Signature ecdsaVerify = Signature.getInstance("SHA256withECDSA", new BouncyCastleProvider());
ecdsaVerify.initVerify(getPublicKeyFromHex(pubKey));
ecdsaVerify.update(message);
return ecdsaVerify.verify(signature);
}
但我需要使用公钥来使用此方法。公钥在其他设备中创建。所以我有公共密钥的组件,如EC_PARAMS
,EC_POINTS
,CLASS
,SUBJECT
....如何从这些组件中恢复公钥?在stackoverflow中有一个问题。但我没有x和y点。如何从其组件中恢复公钥?