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