Add some passive support for SHA256 based signatures

This commit is contained in:
2017-04-02 21:03:04 +02:00
parent 841fb7eccd
commit c4385b2336
3 changed files with 31 additions and 27 deletions

View File

@ -38,10 +38,7 @@ import org.bouncycastle.jce.spec.ECPublicKeySpec;
import org.bouncycastle.math.ec.ECPoint;
import java.math.BigInteger;
import java.security.GeneralSecurityException;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.Signature;
import java.security.*;
import java.security.spec.KeySpec;
import java.util.Arrays;
@ -51,7 +48,6 @@ import java.util.Arrays;
*/
public class BouncyCryptography extends AbstractCryptography {
private static final X9ECParameters EC_CURVE_PARAMETERS = CustomNamedCurves.getByName("secp256k1");
private static final String ALGORITHM_ECDSA = "ECDSA";
public BouncyCryptography() {
super(new BouncyCastleProvider());
@ -106,10 +102,7 @@ public class BouncyCryptography extends AbstractCryptography {
KeySpec keySpec = new ECPublicKeySpec(Q, spec);
PublicKey publicKey = KeyFactory.getInstance(ALGORITHM_ECDSA, provider).generatePublic(keySpec);
Signature sig = Signature.getInstance(ALGORITHM_ECDSA, provider);
sig.initVerify(publicKey);
sig.update(data);
return sig.verify(signature);
return doCheckSignature(data, signature, publicKey);
} catch (GeneralSecurityException e) {
throw new ApplicationException(e);
}
@ -131,10 +124,7 @@ public class BouncyCryptography extends AbstractCryptography {
java.security.PrivateKey privKey = KeyFactory.getInstance(ALGORITHM_ECDSA, provider)
.generatePrivate(keySpec);
Signature sig = Signature.getInstance(ALGORITHM_ECDSA, provider);
sig.initSign(privKey);
sig.update(data);
return sig.sign();
return doSign(data, privKey);
} catch (GeneralSecurityException e) {
throw new ApplicationException(e);
}