from datetime import datetime


def time_since_report(entry):
    """
    Calculates the time difference between the reported time of the event and its updated time.
    :param entry: A dict with a 'reported' and 'updated' keys that contain datetime objects.
    :type entry: Dict
    :return: Boolean, True in case the time difference is greater than one hour. False otherwise.
    :raises TypeError: In case the parameter is not a dictionary.
    :raises KeyError: In case the parameter doesn't have the correct keys.
    """
    if type(entry) is dict:
        if "reported" in entry:
            reported = datetime.strptime(entry["reported"], "%d-%m-%Y %H:%M:%S")
        else:
            raise KeyError("No 'reported' key in the dict!")
        if "updated" in entry:
            updated = datetime.strptime(entry["updated"], "%d-%m-%Y %H:%M:%S")
        else:
            raise KeyError("No 'updated' key in the dict!")
        delta = updated - reported
        return delta.seconds / 3600 >= 1
    else:
        raise TypeError("Parameter must be a dictionary!")