## GTlsPassword GTlsPassword — TLS Passwords for prompting |

## Synopsis

    #include <gio/gio.h>

                        GTlsPassword;
    struct              GTlsPasswordClass;
    enum                GTlsPasswordFlags;
    GTlsPassword *      g_tls_password_new                  (GTlsPasswordFlags flags,
                                                             const gchar *description);
    const guchar *      g_tls_password_get_value            (GTlsPassword *password,
                                                             gsize *length);
    void                g_tls_password_set_value            (GTlsPassword *password,
                                                             const guchar *value,
                                                             gssize length);
    void                g_tls_password_set_value_full       (GTlsPassword *password,
                                                             guchar *value,
                                                             gssize length,
                                                             GDestroyNotify destroy);
    const gchar *       g_tls_password_get_description      (GTlsPassword *password);
    void                g_tls_password_set_description      (GTlsPassword *password,
                                                             const gchar *description);
    GTlsPasswordFlags   g_tls_password_get_flags            (GTlsPassword *password);
    void                g_tls_password_set_flags            (GTlsPassword *password,
                                                             GTlsPasswordFlags flags);
    const gchar *       g_tls_password_get_warning          (GTlsPassword *password);
    void                g_tls_password_set_warning          (GTlsPassword *password,
                                                             const gchar *warning);

## Object Hierarchy

      GObject
       +----GTlsPassword

      GFlags
       +----GTlsPasswordFlags

## Properties

      "description"              gchar*                : Read / Write
      "flags"                    GTlsPasswordFlags     : Read / Write
      "warning"                  gchar*                : Read / Write

## Description

Holds a password used in TLS.

## Details

### GTlsPassword

    typedef struct _GTlsPassword GTlsPassword;

An abstract interface representing a password used in TLS. Often used in user interaction such as unlocking a key storage token.

Since 2.30

### struct GTlsPasswordClass

    struct GTlsPasswordClass {
      GObjectClass parent_class;

      /* methods */

      const guchar *    ( *get_value)            (GTlsPassword  *password,
                                                  gsize         *length);

      void              ( *set_value)            (GTlsPassword  *password,
                                                  guchar        *value,
                                                  gssize         length,
                                                  GDestroyNotify destroy);

      const gchar*      ( *get_default_warning)  (GTlsPassword  *password);
    };

### enum GTlsPasswordFlags

    typedef enum {
      G_TLS_PASSWORD_NONE = 0,
      G_TLS_PASSWORD_RETRY = 1 << 1,
      G_TLS_PASSWORD_MANY_TRIES = 1 << 2,
      G_TLS_PASSWORD_FINAL_TRY = 1 << 3
    } GTlsPasswordFlags;

Various flags for the password.

`G_TLS_PASSWORD_NONE` | No flags
`G_TLS_PASSWORD_RETRY` | The password was wrong, and the user should retry.
`G_TLS_PASSWORD_MANY_TRIES` | Hint to the user that the password has been wrong many times, and the user may not have many chances left.
`G_TLS_PASSWORD_FINAL_TRY` | Hint to the user that this is the last try to get this password right.

Since 2.30

### g_tls_password_new ()

    GTlsPassword *      g_tls_password_new                  (GTlsPasswordFlags flags,
                                                             const gchar *description);

Create a new GTlsPassword object.

`flags` : | the password flags
`description` : | description of what the password is for
Returns : | The newly allocated password object. [transfer full]

### g_tls_password_get_value ()

    const guchar *      g_tls_password_get_value            (GTlsPassword *password,
                                                             gsize *length);

Get the password value. If `length` is not `NULL` then it will be filled in with the length of the password value. (Note that the password value is not nul-terminated, so you can only pass `NULL` for `length` in contexts where you know the password will have a certain fixed length.)

`password` : | a GTlsPassword object
`length` : | location to place the length of the password. [allow-none]
Returns : | The password value (owned by the password object).

Since 2.30

### g_tls_password_set_value ()

    void                g_tls_password_set_value            (GTlsPassword *password,
                                                             const guchar *value,
                                                             gssize length);

Set the value for this password. The `value` will be copied by the password object.

Specify the `length`, for a non-nul-terminated password. Pass -1 as `length` if using a nul-terminated password, and `length` will be calculated automatically. (Note that the terminating nul is not considered part of the password in this case.)

`password` : | a GTlsPassword object
`value` : | the new password value
`length` : | the length of the password, or -1

Since 2.30

### g_tls_password_set_value_full ()

    void                g_tls_password_set_value_full       (GTlsPassword *password,
                                                             guchar *value,
                                                             gssize length,
                                                             GDestroyNotify destroy);

Provide the value for this password.

The `value` will be owned by the password object, and later freed using the `destroy` function callback.

Specify the `length`, for a non-nul-terminated password. Pass -1 as `length` if using a nul-terminated password, and `length` will be calculated automatically. (Note that the terminating nul is not considered part of the password in this case.)

Virtual: set_value

`password` : | a GTlsPassword object
`value` : | the value for the password
`length` : | the length of the password, or -1
`destroy` : | a function to use to free the password. [allow-none]

Since 2.30

### g_tls_password_get_description ()

    const gchar *       g_tls_password_get_description      (GTlsPassword *password);

Get a description string about what the password will be used for.

`password` : | a GTlsPassword object
Returns : | The description of the password.

Since 2.30

### g_tls_password_set_description ()

    void                g_tls_password_set_description      (GTlsPassword *password,
                                                             const gchar *description);

Set a description string about what the password will be used for.

`password` : | a GTlsPassword object
`description` : | The description of the password

Since 2.30

### g_tls_password_get_flags ()

    GTlsPasswordFlags   g_tls_password_get_flags            (GTlsPassword *password);

Get flags about the password.

`password` : | a GTlsPassword object
Returns : | The flags about the password.

Since 2.30

### g_tls_password_set_flags ()

    void                g_tls_password_set_flags            (GTlsPassword *password,
                                                             GTlsPasswordFlags flags);

Set flags about the password.

`password` : | a GTlsPassword object
`flags` : | The flags about the password

Since 2.30

### g_tls_password_get_warning ()

    const gchar *       g_tls_password_get_warning          (GTlsPassword *password);

Get a user readable translated warning. Usually this warning is a representation of the password flags returned from `g_tls_password_get_flags()`.

`password` : | a GTlsPassword object
Returns : | The warning.

Since 2.30

### g_tls_password_set_warning ()

    void                g_tls_password_set_warning          (GTlsPassword *password,
                                                             const gchar *warning);

Set a user readable translated warning. Usually this warning is a representation of the password flags returned from `g_tls_password_get_flags()`.

`password` : | a GTlsPassword object
`warning` : | The user readable warning

Since 2.30

## Property Details

### The `"description"` property

      "description"              gchar*                : Read / Write

Description of what the password is for.

Default value: ""

### The `"flags"` property

      "flags"                    GTlsPasswordFlags     : Read / Write

Flags about the password.

### The `"warning"` property

      "warning"                  gchar*                : Read / Write

Warning about the password.

Default value: ""