<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def password_dialog(key, title, message, options):
 """ Show a Gtk password dialog. :returns: the password or ``None`` if the user aborted the operation :raises RuntimeError: if Gtk can not be properly initialized """

    with PasswordDialog.create(key, title, message, options) as dialog:
        response = await dialog
        if response == Gtk.ResponseType.OK:
            return PasswordResult(dialog.get_text(),
                                  dialog.use_cache.get_active())
        return None