glib (2.79.0)
       1  /* GIO - GLib Input, Output and Streaming Library
       2   *
       3   * Copyright (C) 2011 Collabora, Ltd.
       4   *
       5   * SPDX-License-Identifier: LGPL-2.1-or-later
       6   *
       7   * This library is free software; you can redistribute it and/or
       8   * modify it under the terms of the GNU Lesser General Public
       9   * License as published by the Free Software Foundation; either
      10   * version 2.1 of the License, or (at your option) any later version.
      11   *
      12   * This library is distributed in the hope that it will be useful,
      13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
      14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      15   * Lesser General Public License for more details.
      16   *
      17   * You should have received a copy of the GNU Lesser General
      18   * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
      19   *
      20   * Author: Stef Walter <stefw@collabora.co.uk>
      21   */
      22  
      23  #ifndef __G_TLS_INTERACTION_H__
      24  #define __G_TLS_INTERACTION_H__
      25  
      26  #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
      27  #error "Only <gio/gio.h> can be included directly."
      28  #endif
      29  
      30  #include <gio/giotypes.h>
      31  
      32  G_BEGIN_DECLS
      33  
      34  #define G_TYPE_TLS_INTERACTION         (g_tls_interaction_get_type ())
      35  #define G_TLS_INTERACTION(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_TLS_INTERACTION, GTlsInteraction))
      36  #define G_TLS_INTERACTION_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_TLS_INTERACTION, GTlsInteractionClass))
      37  #define G_IS_TLS_INTERACTION(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_TLS_INTERACTION))
      38  #define G_IS_TLS_INTERACTION_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_TLS_INTERACTION))
      39  #define G_TLS_INTERACTION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_TLS_INTERACTION, GTlsInteractionClass))
      40  
      41  typedef struct _GTlsInteractionClass   GTlsInteractionClass;
      42  typedef struct _GTlsInteractionPrivate GTlsInteractionPrivate;
      43  
      44  struct _GTlsInteraction
      45  {
      46    /*< private >*/
      47    GObject parent_instance;
      48    GTlsInteractionPrivate *priv;
      49  };
      50  
      51  struct _GTlsInteractionClass
      52  {
      53    /*< private >*/
      54    GObjectClass parent_class;
      55  
      56    /*< public >*/
      57    GTlsInteractionResult  (* ask_password)        (GTlsInteraction    *interaction,
      58                                                    GTlsPassword       *password,
      59                                                    GCancellable       *cancellable,
      60                                                    GError            **error);
      61  
      62    void                   (* ask_password_async)  (GTlsInteraction    *interaction,
      63                                                    GTlsPassword       *password,
      64                                                    GCancellable       *cancellable,
      65                                                    GAsyncReadyCallback callback,
      66                                                    gpointer            user_data);
      67  
      68    GTlsInteractionResult  (* ask_password_finish) (GTlsInteraction    *interaction,
      69                                                    GAsyncResult       *result,
      70                                                    GError            **error);
      71  
      72    GTlsInteractionResult  (* request_certificate)        (GTlsInteraction              *interaction,
      73                                                           GTlsConnection               *connection,
      74                                                           GTlsCertificateRequestFlags   flags,
      75                                                           GCancellable                 *cancellable,
      76                                                           GError                      **error);
      77  
      78    void                   (* request_certificate_async)  (GTlsInteraction              *interaction,
      79                                                           GTlsConnection               *connection,
      80                                                           GTlsCertificateRequestFlags   flags,
      81                                                           GCancellable                 *cancellable,
      82                                                           GAsyncReadyCallback           callback,
      83                                                           gpointer                      user_data);
      84  
      85    GTlsInteractionResult  (* request_certificate_finish) (GTlsInteraction              *interaction,
      86                                                           GAsyncResult                 *result,
      87                                                           GError                      **error);
      88  
      89    /*< private >*/
      90    /* Padding for future expansion */
      91    gpointer padding[21];
      92  };
      93  
      94  GIO_AVAILABLE_IN_ALL
      95  GType                  g_tls_interaction_get_type            (void) G_GNUC_CONST;
      96  
      97  GIO_AVAILABLE_IN_ALL
      98  GTlsInteractionResult  g_tls_interaction_invoke_ask_password (GTlsInteraction    *interaction,
      99                                                                GTlsPassword       *password,
     100                                                                GCancellable       *cancellable,
     101                                                                GError            **error);
     102  
     103  GIO_AVAILABLE_IN_ALL
     104  GTlsInteractionResult  g_tls_interaction_ask_password        (GTlsInteraction    *interaction,
     105                                                                GTlsPassword       *password,
     106                                                                GCancellable       *cancellable,
     107                                                                GError            **error);
     108  
     109  GIO_AVAILABLE_IN_ALL
     110  void                   g_tls_interaction_ask_password_async  (GTlsInteraction    *interaction,
     111                                                                GTlsPassword       *password,
     112                                                                GCancellable       *cancellable,
     113                                                                GAsyncReadyCallback callback,
     114                                                                gpointer            user_data);
     115  
     116  GIO_AVAILABLE_IN_ALL
     117  GTlsInteractionResult  g_tls_interaction_ask_password_finish (GTlsInteraction    *interaction,
     118                                                                GAsyncResult       *result,
     119                                                                GError            **error);
     120  
     121  GIO_AVAILABLE_IN_2_40
     122  GTlsInteractionResult  g_tls_interaction_invoke_request_certificate (GTlsInteraction              *interaction,
     123                                                                       GTlsConnection               *connection,
     124                                                                       GTlsCertificateRequestFlags   flags,
     125                                                                       GCancellable                 *cancellable,
     126                                                                       GError                      **error);
     127  
     128  GIO_AVAILABLE_IN_2_40
     129  GTlsInteractionResult  g_tls_interaction_request_certificate        (GTlsInteraction              *interaction,
     130                                                                       GTlsConnection               *connection,
     131                                                                       GTlsCertificateRequestFlags   flags,
     132                                                                       GCancellable                 *cancellable,
     133                                                                       GError                      **error);
     134  
     135  GIO_AVAILABLE_IN_2_40
     136  void                   g_tls_interaction_request_certificate_async  (GTlsInteraction              *interaction,
     137                                                                       GTlsConnection               *connection,
     138                                                                       GTlsCertificateRequestFlags   flags,
     139                                                                       GCancellable                 *cancellable,
     140                                                                       GAsyncReadyCallback           callback,
     141                                                                       gpointer                      user_data);
     142  
     143  GIO_AVAILABLE_IN_2_40
     144  GTlsInteractionResult  g_tls_interaction_request_certificate_finish (GTlsInteraction              *interaction,
     145                                                                       GAsyncResult                 *result,
     146                                                                       GError                      **error);
     147  
     148  G_END_DECLS
     149  
     150  #endif /* __G_TLS_INTERACTION_H__ */