/** * <p>Verifies the given ECDSA signature against the message bytes using the public key bytes.</p> * * <p>When using native ECDSA verification, data must be 32 bytes, and no element may be * larger than 520 bytes.</p> * * @param data Hash of the data to verify. * @param signature signature. * @param pub The public key bytes to use. * * @return - */ public static boolean verify(byte[] data, ECDSASignature signature, byte[] pub) { ECDSASigner signer = new ECDSASigner(); ECPublicKeyParameters params = new ECPublicKeyParameters(CURVE.getCurve().decodePoint(pub), CURVE); signer.init(false, params); try { return signer.verifySignature(data, signature.r, signature.s); } catch (NullPointerException npe) { // Bouncy Castle contains a bug that can cause NPEs given specially crafted signatures. // Those signatures are inherently invalid/attack sigs so we just fail them here rather than crash the thread. logger.error("Caught NPE inside bouncy castle", npe); return false; } }
throw new MissingPrivateKeyException(); if (privKey instanceof BCECPrivateKey) { ECDSASigner signer = new ECDSASigner(new HMacDSAKCalculator(new SHA256Digest())); ECPrivateKeyParameters privKeyParams = new ECPrivateKeyParameters(((BCECPrivateKey) privKey).getD(), CURVE); signer.init(true, privKeyParams);
ECPrivateKeyParameters ecPriv = ...; // this is the user's EC private key (not ephemeral) FixedSecureRandom fsr_k = new FixedSecureRandom(); fsr_k.setBytes(tempKeyK); ECDSASigner signer = new ECDSASigner(); ParametersWithRandom ecdsaprivrand = new ParametersWithRandom(ecPriv, fsr_k); signer.init(true, ecdsaprivrand);
public ecDSAnone() { super(new NullDigest(), new ECDSASigner(), new StdDSAEncoder()); } }
public ecDSA224() { super(DigestFactory.createSHA224(), new ECDSASigner(), new StdDSAEncoder()); } }
public ecDSA() { super(DigestFactory.createSHA1(), new ECDSASigner(), new StdDSAEncoder()); } }
public ecDSASha3_256() { super(DigestFactory.createSHA3_256(), new ECDSASigner(), new StdDSAEncoder()); } }
public ecDSASha3_512() { super(DigestFactory.createSHA3_512(), new ECDSASigner(), new StdDSAEncoder()); } }
public ecDSARipeMD160() { super(new RIPEMD160Digest(), new ECDSASigner(), new StdDSAEncoder()); } }
public ecCVCDSA224() { super(DigestFactory.createSHA224(), new ECDSASigner(), new PlainDSAEncoder()); } }
public ecDSA256() { super(DigestFactory.createSHA256(), new ECDSASigner(), new StdDSAEncoder()); } }
public ecCVCDSA384() { super(DigestFactory.createSHA384(), new ECDSASigner(), new PlainDSAEncoder()); } }
public static boolean verify(byte[] data, ECDSASignature signature, byte[] pub) { ECDSASigner signer = new ECDSASigner(); ECPublicKeyParameters params = new ECPublicKeyParameters(CURVE.getCurve().decodePoint(pub), CURVE); signer.init(false, params); try { return signer.verifySignature(data, signature.r, signature.s); } catch (NullPointerException e) { log.error("Caught NPE inside bouncy castle", e); return false; } }
public ecDetDSA384() { super(DigestFactory.createSHA384(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA384())), new StdDSAEncoder()); } }
public ecDetDSASha3_256() { super(DigestFactory.createSHA3_256(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_256())), new StdDSAEncoder()); } }
public ecDetDSASha3_384() { super(DigestFactory.createSHA3_384(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_384())), new StdDSAEncoder()); } }
public ecDetDSA() { super(DigestFactory.createSHA1(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA1())), new StdDSAEncoder()); } }
public ecDetDSASha3_224() { super(DigestFactory.createSHA3_224(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_224())), new StdDSAEncoder()); } }
public ecDetDSASha3_512() { super(DigestFactory.createSHA3_512(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_512())), new StdDSAEncoder()); } }
protected byte[] doSign(byte[] input, BigInteger privateKeyForSigning) { Util.checkNotNull(privateKeyForSigning); ECDSASigner signer = new ECDSASigner(new HMacDSAKCalculator(new SHA256Digest())); ECPrivateKeyParameters privKey = new ECPrivateKeyParameters(privateKeyForSigning, CURVE); signer.init(true, privKey); BigInteger[] components = signer.generateSignature(input); return new ECDSASignature(components[0], components[1]).toCanonicalised().encodeToDER(); }