version 1.28, 2021/01/27 10:05:28 |
version 1.29, 2024/02/01 02:37:33 |
|
|
gss_OID_desc spnego_oid = {6, (void *)"\x2B\x06\x01\x05\x05\x02"}; |
gss_OID_desc spnego_oid = {6, (void *)"\x2B\x06\x01\x05\x05\x02"}; |
|
|
/* RFC 4462 says we MUST NOT do SPNEGO */ |
/* RFC 4462 says we MUST NOT do SPNEGO */ |
if (oid->length == spnego_oid.length && |
if (oid->length == spnego_oid.length && |
(memcmp(oid->elements, spnego_oid.elements, oid->length) == 0)) |
(memcmp(oid->elements, spnego_oid.elements, oid->length) == 0)) |
return 0; /* false */ |
return 0; /* false */ |
|
|
|
|
ssh_gssapi_set_oid(*ctx, oid); |
ssh_gssapi_set_oid(*ctx, oid); |
major = ssh_gssapi_import_name(*ctx, host); |
major = ssh_gssapi_import_name(*ctx, host); |
if (!GSS_ERROR(major)) { |
if (!GSS_ERROR(major)) { |
major = ssh_gssapi_init_ctx(*ctx, 0, GSS_C_NO_BUFFER, &token, |
major = ssh_gssapi_init_ctx(*ctx, 0, GSS_C_NO_BUFFER, &token, |
NULL); |
NULL); |
gss_release_buffer(&minor, &token); |
gss_release_buffer(&minor, &token); |
if ((*ctx)->context != GSS_C_NO_CONTEXT) |
if ((*ctx)->context != GSS_C_NO_CONTEXT) |
|
|
GSS_C_NO_BUFFER); |
GSS_C_NO_BUFFER); |
} |
} |
|
|
if (GSS_ERROR(major)) |
if (GSS_ERROR(major)) |
ssh_gssapi_delete_ctx(ctx); |
ssh_gssapi_delete_ctx(ctx); |
|
|
return (!GSS_ERROR(major)); |
return (!GSS_ERROR(major)); |