1/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2/* dbus-auth.h Authentication 3 * 4 * Copyright (C) 2002 Red Hat Inc. 5 * 6 * Licensed under the Academic Free License version 2.1 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 * 22 */ 23#ifndef DBUS_AUTH_H 24#define DBUS_AUTH_H 25 26#include <dbus/dbus-macros.h> 27#include <dbus/dbus-errors.h> 28#include <dbus/dbus-string.h> 29#include <dbus/dbus-sysdeps.h> 30 31DBUS_BEGIN_DECLS 32 33typedef struct DBusAuth DBusAuth; 34 35typedef enum 36{ 37 DBUS_AUTH_STATE_WAITING_FOR_INPUT, 38 DBUS_AUTH_STATE_WAITING_FOR_MEMORY, 39 DBUS_AUTH_STATE_HAVE_BYTES_TO_SEND, 40 DBUS_AUTH_STATE_NEED_DISCONNECT, 41 DBUS_AUTH_STATE_AUTHENTICATED 42} DBusAuthState; 43 44DBusAuth* _dbus_auth_server_new (const DBusString *guid); 45DBusAuth* _dbus_auth_client_new (void); 46DBusAuth* _dbus_auth_ref (DBusAuth *auth); 47void _dbus_auth_unref (DBusAuth *auth); 48dbus_bool_t _dbus_auth_set_mechanisms (DBusAuth *auth, 49 const char **mechanisms); 50DBusAuthState _dbus_auth_do_work (DBusAuth *auth); 51dbus_bool_t _dbus_auth_get_bytes_to_send (DBusAuth *auth, 52 const DBusString **str); 53void _dbus_auth_bytes_sent (DBusAuth *auth, 54 int bytes_sent); 55void _dbus_auth_get_buffer (DBusAuth *auth, 56 DBusString **buffer); 57void _dbus_auth_return_buffer (DBusAuth *auth, 58 DBusString *buffer, 59 int bytes_read); 60void _dbus_auth_get_unused_bytes (DBusAuth *auth, 61 const DBusString **str); 62void _dbus_auth_delete_unused_bytes (DBusAuth *auth); 63dbus_bool_t _dbus_auth_needs_encoding (DBusAuth *auth); 64dbus_bool_t _dbus_auth_encode_data (DBusAuth *auth, 65 const DBusString *plaintext, 66 DBusString *encoded); 67dbus_bool_t _dbus_auth_needs_decoding (DBusAuth *auth); 68dbus_bool_t _dbus_auth_decode_data (DBusAuth *auth, 69 const DBusString *encoded, 70 DBusString *plaintext); 71dbus_bool_t _dbus_auth_set_credentials (DBusAuth *auth, 72 DBusCredentials *credentials); 73DBusCredentials* _dbus_auth_get_identity (DBusAuth *auth); 74dbus_bool_t _dbus_auth_set_context (DBusAuth *auth, 75 const DBusString *context); 76const char* _dbus_auth_get_guid_from_server(DBusAuth *auth); 77 78void _dbus_auth_set_unix_fd_possible(DBusAuth *auth, dbus_bool_t b); 79dbus_bool_t _dbus_auth_get_unix_fd_negotiated(DBusAuth *auth); 80 81DBUS_END_DECLS 82 83#endif /* DBUS_AUTH_H */ 84