(gss_krb5_extract_authz_data_from_sec_context):

return the kerberos authorizationdata, from idea of Luke Howard


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12714 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2003-08-31 19:52:16 +00:00
parent 6a722501fe
commit 4ddc6a08ed
4 changed files with 90 additions and 0 deletions

View File

@@ -60,3 +60,41 @@ gss_krb5_copy_ccache(OM_uint32 *minor_status,
*minor_status = 0;
return GSS_S_COMPLETE;
}
OM_uint32
gss_krb5_extract_authz_data_from_sec_context(OM_uint32 *minor_status,
gss_ctx_id_t context_handle,
int ad_type,
gss_buffer_t ad_data)
{
krb5_error_code ret;
krb5_data data;
ad_data->value = NULL;
ad_data->length = 0;
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
ret = krb5_ticket_get_authorization_data_type(gssapi_krb5_context,
context_handle->ticket,
ad_type,
&data);
HEIMDAL_MUTEX_unlock(&context_handle->ctx_id_mutex);
if (ret) {
*minor_status = ret;
return GSS_S_FAILURE;
}
ad_data->value = malloc(data.length);
if (ad_data->value == NULL) {
krb5_data_free(&data);
*minor_status = ENOMEM;
return GSS_S_FAILURE;
}
ad_data->length = data.length;
memcpy(ad_data->value, data.data, ad_data->length);
krb5_data_free(&data);
*minor_status = 0;
return GSS_S_COMPLETE;
}

View File

@@ -760,6 +760,13 @@ OM_uint32 gss_krb5_copy_ccache
gss_cred_id_t /*cred*/,
struct krb5_ccache_data */*out*/);
OM_uint32
gss_krb5_extract_authz_data_from_sec_context
(OM_uint32 * /*minor_status*/,
gss_ctx_id_t /*context_handle*/,
int /*ad_type*/,
gss_buffer_t /*ad_data*/);
#define GSS_C_KRB5_COMPAT_DES3_MIC 1
OM_uint32

View File

@@ -60,3 +60,41 @@ gss_krb5_copy_ccache(OM_uint32 *minor_status,
*minor_status = 0;
return GSS_S_COMPLETE;
}
OM_uint32
gss_krb5_extract_authz_data_from_sec_context(OM_uint32 *minor_status,
gss_ctx_id_t context_handle,
int ad_type,
gss_buffer_t ad_data)
{
krb5_error_code ret;
krb5_data data;
ad_data->value = NULL;
ad_data->length = 0;
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
ret = krb5_ticket_get_authorization_data_type(gssapi_krb5_context,
context_handle->ticket,
ad_type,
&data);
HEIMDAL_MUTEX_unlock(&context_handle->ctx_id_mutex);
if (ret) {
*minor_status = ret;
return GSS_S_FAILURE;
}
ad_data->value = malloc(data.length);
if (ad_data->value == NULL) {
krb5_data_free(&data);
*minor_status = ENOMEM;
return GSS_S_FAILURE;
}
ad_data->length = data.length;
memcpy(ad_data->value, data.data, ad_data->length);
krb5_data_free(&data);
*minor_status = 0;
return GSS_S_COMPLETE;
}

View File

@@ -760,6 +760,13 @@ OM_uint32 gss_krb5_copy_ccache
gss_cred_id_t /*cred*/,
struct krb5_ccache_data */*out*/);
OM_uint32
gss_krb5_extract_authz_data_from_sec_context
(OM_uint32 * /*minor_status*/,
gss_ctx_id_t /*context_handle*/,
int /*ad_type*/,
gss_buffer_t /*ad_data*/);
#define GSS_C_KRB5_COMPAT_DES3_MIC 1
OM_uint32