1d012387afef0ba02185ebe27bc6bb15551912e92Havoc Pennington/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 22297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington/* dbus-auth.h Authentication 32297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * 42297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * Copyright (C) 2002 Red Hat Inc. 52297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * 643605a6f4e78a8c28afb4b1e924dff0301e0e95cHavoc Pennington * Licensed under the Academic Free License version 2.1 72297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * 82297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * This program is free software; you can redistribute it and/or modify 92297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * it under the terms of the GNU General Public License as published by 102297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * the Free Software Foundation; either version 2 of the License, or 112297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * (at your option) any later version. 122297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * 132297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * This program is distributed in the hope that it will be useful, 142297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * but WITHOUT ANY WARRANTY; without even the implied warranty of 152297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 162297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * GNU General Public License for more details. 172297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * 182297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * You should have received a copy of the GNU General Public License 192297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * along with this program; if not, write to the Free Software 205baf2f856a9c6625993234855b07680da1c8916fTobias Mueller * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 212297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * 222297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington */ 232297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington#ifndef DBUS_AUTH_H 242297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington#define DBUS_AUTH_H 252297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 262297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington#include <dbus/dbus-macros.h> 272297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington#include <dbus/dbus-errors.h> 282297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington#include <dbus/dbus-string.h> 2901af5ff4101e540a6456bca01d56272e701bea78Havoc Pennington#include <dbus/dbus-sysdeps.h> 302297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 31a9ff341aa66588c12275529ee2d16843b493cb4fOlivier AndrieuDBUS_BEGIN_DECLS 322297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 332297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Penningtontypedef struct DBusAuth DBusAuth; 342297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 352297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Penningtontypedef enum 362297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington{ 372297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington DBUS_AUTH_STATE_WAITING_FOR_INPUT, 382297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington DBUS_AUTH_STATE_WAITING_FOR_MEMORY, 392297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington DBUS_AUTH_STATE_HAVE_BYTES_TO_SEND, 402297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington DBUS_AUTH_STATE_NEED_DISCONNECT, 412297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington DBUS_AUTH_STATE_AUTHENTICATED 422297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington} DBusAuthState; 432297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 44ee27481d7b7d6d9a4f41b7d641a2618dedf676ddHavoc PenningtonDBusAuth* _dbus_auth_server_new (const DBusString *guid); 45b4a1100f4f81534e2aac0141afda750f318223d4Havoc PenningtonDBusAuth* _dbus_auth_client_new (void); 469f1a60dbba69844c0a04b3dd86280352736187ceMikael HallendalDBusAuth* _dbus_auth_ref (DBusAuth *auth); 47b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid _dbus_auth_unref (DBusAuth *auth); 4844ed933284589134603913b05f55ca55e8c5a566Havoc Penningtondbus_bool_t _dbus_auth_set_mechanisms (DBusAuth *auth, 4944ed933284589134603913b05f55ca55e8c5a566Havoc Pennington const char **mechanisms); 50b4a1100f4f81534e2aac0141afda750f318223d4Havoc PenningtonDBusAuthState _dbus_auth_do_work (DBusAuth *auth); 51b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtondbus_bool_t _dbus_auth_get_bytes_to_send (DBusAuth *auth, 52b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington const DBusString **str); 53b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid _dbus_auth_bytes_sent (DBusAuth *auth, 54b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington int bytes_sent); 55b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid _dbus_auth_get_buffer (DBusAuth *auth, 56b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington DBusString **buffer); 57b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid _dbus_auth_return_buffer (DBusAuth *auth, 58b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington DBusString *buffer, 59b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington int bytes_read); 60b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid _dbus_auth_get_unused_bytes (DBusAuth *auth, 61b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington const DBusString **str); 62b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid _dbus_auth_delete_unused_bytes (DBusAuth *auth); 63b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtondbus_bool_t _dbus_auth_needs_encoding (DBusAuth *auth); 64b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtondbus_bool_t _dbus_auth_encode_data (DBusAuth *auth, 65b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington const DBusString *plaintext, 66b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington DBusString *encoded); 67b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtondbus_bool_t _dbus_auth_needs_decoding (DBusAuth *auth); 68b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtondbus_bool_t _dbus_auth_decode_data (DBusAuth *auth, 69b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington const DBusString *encoded, 70b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington DBusString *plaintext); 7123832672266bb4ff23b66247c0cfa1a2ed0cc97bHavoc Penningtondbus_bool_t _dbus_auth_set_credentials (DBusAuth *auth, 72b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington DBusCredentials *credentials); 7323832672266bb4ff23b66247c0cfa1a2ed0cc97bHavoc PenningtonDBusCredentials* _dbus_auth_get_identity (DBusAuth *auth); 74b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtondbus_bool_t _dbus_auth_set_context (DBusAuth *auth, 75b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington const DBusString *context); 764db285c800a68245ad7593e606ca8cb2c21a1329Havoc Penningtonconst char* _dbus_auth_get_guid_from_server(DBusAuth *auth); 772297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 78c200e0304d6f53a0fd47f524386b02b27c0c45f6Lennart Poetteringvoid _dbus_auth_set_unix_fd_possible(DBusAuth *auth, dbus_bool_t b); 79c200e0304d6f53a0fd47f524386b02b27c0c45f6Lennart Poetteringdbus_bool_t _dbus_auth_get_unix_fd_negotiated(DBusAuth *auth); 802297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 81a9ff341aa66588c12275529ee2d16843b493cb4fOlivier AndrieuDBUS_END_DECLS 822297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington 832297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington#endif /* DBUS_AUTH_H */ 84