## ECredentials

ECredentials

## Synopsis

    struct              ECredentials;
    #define             E_CREDENTIALS_KEY_USERNAME
    #define             E_CREDENTIALS_KEY_PASSWORD
    #define             E_CREDENTIALS_KEY_AUTH_METHOD
    #define             E_CREDENTIALS_KEY_PROMPT_TITLE
    #define             E_CREDENTIALS_KEY_PROMPT_TEXT
    #define             E_CREDENTIALS_KEY_PROMPT_REASON
    #define             E_CREDENTIALS_KEY_PROMPT_KEY
    #define             E_CREDENTIALS_KEY_PROMPT_FLAGS
    #define             E_CREDENTIALS_KEY_FOREIGN_REQUEST
    enum                ECredentialsPromptFlags;
    ECredentials *      e_credentials_new                   (void);
    ECredentials *      e_credentials_new_strv              (const gchar * const *strv);
    ECredentials *      e_credentials_new_args              (const gchar *key,
                                                             ...);
    ECredentials *      e_credentials_new_clone             (const ECredentials *credentials);
    void                e_credentials_free                  (ECredentials *credentials);
    gchar **            e_credentials_to_strv               (const ECredentials *credentials);
    void                e_credentials_set                   (ECredentials *credentials,
                                                             const gchar *key,
                                                             const gchar *value);
    gchar *             e_credentials_get                   (const ECredentials *credentials,
                                                             const gchar *key);
    const gchar *       e_credentials_peek                  (ECredentials *credentials,
                                                             const gchar *key);
    gboolean            e_credentials_equal                 (const ECredentials *credentials1,
                                                             const ECredentials *credentials2);
    gboolean            e_credentials_equal_keys            (const ECredentials *credentials1,
                                                             const ECredentials *credentials2,
                                                             const gchar *key1,
                                                             ...);
    gboolean            e_credentials_has_key               (const ECredentials *credentials,
                                                             const gchar *key);
    guint               e_credentials_keys_size             (const ECredentials *credentials);
    GSList *            e_credentials_list_keys             (const ECredentials *credentials);
    void                e_credentials_clear                 (ECredentials *credentials);
    void                e_credentials_clear_peek            (ECredentials *credentials);
    void                e_credentials_util_safe_free_string (gchar *str);
    gchar *             e_credentials_util_prompt_flags_to_string
                                                            (guint prompt_flags);
    guint               e_credentials_util_string_to_prompt_flags
                                                            (const gchar *prompt_flags_string);

## Description

## Details

### struct ECredentials

    struct ECredentials {
    	ECredentialsPrivate *priv;
    };

### Warning

`ECredentials` is deprecated and should not be used in newly-written code.

Contains only private data that should be read and manipulated using the functions below.

Since 3.2

### E_CREDENTIALS_KEY_USERNAME

    #define E_CREDENTIALS_KEY_USERNAME "username"

### Warning

`E_CREDENTIALS_KEY_USERNAME` is deprecated and should not be used in newly-written code.

FIXME Docment me.

Since 3.2

### E_CREDENTIALS_KEY_PASSWORD

    #define E_CREDENTIALS_KEY_PASSWORD "password"

### Warning

`E_CREDENTIALS_KEY_PASSWORD` is deprecated and should not be used in newly-written code.

FIXME Document me.

Since 3.2

### E_CREDENTIALS_KEY_AUTH_METHOD

    #define E_CREDENTIALS_KEY_AUTH_METHOD "auth-method"

### Warning

`E_CREDENTIALS_KEY_AUTH_METHOD` is deprecated and should not be used in newly-written code.

FIXME Document me.

Since 3.2

### E_CREDENTIALS_KEY_PROMPT_TITLE

    #define E_CREDENTIALS_KEY_PROMPT_TITLE "prompt-title"

### Warning

`E_CREDENTIALS_KEY_PROMPT_TITLE` is deprecated and should not be used in newly-written code.

FIXME Document me.

Since 3.2

### E_CREDENTIALS_KEY_PROMPT_TEXT

    #define E_CREDENTIALS_KEY_PROMPT_TEXT "prompt-text"

### Warning

`E_CREDENTIALS_KEY_PROMPT_TEXT` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### E_CREDENTIALS_KEY_PROMPT_REASON

    #define E_CREDENTIALS_KEY_PROMPT_REASON "prompt-reason"

