gtlspassword.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. #ifndef __G_TLS_PASSWORD_H__
  23. #define __G_TLS_PASSWORD_H__
  24. #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
  25. #error "Only <gio/gio.h> can be included directly."
  26. #endif
  27. #include <gio/giotypes.h>
  28. G_BEGIN_DECLS
  29. #define G_TYPE_TLS_PASSWORD (g_tls_password_get_type ())
  30. #define G_TLS_PASSWORD(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_TLS_PASSWORD, GTlsPassword))
  31. #define G_TLS_PASSWORD_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_TLS_PASSWORD, GTlsPasswordClass))
  32. #define G_IS_TLS_PASSWORD(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_TLS_PASSWORD))
  33. #define G_IS_TLS_PASSWORD_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_TLS_PASSWORD))
  34. #define G_TLS_PASSWORD_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_TLS_PASSWORD, GTlsPasswordClass))
  35. typedef struct _GTlsPasswordClass GTlsPasswordClass;
  36. typedef struct _GTlsPasswordPrivate GTlsPasswordPrivate;
  37. struct _GTlsPassword
  38. {
  39. GObject parent_instance;
  40. GTlsPasswordPrivate *priv;
  41. };
  42. /**
  43. * GTlsPasswordClass:
  44. * @get_value: virtual method for g_tls_password_get_value()
  45. * @set_value: virtual method for g_tls_password_set_value()
  46. * @get_default_warning: virtual method for g_tls_password_get_warning() if no
  47. * value has been set using g_tls_password_set_warning()
  48. *
  49. * Class structure for #GTlsPassword.
  50. */
  51. struct _GTlsPasswordClass
  52. {
  53. GObjectClass parent_class;
  54. /* methods */
  55. const guchar * ( *get_value) (GTlsPassword *password,
  56. gsize *length);
  57. void ( *set_value) (GTlsPassword *password,
  58. guchar *value,
  59. gssize length,
  60. GDestroyNotify destroy);
  61. const gchar* ( *get_default_warning) (GTlsPassword *password);
  62. /*< private >*/
  63. /* Padding for future expansion */
  64. gpointer padding[4];
  65. };
  66. GIO_AVAILABLE_IN_ALL
  67. GType g_tls_password_get_type (void) G_GNUC_CONST;
  68. GIO_AVAILABLE_IN_ALL
  69. GTlsPassword * g_tls_password_new (GTlsPasswordFlags flags,
  70. const gchar *description);
  71. GIO_AVAILABLE_IN_ALL
  72. const guchar * g_tls_password_get_value (GTlsPassword *password,
  73. gsize *length);
  74. GIO_AVAILABLE_IN_ALL
  75. void g_tls_password_set_value (GTlsPassword *password,
  76. const guchar *value,
  77. gssize length);
  78. GIO_AVAILABLE_IN_ALL
  79. void g_tls_password_set_value_full (GTlsPassword *password,
  80. guchar *value,
  81. gssize length,
  82. GDestroyNotify destroy);
  83. GIO_AVAILABLE_IN_ALL
  84. GTlsPasswordFlags g_tls_password_get_flags (GTlsPassword *password);
  85. GIO_AVAILABLE_IN_ALL
  86. void g_tls_password_set_flags (GTlsPassword *password,
  87. GTlsPasswordFlags flags);
  88. GIO_AVAILABLE_IN_ALL
  89. const gchar* g_tls_password_get_description (GTlsPassword *password);
  90. GIO_AVAILABLE_IN_ALL
  91. void g_tls_password_set_description (GTlsPassword *password,
  92. const gchar *description);
  93. GIO_AVAILABLE_IN_ALL
  94. const gchar * g_tls_password_get_warning (GTlsPassword *password);
  95. GIO_AVAILABLE_IN_ALL
  96. void g_tls_password_set_warning (GTlsPassword *password,
  97. const gchar *warning);
  98. G_END_DECLS
  99. #endif /* __G_TLS_PASSWORD_H__ */