gssapi/krb5/{export,import}_sec_context: make smaller tokens.

This commit is contained in:
Roland C. Dowdeswell
2021-08-02 22:55:40 +01:00
committed by Luke Howard
parent a2cfd2a25c
commit 80f3194a76
2 changed files with 10 additions and 56 deletions

View File

@@ -47,13 +47,10 @@ _gsskrb5_import_sec_context (
krb5_auth_context ac;
krb5_address local, remote;
krb5_address *localp, *remotep;
krb5_data data;
gss_buffer_desc buffer;
krb5_keyblock keyblock;
int32_t flags, tmp;
int64_t tmp64;
gsskrb5_ctx ctx;
gss_name_t name;
GSSAPI_KRB5_INIT (&context);
@@ -68,6 +65,9 @@ _gsskrb5_import_sec_context (
return GSS_S_FAILURE;
}
krb5_storage_set_byteorder(sp, KRB5_STORAGE_BYTEORDER_PACKED);
krb5_storage_set_flags(sp, KRB5_STORAGE_PRINCIPAL_NO_NAME_TYPE);
ctx = calloc(1, sizeof(*ctx));
if (ctx == NULL) {
*minor_status = ENOMEM;
@@ -160,43 +160,13 @@ _gsskrb5_import_sec_context (
/* names */
if (flags & SC_SOURCE_NAME) {
if (krb5_ret_data (sp, &data))
if (krb5_ret_principal(sp, &ctx->source))
goto failure;
buffer.value = data.data;
buffer.length = data.length;
ret = _gsskrb5_import_name (minor_status, &buffer, GSS_C_NT_EXPORT_NAME,
&name);
if (ret) {
ret = _gsskrb5_import_name (minor_status, &buffer, GSS_C_NO_OID,
&name);
if (ret) {
krb5_data_free (&data);
goto failure;
}
}
ctx->source = (krb5_principal)name;
krb5_data_free (&data);
}
if (flags & SC_TARGET_NAME) {
if (krb5_ret_data (sp, &data) != 0)
if (krb5_ret_principal(sp, &ctx->target))
goto failure;
buffer.value = data.data;
buffer.length = data.length;
ret = _gsskrb5_import_name (minor_status, &buffer, GSS_C_NT_EXPORT_NAME,
&name);
if (ret) {
ret = _gsskrb5_import_name (minor_status, &buffer, GSS_C_NO_OID,
&name);
if (ret) {
krb5_data_free (&data);
goto failure;
}
}
ctx->target = (krb5_principal)name;
krb5_data_free (&data);
}
if (krb5_ret_int32 (sp, &tmp))