### Warning

`E_CREDENTIALS_KEY_PROMPT_REASON` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### E_CREDENTIALS_KEY_PROMPT_KEY

    #define E_CREDENTIALS_KEY_PROMPT_KEY "prompt-key"

### Warning

`E_CREDENTIALS_KEY_PROMPT_KEY` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### E_CREDENTIALS_KEY_PROMPT_FLAGS

    #define E_CREDENTIALS_KEY_PROMPT_FLAGS "prompt-flags"

### Warning

`E_CREDENTIALS_KEY_PROMPT_FLAGS` is deprecated and should not be used in newly-written code.

FIXME Document me.

Since 3.2

### E_CREDENTIALS_KEY_FOREIGN_REQUEST

    #define E_CREDENTIALS_KEY_FOREIGN_REQUEST "foreign-request"

### Warning

`E_CREDENTIALS_KEY_FOREIGN_REQUEST` is deprecated and should not be used in newly-written code.

Set to "1" when the ECredentials is used to authenticate other than current EClient.

Since 3.4

### enum ECredentialsPromptFlags

    typedef enum {
    	E_CREDENTIALS_PROMPT_FLAG_REMEMBER_NEVER,
    	E_CREDENTIALS_PROMPT_FLAG_REMEMBER_SESSION,
    	E_CREDENTIALS_PROMPT_FLAG_REMEMBER_FOREVER,
    	E_CREDENTIALS_PROMPT_FLAG_REMEMBER_MASK = 0xf,

    	E_CREDENTIALS_PROMPT_FLAG_SECRET = 1 << 8, /* whether hide password letters in the UI */
    	E_CREDENTIALS_PROMPT_FLAG_REPROMPT = 1 << 9, /* automatically set when username and password is provided */
    	E_CREDENTIALS_PROMPT_FLAG_ONLINE = 1 << 10, /* only ask if we're online */
    	E_CREDENTIALS_PROMPT_FLAG_DISABLE_REMEMBER = 1 << 11, /* disable the 'remember password' checkbox */
    	E_CREDENTIALS_PROMPT_FLAG_PASSPHRASE = 1 << 12 /* We are asking a passphrase */
    } ECredentialsPromptFlags;

### Warning

`ECredentialsPromptFlags` is deprecated and should not be used in newly-written code.

FIXME Document me.

`E_CREDENTIALS_PROMPT_FLAG_REMEMBER_NEVER` |
`E_CREDENTIALS_PROMPT_FLAG_REMEMBER_SESSION` |
`E_CREDENTIALS_PROMPT_FLAG_REMEMBER_FOREVER` |
`E_CREDENTIALS_PROMPT_FLAG_REMEMBER_MASK` |
`E_CREDENTIALS_PROMPT_FLAG_SECRET` |
`E_CREDENTIALS_PROMPT_FLAG_REPROMPT` |
`E_CREDENTIALS_PROMPT_FLAG_ONLINE` |
`E_CREDENTIALS_PROMPT_FLAG_DISABLE_REMEMBER` |
`E_CREDENTIALS_PROMPT_FLAG_PASSPHRASE` |

Since 3.2

### e_credentials_new ()

    ECredentials *      e_credentials_new                   (void);

### Warning

`e_credentials_new` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_new_strv ()

    ECredentials *      e_credentials_new_strv              (const gchar * const *strv);

### Warning

`e_credentials_new_strv` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_new_args ()

    ECredentials *      e_credentials_new_args              (const gchar *key,
                                                             ...);

### Warning

`e_credentials_new_args` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_new_clone ()

    ECredentials *      e_credentials_new_clone             (const ECredentials *credentials);

### Warning

`e_credentials_new_clone` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_free ()

    void                e_credentials_free                  (ECredentials *credentials);

### Warning

`e_credentials_free` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_to_strv ()

    gchar **            e_credentials_to_strv               (const ECredentials *credentials);

### Warning

`e_credentials_to_strv` is deprecated and should not be used in newly-written code.

Returns `NULL`-terminated array of strings with keys and encoded values; To read them back pass this pointer to `e_credentials_new()`. As it returns newly allocated string then this should be freed with `g_strfreev()` when no longer needed.

`credentials` : | an ECredentials
Returns : | a `NULL`-terminated array of key/value strings. [transfer full]

Since 3.2

