public boolean verify(PublicKey publicKey, String msg, String signatureBase64) {
        try {
            Signature sign = Signature.getInstance(this.signatureAlgorithm);
            sign.initVerify(publicKey);
            sign.update(msg.getBytes(StandardCharsets.UTF_8));

            byte[] signatureBytes = Base64.getDecoder().decode(signatureBase64);
            return sign.verify(signatureBytes);
        } catch (Exception e) {
            return false;
        }
    }
Verify that the given base64 encoded signature matches
the given message and {@link PublicKey}.

@param publicKey the public key that the message was supposedly signed with
@param msg the message
@param signatureBase64 the provided signature
@return true if the signature is ok
common/src/main/java/me/lucko/luckperms/common/webeditor/socket/SignatureAlgorithm.java