dbus-auth.h revision a9ff341aa66588c12275529ee2d16843b493cb4f
12297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington/* -*- mode: C; c-file-style: "gnu" -*- */
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
202297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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
44b4a1100f4f81534e2aac0141afda750f318223d4Havoc PenningtonDBusAuth*     _dbus_auth_server_new          (void);
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);
71b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid          _dbus_auth_set_credentials     (DBusAuth               *auth,
72b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington                                              const DBusCredentials  *credentials);
73b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtonvoid          _dbus_auth_get_identity        (DBusAuth               *auth,
74b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington                                              DBusCredentials        *credentials);
75b4a1100f4f81534e2aac0141afda750f318223d4Havoc Penningtondbus_bool_t   _dbus_auth_set_context         (DBusAuth               *auth,
76b4a1100f4f81534e2aac0141afda750f318223d4Havoc Pennington                                              const DBusString       *context);
772297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington
782297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington
79a9ff341aa66588c12275529ee2d16843b493cb4fOlivier AndrieuDBUS_END_DECLS
802297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington
812297787455989c9ec47ea899b2ad6f3f6ef72c05Havoc Pennington#endif /* DBUS_AUTH_H */
82