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 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 DBUS_AUTH_STATE_INVALID = -1 43 } DBusAuthState; 44 45 DBUS_PRIVATE_EXPORT 46 DBusAuth* _dbus_auth_server_new (const DBusString *guid); 47 DBUS_PRIVATE_EXPORT 48 DBusAuth* _dbus_auth_client_new (void); 49 DBUS_PRIVATE_EXPORT 50 DBusAuth* _dbus_auth_ref (DBusAuth *auth); 51 DBUS_PRIVATE_EXPORT 52 void _dbus_auth_unref (DBusAuth *auth); 53 DBUS_PRIVATE_EXPORT 54 dbus_bool_t _dbus_auth_set_mechanisms (DBusAuth *auth, 55 const char **mechanisms); 56 DBUS_PRIVATE_EXPORT 57 DBusAuthState _dbus_auth_do_work (DBusAuth *auth); 58 DBUS_PRIVATE_EXPORT 59 dbus_bool_t _dbus_auth_get_bytes_to_send (DBusAuth *auth, 60 const DBusString **str); 61 DBUS_PRIVATE_EXPORT 62 void _dbus_auth_bytes_sent (DBusAuth *auth, 63 int bytes_sent); 64 DBUS_PRIVATE_EXPORT 65 void _dbus_auth_get_buffer (DBusAuth *auth, 66 DBusString **buffer); 67 DBUS_PRIVATE_EXPORT 68 void _dbus_auth_return_buffer (DBusAuth *auth, 69 DBusString *buffer); 70 DBUS_PRIVATE_EXPORT 71 void _dbus_auth_get_unused_bytes (DBusAuth *auth, 72 const DBusString **str); 73 DBUS_PRIVATE_EXPORT 74 void _dbus_auth_delete_unused_bytes (DBusAuth *auth); 75 dbus_bool_t _dbus_auth_needs_encoding (DBusAuth *auth); 76 dbus_bool_t _dbus_auth_encode_data (DBusAuth *auth, 77 const DBusString *plaintext, 78 DBusString *encoded); 79 dbus_bool_t _dbus_auth_needs_decoding (DBusAuth *auth); 80 dbus_bool_t _dbus_auth_decode_data (DBusAuth *auth, 81 const DBusString *encoded, 82 DBusString *plaintext); 83 DBUS_PRIVATE_EXPORT 84 dbus_bool_t _dbus_auth_set_credentials (DBusAuth *auth, 85 DBusCredentials *credentials); 86 DBUS_PRIVATE_EXPORT 87 DBusCredentials* _dbus_auth_get_identity (DBusAuth *auth); 88 DBUS_PRIVATE_EXPORT 89 dbus_bool_t _dbus_auth_set_context (DBusAuth *auth, 90 const DBusString *context); 91 const char* _dbus_auth_get_guid_from_server(DBusAuth *auth); 92 93 void _dbus_auth_set_unix_fd_possible(DBusAuth *auth, dbus_bool_t b); 94 dbus_bool_t _dbus_auth_get_unix_fd_negotiated(DBusAuth *auth); 95 DBUS_PRIVATE_EXPORT 96 dbus_bool_t _dbus_auth_is_supported_mechanism(DBusString *name); 97 DBUS_PRIVATE_EXPORT 98 dbus_bool_t _dbus_auth_dump_supported_mechanisms(DBusString *buffer); 99 100 DBUS_END_DECLS 101 102 #endif /* DBUS_AUTH_H */ 103