1 /* -*- mode: C; c-file-style: "gnu" -*- */ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 31 DBUS_BEGIN_DECLS 32 33 typedef struct DBusAuth DBusAuth; 34 35 typedef 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 44 DBusAuth* _dbus_auth_server_new (const DBusString *guid); 45 DBusAuth* _dbus_auth_client_new (void); 46 DBusAuth* _dbus_auth_ref (DBusAuth *auth); 47 void _dbus_auth_unref (DBusAuth *auth); 48 dbus_bool_t _dbus_auth_set_mechanisms (DBusAuth *auth, 49 const char **mechanisms); 50 DBusAuthState _dbus_auth_do_work (DBusAuth *auth); 51 dbus_bool_t _dbus_auth_get_bytes_to_send (DBusAuth *auth, 52 const DBusString **str); 53 void _dbus_auth_bytes_sent (DBusAuth *auth, 54 int bytes_sent); 55 void _dbus_auth_get_buffer (DBusAuth *auth, 56 DBusString **buffer); 57 void _dbus_auth_return_buffer (DBusAuth *auth, 58 DBusString *buffer, 59 int bytes_read); 60 void _dbus_auth_get_unused_bytes (DBusAuth *auth, 61 const DBusString **str); 62 void _dbus_auth_delete_unused_bytes (DBusAuth *auth); 63 dbus_bool_t _dbus_auth_needs_encoding (DBusAuth *auth); 64 dbus_bool_t _dbus_auth_encode_data (DBusAuth *auth, 65 const DBusString *plaintext, 66 DBusString *encoded); 67 dbus_bool_t _dbus_auth_needs_decoding (DBusAuth *auth); 68 dbus_bool_t _dbus_auth_decode_data (DBusAuth *auth, 69 const DBusString *encoded, 70 DBusString *plaintext); 71 void _dbus_auth_set_credentials (DBusAuth *auth, 72 const DBusCredentials *credentials); 73 void _dbus_auth_get_identity (DBusAuth *auth, 74 DBusCredentials *credentials); 75 dbus_bool_t _dbus_auth_set_context (DBusAuth *auth, 76 const DBusString *context); 77 const char* _dbus_auth_get_guid_from_server(DBusAuth *auth); 78 79 80 DBUS_END_DECLS 81 82 #endif /* DBUS_AUTH_H */ 83