spnego 3297 source3/include/proto.h ssize_t write_spnego_data(DATA_BLOB *blob, SPNEGO_DATA *spnego);
spnego 3298 source3/include/proto.h bool free_spnego_data(SPNEGO_DATA *spnego);
spnego 291 source3/libsmb/spnego.c ssize_t write_spnego_data(DATA_BLOB *blob, SPNEGO_DATA *spnego)
spnego 301 source3/libsmb/spnego.c switch (spnego->type) {
spnego 305 source3/libsmb/spnego.c write_negTokenInit(asn1, &spnego->negTokenInit);
spnego 309 source3/libsmb/spnego.c write_negTokenTarg(asn1, &spnego->negTokenTarg);
spnego 325 source3/libsmb/spnego.c bool free_spnego_data(SPNEGO_DATA *spnego)
spnego 329 source3/libsmb/spnego.c if (!spnego) goto out;
spnego 331 source3/libsmb/spnego.c switch(spnego->type) {
spnego 333 source3/libsmb/spnego.c if (spnego->negTokenInit.mechTypes) {
spnego 335 source3/libsmb/spnego.c for (i = 0; spnego->negTokenInit.mechTypes[i]; i++) {
spnego 336 source3/libsmb/spnego.c talloc_free(CONST_DISCARD(char *,spnego->negTokenInit.mechTypes[i]));
spnego 338 source3/libsmb/spnego.c talloc_free(spnego->negTokenInit.mechTypes);
spnego 340 source3/libsmb/spnego.c data_blob_free(&spnego->negTokenInit.mechToken);
spnego 341 source3/libsmb/spnego.c data_blob_free(&spnego->negTokenInit.mechListMIC);
spnego 344 source3/libsmb/spnego.c if (spnego->negTokenTarg.supportedMech) {
spnego 345 source3/libsmb/spnego.c talloc_free(spnego->negTokenTarg.supportedMech);
spnego 347 source3/libsmb/spnego.c data_blob_free(&spnego->negTokenTarg.responseToken);
spnego 348 source3/libsmb/spnego.c data_blob_free(&spnego->negTokenTarg.mechListMIC);
spnego 354 source3/libsmb/spnego.c ZERO_STRUCTP(spnego);
spnego 1062 source3/utils/ntlm_auth.c SPNEGO_DATA spnego;
spnego 1069 source3/utils/ntlm_auth.c ZERO_STRUCT(spnego);
spnego 1083 source3/utils/ntlm_auth.c spnego.type = SPNEGO_NEG_TOKEN_INIT;
spnego 1084 source3/utils/ntlm_auth.c spnego.negTokenInit.mechTypes = SMB_XMALLOC_ARRAY(const char *, 2);
spnego 1086 source3/utils/ntlm_auth.c spnego.negTokenInit.mechTypes[0] = smb_xstrdup(OID_KERBEROS5_OLD);
spnego 1087 source3/utils/ntlm_auth.c spnego.negTokenInit.mechTypes[1] = smb_xstrdup(OID_NTLMSSP);
spnego 1088 source3/utils/ntlm_auth.c spnego.negTokenInit.mechTypes[2] = NULL;
spnego 1090 source3/utils/ntlm_auth.c spnego.negTokenInit.mechTypes[0] = smb_xstrdup(OID_NTLMSSP);
spnego 1091 source3/utils/ntlm_auth.c spnego.negTokenInit.mechTypes[1] = NULL;
spnego 1095 source3/utils/ntlm_auth.c spnego.negTokenInit.mechListMIC = data_blob(principal,
spnego 1098 source3/utils/ntlm_auth.c len = write_spnego_data(&token, &spnego);
spnego 1099 source3/utils/ntlm_auth.c free_spnego_data(&spnego);
spnego 1364 source3/utils/ntlm_auth.c static bool manage_client_ntlmssp_init(SPNEGO_DATA spnego)
spnego 1399 source3/utils/ntlm_auth.c spnego.type = SPNEGO_NEG_TOKEN_INIT;
spnego 1400 source3/utils/ntlm_auth.c spnego.negTokenInit.mechTypes = my_mechs;
spnego 1401 source3/utils/ntlm_auth.c spnego.negTokenInit.reqFlags = 0;
spnego 1402 source3/utils/ntlm_auth.c spnego.negTokenInit.mechListMIC = null_blob;
spnego 1405 source3/utils/ntlm_auth.c &spnego.negTokenInit.mechToken);
spnego 1415 source3/utils/ntlm_auth.c write_spnego_data(&to_server, &spnego);
spnego 1416 source3/utils/ntlm_auth.c data_blob_free(&spnego.negTokenInit.mechToken);
spnego 1425 source3/utils/ntlm_auth.c static void manage_client_ntlmssp_targ(SPNEGO_DATA spnego)
spnego 1441 source3/utils/ntlm_auth.c if (spnego.negTokenTarg.negResult == SPNEGO_REJECT) {
spnego 1447 source3/utils/ntlm_auth.c if (spnego.negTokenTarg.negResult == SPNEGO_ACCEPT_COMPLETED) {
spnego 1454 source3/utils/ntlm_auth.c spnego.negTokenTarg.responseToken,
spnego 1468 source3/utils/ntlm_auth.c spnego.type = SPNEGO_NEG_TOKEN_TARG;
spnego 1469 source3/utils/ntlm_auth.c spnego.negTokenTarg.negResult = SPNEGO_ACCEPT_INCOMPLETE;
spnego 1470 source3/utils/ntlm_auth.c spnego.negTokenTarg.supportedMech = (char *)OID_NTLMSSP;
spnego 1471 source3/utils/ntlm_auth.c spnego.negTokenTarg.responseToken = request;
spnego 1472 source3/utils/ntlm_auth.c spnego.negTokenTarg.mechListMIC = null_blob;
spnego 1474 source3/utils/ntlm_auth.c write_spnego_data(&to_server, &spnego);
spnego 1486 source3/utils/ntlm_auth.c static bool manage_client_krb5_init(SPNEGO_DATA spnego)
spnego 1498 source3/utils/ntlm_auth.c if ( (spnego.negTokenInit.mechListMIC.data == NULL) ||
spnego 1499 source3/utils/ntlm_auth.c (spnego.negTokenInit.mechListMIC.length == 0) ) {
spnego 1505 source3/utils/ntlm_auth.c spnego.negTokenInit.mechListMIC.length+1);
spnego 1512 source3/utils/ntlm_auth.c memcpy(principal, spnego.negTokenInit.mechListMIC.data,
spnego 1513 source3/utils/ntlm_auth.c spnego.negTokenInit.mechListMIC.length);
spnego 1514 source3/utils/ntlm_auth.c principal[spnego.negTokenInit.mechListMIC.length] = '\0';
spnego 1575 source3/utils/ntlm_auth.c static void manage_client_krb5_targ(SPNEGO_DATA spnego)
spnego 1577 source3/utils/ntlm_auth.c switch (spnego.negTokenTarg.negResult) {
spnego 1603 source3/utils/ntlm_auth.c SPNEGO_DATA spnego;
spnego 1649 source3/utils/ntlm_auth.c len = read_spnego_data(talloc_tos(), request, &spnego);
spnego 1658 source3/utils/ntlm_auth.c if (spnego.type == SPNEGO_NEG_TOKEN_INIT) {
spnego 1662 source3/utils/ntlm_auth.c const char **mechType = (const char **)spnego.negTokenInit.mechTypes;
spnego 1669 source3/utils/ntlm_auth.c if (manage_client_krb5_init(spnego))
spnego 1675 source3/utils/ntlm_auth.c if (manage_client_ntlmssp_init(spnego))
spnego 1687 source3/utils/ntlm_auth.c if (spnego.type == SPNEGO_NEG_TOKEN_TARG) {
spnego 1689 source3/utils/ntlm_auth.c if (spnego.negTokenTarg.supportedMech == NULL) {
spnego 1694 source3/utils/ntlm_auth.c switch (spnego.negTokenTarg.negResult) {
spnego 1704 source3/utils/ntlm_auth.c spnego.negTokenTarg.negResult));
spnego 1714 source3/utils/ntlm_auth.c if (strcmp(spnego.negTokenTarg.supportedMech,
spnego 1716 source3/utils/ntlm_auth.c manage_client_ntlmssp_targ(spnego);
spnego 1721 source3/utils/ntlm_auth.c if (strcmp(spnego.negTokenTarg.supportedMech,
spnego 1723 source3/utils/ntlm_auth.c manage_client_krb5_targ(spnego);
spnego 1735 source3/utils/ntlm_auth.c free_spnego_data(&spnego);
spnego 729 source4/auth/gensec/spnego.c struct spnego_data spnego;
spnego 750 source4/auth/gensec/spnego.c len = spnego_read_data(gensec_security, in, &spnego);
spnego 758 source4/auth/gensec/spnego.c if (spnego.type != spnego_state->expected_packet) {
spnego 759 source4/auth/gensec/spnego.c DEBUG(1, ("Invalid SPNEGO request: %d, expected %d\n", spnego.type,
spnego 762 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 769 source4/auth/gensec/spnego.c spnego.negTokenInit.mechTypes,
spnego 770 source4/auth/gensec/spnego.c spnego.negTokenInit.mechToken,
spnego 781 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 809 source4/auth/gensec/spnego.c len = spnego_read_data(gensec_security, in, &spnego);
spnego 818 source4/auth/gensec/spnego.c if (spnego.type != spnego_state->expected_packet) {
spnego 819 source4/auth/gensec/spnego.c DEBUG(1, ("Invalid SPNEGO request: %d, expected %d\n", spnego.type,
spnego 822 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 826 source4/auth/gensec/spnego.c if (spnego.negTokenInit.targetPrincipal) {
spnego 827 source4/auth/gensec/spnego.c DEBUG(5, ("Server claims it's principal name is %s\n", spnego.negTokenInit.targetPrincipal));
spnego 828 source4/auth/gensec/spnego.c gensec_set_target_principal(gensec_security, spnego.negTokenInit.targetPrincipal);
spnego 834 source4/auth/gensec/spnego.c spnego.negTokenInit.mechTypes,
spnego 835 source4/auth/gensec/spnego.c spnego.negTokenInit.mechToken,
spnego 839 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 864 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 876 source4/auth/gensec/spnego.c len = spnego_read_data(gensec_security, in, &spnego);
spnego 885 source4/auth/gensec/spnego.c if (spnego.type != spnego_state->expected_packet) {
spnego 886 source4/auth/gensec/spnego.c DEBUG(1, ("Invalid SPNEGO request: %d, expected %d\n", spnego.type,
spnego 889 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 895 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 901 source4/auth/gensec/spnego.c spnego.negTokenTarg.responseToken,
spnego 903 source4/auth/gensec/spnego.c if (NT_STATUS_IS_OK(nt_status) && spnego.negTokenTarg.mechListMIC.length > 0) {
spnego 911 source4/auth/gensec/spnego.c &spnego.negTokenTarg.mechListMIC);
spnego 939 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 950 source4/auth/gensec/spnego.c len = spnego_read_data(gensec_security, in, &spnego);
spnego 959 source4/auth/gensec/spnego.c if (spnego.type != spnego_state->expected_packet) {
spnego 960 source4/auth/gensec/spnego.c DEBUG(1, ("Invalid SPNEGO request: %d, expected %d\n", spnego.type,
spnego 963 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 967 source4/auth/gensec/spnego.c if (spnego.negTokenTarg.negResult == SPNEGO_REJECT) {
spnego 968 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 973 source4/auth/gensec/spnego.c if ((spnego.negTokenTarg.negResult == SPNEGO_ACCEPT_INCOMPLETE) &&
spnego 974 source4/auth/gensec/spnego.c spnego.negTokenTarg.supportedMech &&
spnego 975 source4/auth/gensec/spnego.c strcmp(spnego.negTokenTarg.supportedMech, spnego_state->neg_oid) != 0) {
spnego 977 source4/auth/gensec/spnego.c gensec_get_name_by_oid(gensec_security, spnego.negTokenTarg.supportedMech),
spnego 985 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 990 source4/auth/gensec/spnego.c spnego.negTokenTarg.supportedMech);
spnego 992 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 998 source4/auth/gensec/spnego.c spnego.negTokenTarg.responseToken,
spnego 1000 source4/auth/gensec/spnego.c spnego_state->neg_oid = talloc_strdup(spnego_state, spnego.negTokenTarg.supportedMech);
spnego 1002 source4/auth/gensec/spnego.c if (spnego.negTokenTarg.negResult != SPNEGO_ACCEPT_COMPLETED) {
spnego 1005 source4/auth/gensec/spnego.c } else if (spnego.negTokenTarg.responseToken.length) {
spnego 1011 source4/auth/gensec/spnego.c if (NT_STATUS_IS_OK(nt_status) && spnego.negTokenTarg.mechListMIC.length > 0) {
spnego 1018 source4/auth/gensec/spnego.c &spnego.negTokenTarg.mechListMIC);
spnego 1029 source4/auth/gensec/spnego.c spnego.negTokenTarg.responseToken,
spnego 1054 source4/auth/gensec/spnego.c spnego_free_data(&spnego);
spnego 1084 source4/auth/gensec/spnego.c if (spnego.negTokenTarg.negResult != SPNEGO_ACCEPT_COMPLETED) {
spnego 313 source4/auth/gensec/spnego_parse.c ssize_t spnego_write_data(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct spnego_data *spnego)
spnego 322 source4/auth/gensec/spnego_parse.c switch (spnego->type) {
spnego 326 source4/auth/gensec/spnego_parse.c write_negTokenInit(asn1, &spnego->negTokenInit);
spnego 330 source4/auth/gensec/spnego_parse.c write_negTokenTarg(asn1, &spnego->negTokenTarg);
spnego 346 source4/auth/gensec/spnego_parse.c bool spnego_free_data(struct spnego_data *spnego)
spnego 350 source4/auth/gensec/spnego_parse.c if (!spnego) goto out;
spnego 352 source4/auth/gensec/spnego_parse.c switch(spnego->type) {
spnego 354 source4/auth/gensec/spnego_parse.c if (spnego->negTokenInit.mechTypes) {
spnego 355 source4/auth/gensec/spnego_parse.c talloc_free(spnego->negTokenInit.mechTypes);
spnego 357 source4/auth/gensec/spnego_parse.c data_blob_free(&spnego->negTokenInit.mechToken);
spnego 358 source4/auth/gensec/spnego_parse.c data_blob_free(&spnego->negTokenInit.mechListMIC);
spnego 359 source4/auth/gensec/spnego_parse.c talloc_free(spnego->negTokenInit.targetPrincipal);
spnego 362 source4/auth/gensec/spnego_parse.c if (spnego->negTokenTarg.supportedMech) {
spnego 363 source4/auth/gensec/spnego_parse.c talloc_free(discard_const(spnego->negTokenTarg.supportedMech));
spnego 365 source4/auth/gensec/spnego_parse.c data_blob_free(&spnego->negTokenTarg.responseToken);
spnego 366 source4/auth/gensec/spnego_parse.c data_blob_free(&spnego->negTokenTarg.mechListMIC);
spnego 372 source4/auth/gensec/spnego_parse.c ZERO_STRUCTP(spnego);
spnego 130 source4/libcli/raw/clisession.c SSVAL(req->out.vwv, VWV(2), parms->spnego.in.bufsize);
spnego 131 source4/libcli/raw/clisession.c SSVAL(req->out.vwv, VWV(3), parms->spnego.in.mpx_max);
spnego 132 source4/libcli/raw/clisession.c SSVAL(req->out.vwv, VWV(4), parms->spnego.in.vc_num);
spnego 133 source4/libcli/raw/clisession.c SIVAL(req->out.vwv, VWV(5), parms->spnego.in.sesskey);
spnego 134 source4/libcli/raw/clisession.c SSVAL(req->out.vwv, VWV(7), parms->spnego.in.secblob.length);
spnego 136 source4/libcli/raw/clisession.c SIVAL(req->out.vwv, VWV(10), parms->spnego.in.capabilities);
spnego 137 source4/libcli/raw/clisession.c smbcli_req_append_blob(req, &parms->spnego.in.secblob);
spnego 138 source4/libcli/raw/clisession.c smbcli_req_append_string(req, parms->spnego.in.os, STR_TERMINATE);
spnego 139 source4/libcli/raw/clisession.c smbcli_req_append_string(req, parms->spnego.in.lanman, STR_TERMINATE);
spnego 140 source4/libcli/raw/clisession.c smbcli_req_append_string(req, parms->spnego.in.workgroup, STR_TERMINATE);
spnego 206 source4/libcli/raw/clisession.c ZERO_STRUCT(parms->spnego.out);
spnego 207 source4/libcli/raw/clisession.c parms->spnego.out.vuid = SVAL(req->in.hdr, HDR_UID);
spnego 208 source4/libcli/raw/clisession.c parms->spnego.out.action = SVAL(req->in.vwv, VWV(2));
spnego 215 source4/libcli/raw/clisession.c parms->spnego.out.secblob = smbcli_req_pull_blob(&req->in.bufinfo, mem_ctx, p, len);
spnego 216 source4/libcli/raw/clisession.c p += parms->spnego.out.secblob.length;
spnego 217 source4/libcli/raw/clisession.c p += smbcli_req_pull_string(&req->in.bufinfo, mem_ctx, &parms->spnego.out.os, p, -1, STR_TERMINATE);
spnego 218 source4/libcli/raw/clisession.c p += smbcli_req_pull_string(&req->in.bufinfo, mem_ctx, &parms->spnego.out.lanman, p, -1, STR_TERMINATE);
spnego 219 source4/libcli/raw/clisession.c p += smbcli_req_pull_string(&req->in.bufinfo, mem_ctx, &parms->spnego.out.workgroup, p, -1, STR_TERMINATE);
spnego 379 source4/libcli/raw/interfaces.h } spnego;
spnego 151 source4/libcli/smb_composite/sesssetup.c state->io->out.vuid = state->setup.spnego.out.vuid;
spnego 181 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.out.secblob,
spnego 182 source4/libcli/smb_composite/sesssetup.c &state->setup.spnego.in.secblob);
spnego 189 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.secblob = data_blob(NULL, 0);
spnego 193 source4/libcli/smb_composite/sesssetup.c if (state->setup.spnego.in.secblob.length) {
spnego 204 source4/libcli/smb_composite/sesssetup.c if (state->setup.spnego.in.secblob.length) {
spnego 398 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.level = RAW_SESSSETUP_SPNEGO;
spnego 399 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.bufsize = session->transport->options.max_xmit;
spnego 400 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.mpx_max = session->transport->options.max_mux;
spnego 401 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.vc_num = 1;
spnego 402 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.sesskey = io->in.sesskey;
spnego 403 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.capabilities = io->in.capabilities;
spnego 404 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.os = "Unix";
spnego 405 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.lanman = talloc_asprintf(state, "Samba %s", SAMBA_VERSION_STRING);
spnego 406 source4/libcli/smb_composite/sesssetup.c state->setup.spnego.in.workgroup = io->in.workgroup;
spnego 468 source4/libcli/smb_composite/sesssetup.c &state->setup.spnego.in.secblob);
spnego 472 source4/libcli/smb_composite/sesssetup.c &state->setup.spnego.in.secblob);
spnego 1831 source4/smb_server/smb/reply.c smbsrv_setup_reply(req, 4, io->spnego.out.secblob.length);
spnego 1839 source4/smb_server/smb/reply.c SSVAL(req->out.vwv, VWV(2), io->spnego.out.action);
spnego 1840 source4/smb_server/smb/reply.c SSVAL(req->out.vwv, VWV(3), io->spnego.out.secblob.length);
spnego 1842 source4/smb_server/smb/reply.c SSVAL(req->out.hdr, HDR_UID, io->spnego.out.vuid);
spnego 1844 source4/smb_server/smb/reply.c memcpy(req->out.data, io->spnego.out.secblob.data, io->spnego.out.secblob.length);
spnego 1845 source4/smb_server/smb/reply.c req_push_str(req, NULL, io->spnego.out.os, -1, STR_TERMINATE);
spnego 1846 source4/smb_server/smb/reply.c req_push_str(req, NULL, io->spnego.out.lanman, -1, STR_TERMINATE);
spnego 1847 source4/smb_server/smb/reply.c req_push_str(req, NULL, io->spnego.out.workgroup, -1, STR_TERMINATE);
spnego 1963 source4/smb_server/smb/reply.c io->spnego.level = RAW_SESSSETUP_SPNEGO;
spnego 1966 source4/smb_server/smb/reply.c io->spnego.in.bufsize = SVAL(req->in.vwv, VWV(2));
spnego 1967 source4/smb_server/smb/reply.c io->spnego.in.mpx_max = SVAL(req->in.vwv, VWV(3));
spnego 1968 source4/smb_server/smb/reply.c io->spnego.in.vc_num = SVAL(req->in.vwv, VWV(4));
spnego 1969 source4/smb_server/smb/reply.c io->spnego.in.sesskey = IVAL(req->in.vwv, VWV(5));
spnego 1971 source4/smb_server/smb/reply.c io->spnego.in.capabilities = IVAL(req->in.vwv, VWV(10));
spnego 1974 source4/smb_server/smb/reply.c if (!req_pull_blob(&req->in.bufinfo, p, blob_len, &io->spnego.in.secblob)) {
spnego 1980 source4/smb_server/smb/reply.c p += req_pull_string(&req->in.bufinfo, &io->spnego.in.os, p, -1, STR_TERMINATE);
spnego 1981 source4/smb_server/smb/reply.c p += req_pull_string(&req->in.bufinfo, &io->spnego.in.lanman, p, -1, STR_TERMINATE);
spnego 1982 source4/smb_server/smb/reply.c p += req_pull_string(&req->in.bufinfo, &io->spnego.in.workgroup, p, -1, STR_TERMINATE);
spnego 303 source4/smb_server/smb/sesssetup.c status = gensec_update_recv(greq, req, &sess->spnego.out.secblob);
spnego 326 source4/smb_server/smb/sesssetup.c sess->spnego.out.vuid = smb_sess->vuid;
spnego 346 source4/smb_server/smb/sesssetup.c sess->spnego.out.vuid = 0;
spnego 347 source4/smb_server/smb/sesssetup.c sess->spnego.out.action = 0;
spnego 350 source4/smb_server/smb/sesssetup.c &sess->spnego.out.os,
spnego 351 source4/smb_server/smb/sesssetup.c &sess->spnego.out.lanman,
spnego 352 source4/smb_server/smb/sesssetup.c &sess->spnego.out.workgroup);
spnego 355 source4/smb_server/smb/sesssetup.c req->smb_conn->negotiate.max_send = sess->spnego.in.bufsize;
spnego 356 source4/smb_server/smb/sesssetup.c req->smb_conn->negotiate.client_caps = sess->spnego.in.capabilities;
spnego 412 source4/smb_server/smb/sesssetup.c gensec_update_send(smb_sess->gensec_ctx, sess->spnego.in.secblob,