public static boolean verify(PublicKey publicKey, String signedData, String signature) {
        Signature sig;
        try {
            sig = Signature.getInstance(SIGNATURE_ALGORITHM);
            sig.initVerify(publicKey);
            sig.update(signedData.getBytes());
            if (!sig.verify(Base64.decode(signature))) {
                Log.e(TAG, "Signature verification failed.");
                return false;
            }
            return true;
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "NoSuchAlgorithmException.");
        } catch (InvalidKeyException e) {
            Log.e(TAG, "Invalid key specification.");
        } catch (SignatureException e) {
            Log.e(TAG, "Signature exception.");
        } catch (Base64DecoderException e) {
            Log.e(TAG, "Base64 decoding failed.");
        }
        return false;
    }
public static boolean verify ( PublicKey publicKey , String signedData , String signature ) { Signature sig ; try { sig = Signature . getInstance ( SIGNATURE_ALGORITHM ) ; sig . initVerify ( publicKey ) ; sig . update ( signedData . getBytes ( ) ) ; if ( ! sig . verify ( Base64 . decode ( signature ) ) ) { Log . e ( TAG , "Signature verification failed." ) ; return false ; } return true ; } catch ( NoSuchAlgorithmException e ) { Log . e ( TAG , "NoSuchAlgorithmException." ) ; } catch ( InvalidKeyException e ) { Log . e ( TAG , "Invalid key specification." ) ; } catch ( SignatureException e ) { Log . e ( TAG , "Signature exception." ) ; } catch ( Base64DecoderException e ) { Log . e ( TAG , "Base64 decoding failed." ) ; } return false ; }
Verifies that the signature from the server matches the computed
signature on the data.  Returns true if the data is correctly signed.

@param publicKey public key associated with the developer account
@param signedData signed data from server
@param signature server signature
@return true if the data and signature match