}
c->call_id = 1;
+ c->security_state.auth_type = DCERPC_AUTH_TYPE_NONE;
+ c->security_state.auth_level = DCERPC_AUTH_LEVEL_NONE;
+ c->security_state.auth_context_id = 0;
c->security_state.auth_info = NULL;
c->security_state.session_key = dcerpc_generic_session_key;
c->security_state.generic_state = NULL;
struct gensec_settings;
struct cli_credentials;
struct dcecli_security {
+ enum dcerpc_AuthType auth_type;
+ enum dcerpc_AuthLevel auth_level;
+ uint32_t auth_context_id;
struct dcerpc_auth *auth_info;
struct gensec_security *generic_state;
return c;
}
+ sec->auth_type = auth_type;
+ sec->auth_level = auth_level,
+ sec->auth_context_id = random();
+
sec->auth_info = talloc(p, struct dcerpc_auth);
if (composite_nomem(sec->auth_info, c)) return c;
- sec->auth_info->auth_type = auth_type;
- sec->auth_info->auth_level = auth_level,
+ sec->auth_info->auth_type = sec->auth_type;
+ sec->auth_info->auth_level = sec->auth_level,
sec->auth_info->auth_pad_length = 0;
sec->auth_info->auth_reserved = 0;
- sec->auth_info->auth_context_id = random();
+ sec->auth_info->auth_context_id = sec->auth_context_id;
sec->auth_info->credentials = data_blob(NULL, 0);
/* The status value here, from GENSEC is vital to the security