All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.aerogear.crypto.signature.VerifyKey Maven / Gradle / Ivy

The newest version!
package org.jboss.aerogear.crypto.signature;

import org.jboss.aerogear.crypto.encoders.Encoder;

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.PublicKey;
import java.security.Signature;
import java.security.SignatureException;

import static org.jboss.aerogear.AeroGearCrypto.DEFAULT_ECDSA_SHA;

public class VerifyKey {

    private final Signature ecdsaSign;

    public VerifyKey(PublicKey publicKey) {
        try {
            this.ecdsaSign = Signature.getInstance(DEFAULT_ECDSA_SHA);
            ecdsaSign.initVerify(publicKey);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("Error: ", e);
        } catch (InvalidKeyException e) {
            throw new RuntimeException("Error: ", e);
        }
    }

    public boolean verify(byte[] message, byte[] signature) {

        boolean isValid;

        try {
            ecdsaSign.update(message);
            isValid = ecdsaSign.verify(signature);
        } catch (SignatureException e) {
            throw new RuntimeException("Corrupted message", e);
        }
        return isValid;
    }

    public Boolean verify(String message, String signature, Encoder encoder) {
        return verify(encoder.decode(message), encoder.decode(signature));
    }

    public Boolean verify(String message, String signature) throws SignatureException, InvalidKeyException {
        return verify(message, signature, Encoder.RAW);
    }

    public Boolean verify(String message, byte[] signature) throws SignatureException, InvalidKeyException {
        return verify(Encoder.RAW.decode(message), signature);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy