The prefix element specifies the prefix name of the the new credential cache type. For example, if the prefix name is ``FILE'', then if the program calls krb5_cc_resolve with a credential cache name such as ``FILE:/tmp/krb5_cc_15806'', then krb5_cc_resolve will call the resolve function (as defined by the krb5_cc_ops structure where the prefix element is ``FILE'') and pass it the argument ``/tmp/krb5_cc_15806''.
Before a new credentials cache type can be recognized by krb5_cc_resolve, it must be registered with the Kerberos library by calling krb5_cc_register.
typedef struct _krb5_cc_ops {
char *prefix;
char *(*get_name)((krb5_ccache));
krb5_error_code (*resolve)((krb5_ccache *, char *));
krb5_error_code (*gen_new)((krb5_ccache *));
krb5_error_code (*init)((krb5_ccache, krb5_principal));
krb5_error_code (*destroy)((krb5_ccache));
krb5_error_code (*close)((krb5_ccache));
krb5_error_code (*store)((krb5_ccache, krb5_creds *));
krb5_error_code (*retrieve)((krb5_ccache, krb5_flags,
krb5_creds *, krb5_creds *));
krb5_error_code (*get_princ)((krb5_ccache,
krb5_principal *));
krb5_error_code (*get_first)((krb5_ccache,
krb5_cc_cursor *));
krb5_error_code (*get_next)((krb5_ccache, krb5_cc_cursor *,
krb5_creds *));
krb5_error_code (*end_get)((krb5_ccache, krb5_cc_cursor *));
krb5_error_code (*remove_cred)((krb5_ccache, krb5_flags,
krb5_creds *));
krb5_error_code (*set_flags)((krb5_ccache, krb5_flags));
} krb5_cc_ops;