### e_credentials_set ()

    void                e_credentials_set                   (ECredentials *credentials,
                                                             const gchar *key,
                                                             const gchar *value);

### Warning

`e_credentials_set` is deprecated and should not be used in newly-written code.

Sets value for `key`, if `value` is `NULL` or an empty string then `key` is removed. The value is supposed to be in a clear form (unencoded). `key` cannot contain colon.

`credentials` : | an ECredentials
`key` : | a key string
`value` : | a value string

Since 3.2

### e_credentials_get ()

    gchar *             e_credentials_get                   (const ECredentials *credentials,
                                                             const gchar *key);

### Warning

`e_credentials_get` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_peek ()

    const gchar *       e_credentials_peek                  (ECredentials *credentials,
                                                             const gchar *key);

### Warning

`e_credentials_peek` is deprecated and should not be used in newly-written code.

Peeks at the value for `key`, in a clear form. The returned value is valid until free of the `credentials` structure or until the key value is rewritten by `e_credentials_set()`.

`credentials` : | an ECredentials
`key` : | a key string
Returns : | the value for `key`

Since 3.2

### e_credentials_equal ()

    gboolean            e_credentials_equal                 (const ECredentials *credentials1,
                                                             const ECredentials *credentials2);

### Warning

`e_credentials_equal` is deprecated and should not be used in newly-written code.

Returns whether two ECredential structures contain the same keys with same values.

`credentials1` : | an ECredentials
`credentials2` : | another ECredentials
Returns : | `TRUE` if they are equal, `FALSE` otherwise

Since 3.2

### e_credentials_equal_keys ()

    gboolean            e_credentials_equal_keys            (const ECredentials *credentials1,
                                                             const ECredentials *credentials2,
                                                             const gchar *key1,
                                                             ...);

### Warning

`e_credentials_equal_keys` is deprecated and should not be used in newly-written code.

Returns whether two ECredentials structures have the same keys. Key names are NULL-terminated.

`credentials1` : | an ECredentials
`credentials2` : | another ECredentials
Returns : | `TRUE` if the key sets match, `FALSE` otherwise

Since 3.2

### e_credentials_has_key ()

    gboolean            e_credentials_has_key               (const ECredentials *credentials,
                                                             const gchar *key);

### Warning

`e_credentials_has_key` is deprecated and should not be used in newly-written code.

Returns whether `credentials` contains `key`.

`credentials` : | an ECredentials
`key` : | a key string
Returns : | `TRUE` if `credentials` contains `key`, `FALSE` otherwise

Since 3.2

### e_credentials_keys_size ()

    guint               e_credentials_keys_size             (const ECredentials *credentials);

### Warning

`e_credentials_keys_size` is deprecated and should not be used in newly-written code.

Returns the number of keys in `credentials`.

`credentials` : | an ECredentials
Returns : | the number of keys in `credentials`

Since 3.2

### e_credentials_list_keys ()

    GSList *            e_credentials_list_keys             (const ECredentials *credentials);

### Warning

`e_credentials_list_keys` is deprecated and should not be used in newly-written code.

Returns a newly-allocated GSList of key names stored in `credentials`. The key names are internal credentials values and should not be modified or freed. Free the list with `g_slist_free()` when no longer needed.

`credentials` : | an ECredentials
Returns : | a newly-allocated GSList of key names. [transfer container][element-type utf8]

Since 3.2

### e_credentials_clear ()

    void                e_credentials_clear                 (ECredentials *credentials);

### Warning

`e_credentials_clear` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_clear_peek ()

    void                e_credentials_clear_peek            (ECredentials *credentials);

### Warning

`e_credentials_clear_peek` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_util_safe_free_string ()

    void                e_credentials_util_safe_free_string (gchar *str);

### Warning

`e_credentials_util_safe_free_string` is deprecated and should not be used in newly-written code.

FIXME Document me.

Since 3.2

### e_credentials_util_prompt_flags_to_string ()

    gchar *             e_credentials_util_prompt_flags_to_string
                                                            (guint prompt_flags);

### Warning

`e_credentials_util_prompt_flags_to_string` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2

### e_credentials_util_string_to_prompt_flags ()

    guint               e_credentials_util_string_to_prompt_flags
                                                            (const gchar *prompt_flags_string);

### Warning

`e_credentials_util_string_to_prompt_flags` is deprecated and should not be used in newly-written code.

FIXME: Document me.

Since 3.2