docs: def hmac_signature(string, shared_secret, challenge_hmac):
      '''
      Verify a challenging hmac signature against a string / shared-secret
      Returns a boolean if the verification succeeded or failed.
      '''
      msg = salt.utils.stringutils.to_bytes(string)
      key = salt.utils.stringutils.to_bytes(shared_secret)
      challenge = salt.utils.stringutils.to_bytes(challenge_hmac)
      hmac_hash = hmac.new(key, msg, hashlib.sha256)
      valid_hmac = base64.b64encode(hmac_hash.digest())
      return valid_hmac == challenge