diff options
author | Simo Sorce <simo@redhat.com> | 2012-03-02 18:27:49 -0500 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2012-07-20 14:02:31 -0400 |
commit | 25ee704e83c2c63d4b5ecd12ea31c1979239041e (patch) | |
tree | 7ea38c92327728895db52067bb15c19f567f56c7 /src/lib/gssapi/generic/gssapi_ext.h | |
parent | 6892e2453fa1865f17f7372519c74ce7ad5f9503 (diff) | |
download | krb5-25ee704e83c2c63d4b5ecd12ea31c1979239041e.tar.gz krb5-25ee704e83c2c63d4b5ecd12ea31c1979239041e.tar.xz krb5-25ee704e83c2c63d4b5ecd12ea31c1979239041e.zip |
Introduce credential store extensions
Add new APIs gss_acquire_cred_from, gss_add_cred_from, and
gss_store_cred_into, which take additional argments to specify the
location of the credential storage using a key-value map, where keys
are interpreted by the mechanisms.
ticket: 7217 (new)
Diffstat (limited to 'src/lib/gssapi/generic/gssapi_ext.h')
-rw-r--r-- | src/lib/gssapi/generic/gssapi_ext.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/lib/gssapi/generic/gssapi_ext.h b/src/lib/gssapi/generic/gssapi_ext.h index b4f8a77ad..05f1ed7fb 100644 --- a/src/lib/gssapi/generic/gssapi_ext.h +++ b/src/lib/gssapi/generic/gssapi_ext.h @@ -461,6 +461,62 @@ int KRB5_CALLCONV gss_oid_equal gss_const_OID /* second_oid */ ); +/* Credential store extensions */ + +struct gss_key_value_element_struct { + const char *key; + const char *value; +}; +typedef struct gss_key_value_element_struct gss_key_value_element_desc; + +struct gss_key_value_set_struct { + OM_uint32 count; + gss_key_value_element_desc *elements; +}; +typedef struct gss_key_value_set_struct gss_key_value_set_desc; +typedef const gss_key_value_set_desc *gss_const_key_value_set_t; + +#define GSS_C_NO_CRED_STORE ((gss_const_key_value_set_t) 0) + +OM_uint32 KRB5_CALLCONV +gss_acquire_cred_from( + OM_uint32 *, /* minor_status */ + gss_name_t, /* desired_name */ + OM_uint32, /* time_req */ + gss_OID_set, /* desired_mechs */ + gss_cred_usage_t, /* cred_usage */ + gss_const_key_value_set_t, /* cred_store */ + gss_cred_id_t *, /* output_cred_handle */ + gss_OID_set *, /* actual_mechs */ + OM_uint32 *); /* time_rec */ + +OM_uint32 KRB5_CALLCONV +gss_add_cred_from( + OM_uint32 *, /* minor_status */ + gss_cred_id_t, /* input_cred_handle */ + gss_name_t, /* desired_name */ + gss_OID, /* desired_mech */ + gss_cred_usage_t, /* cred_usage */ + OM_uint32, /* initiator_time_req */ + OM_uint32, /* acceptor_time_req */ + gss_const_key_value_set_t, /* cred_store */ + gss_cred_id_t *, /* output_cred_handle */ + gss_OID_set *, /* actual_mechs */ + OM_uint32 *, /* initiator_time_rec */ + OM_uint32 *); /* acceptor_time_rec */ + +OM_uint32 KRB5_CALLCONV +gss_store_cred_into( + OM_uint32 *, /* minor_status */ + gss_cred_id_t, /* input_cred_handle */ + gss_cred_usage_t, /* input_usage */ + gss_OID, /* desired_mech */ + OM_uint32, /* overwrite_cred */ + OM_uint32, /* default_cred */ + gss_const_key_value_set_t, /* cred_store */ + gss_OID_set *, /* elements_stored */ + gss_cred_usage_t *); /* cred_usage_stored */ + #ifdef __cplusplus } #endif |