mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
s3:ntlmssp: remove the typedef NTLMSSP_STATE
Andrew Bartlett
This commit is contained in:
parent
dee35f793c
commit
5b37cd23bf
@ -56,7 +56,7 @@ struct cli_pipe_auth_data {
|
||||
|
||||
union {
|
||||
struct schannel_state *schannel_auth;
|
||||
NTLMSSP_STATE *ntlmssp_state;
|
||||
struct ntlmssp_state *ntlmssp_state;
|
||||
struct kerberos_auth_struct *kerberos_auth;
|
||||
} a_u;
|
||||
};
|
||||
@ -172,7 +172,7 @@ struct smb_trans_enc_state {
|
||||
uint16 enc_ctx_num;
|
||||
bool enc_on;
|
||||
union {
|
||||
NTLMSSP_STATE *ntlmssp_state;
|
||||
struct ntlmssp_state *ntlmssp_state;
|
||||
#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5)
|
||||
struct smb_tran_enc_state_gss *gss_state;
|
||||
#endif
|
||||
|
@ -41,7 +41,7 @@ enum NTLM_MESSAGE_TYPE
|
||||
#define NTLMSSP_FEATURE_SIGN 0x00000002
|
||||
#define NTLMSSP_FEATURE_SEAL 0x00000004
|
||||
|
||||
typedef struct ntlmssp_state
|
||||
struct ntlmssp_state
|
||||
{
|
||||
unsigned int ref_count;
|
||||
enum ntlmssp_role role;
|
||||
@ -137,4 +137,4 @@ typedef struct ntlmssp_state
|
||||
response in at the time we want to process it.
|
||||
Store it here, until we need it */
|
||||
DATA_BLOB stored_response;
|
||||
} NTLMSSP_STATE;
|
||||
};
|
||||
|
@ -3213,43 +3213,43 @@ NTSTATUS nt_status_squash(NTSTATUS nt_status);
|
||||
/* The following definitions come from libsmb/ntlmssp.c */
|
||||
|
||||
void debug_ntlmssp_flags(uint32 neg_flags);
|
||||
NTSTATUS ntlmssp_set_username(NTLMSSP_STATE *ntlmssp_state, const char *user) ;
|
||||
NTSTATUS ntlmssp_set_hashes(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_set_username(struct ntlmssp_state *ntlmssp_state, const char *user) ;
|
||||
NTSTATUS ntlmssp_set_hashes(struct ntlmssp_state *ntlmssp_state,
|
||||
const unsigned char lm_hash[16],
|
||||
const unsigned char nt_hash[16]) ;
|
||||
NTSTATUS ntlmssp_set_password(NTLMSSP_STATE *ntlmssp_state, const char *password) ;
|
||||
NTSTATUS ntlmssp_set_domain(NTLMSSP_STATE *ntlmssp_state, const char *domain) ;
|
||||
NTSTATUS ntlmssp_set_workstation(NTLMSSP_STATE *ntlmssp_state, const char *workstation) ;
|
||||
NTSTATUS ntlmssp_store_response(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_set_password(struct ntlmssp_state *ntlmssp_state, const char *password) ;
|
||||
NTSTATUS ntlmssp_set_domain(struct ntlmssp_state *ntlmssp_state, const char *domain) ;
|
||||
NTSTATUS ntlmssp_set_workstation(struct ntlmssp_state *ntlmssp_state, const char *workstation) ;
|
||||
NTSTATUS ntlmssp_store_response(struct ntlmssp_state *ntlmssp_state,
|
||||
DATA_BLOB response) ;
|
||||
void ntlmssp_want_feature_list(NTLMSSP_STATE *ntlmssp_state, char *feature_list);
|
||||
void ntlmssp_want_feature(NTLMSSP_STATE *ntlmssp_state, uint32 feature);
|
||||
NTSTATUS ntlmssp_update(NTLMSSP_STATE *ntlmssp_state,
|
||||
void ntlmssp_want_feature_list(struct ntlmssp_state *ntlmssp_state, char *feature_list);
|
||||
void ntlmssp_want_feature(struct ntlmssp_state *ntlmssp_state, uint32 feature);
|
||||
NTSTATUS ntlmssp_update(struct ntlmssp_state *ntlmssp_state,
|
||||
const DATA_BLOB in, DATA_BLOB *out) ;
|
||||
void ntlmssp_end(NTLMSSP_STATE **ntlmssp_state);
|
||||
DATA_BLOB ntlmssp_weaken_keys(NTLMSSP_STATE *ntlmssp_state, TALLOC_CTX *mem_ctx);
|
||||
NTSTATUS ntlmssp_server_start(NTLMSSP_STATE **ntlmssp_state);
|
||||
NTSTATUS ntlmssp_client_start(NTLMSSP_STATE **ntlmssp_state);
|
||||
void ntlmssp_end(struct ntlmssp_state **ntlmssp_state);
|
||||
DATA_BLOB ntlmssp_weaken_keys(struct ntlmssp_state *ntlmssp_state, TALLOC_CTX *mem_ctx);
|
||||
NTSTATUS ntlmssp_server_start(struct ntlmssp_state **ntlmssp_state);
|
||||
NTSTATUS ntlmssp_client_start(struct ntlmssp_state **ntlmssp_state);
|
||||
|
||||
/* The following definitions come from libsmb/ntlmssp_sign.c */
|
||||
|
||||
NTSTATUS ntlmssp_sign_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_sign_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
const uchar *data, size_t length,
|
||||
const uchar *whole_pdu, size_t pdu_length,
|
||||
DATA_BLOB *sig) ;
|
||||
NTSTATUS ntlmssp_check_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_check_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
const uchar *data, size_t length,
|
||||
const uchar *whole_pdu, size_t pdu_length,
|
||||
const DATA_BLOB *sig) ;
|
||||
NTSTATUS ntlmssp_seal_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_seal_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
uchar *data, size_t length,
|
||||
uchar *whole_pdu, size_t pdu_length,
|
||||
DATA_BLOB *sig);
|
||||
NTSTATUS ntlmssp_unseal_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_unseal_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
uchar *data, size_t length,
|
||||
uchar *whole_pdu, size_t pdu_length,
|
||||
DATA_BLOB *sig);
|
||||
NTSTATUS ntlmssp_sign_init(NTLMSSP_STATE *ntlmssp_state);
|
||||
NTSTATUS ntlmssp_sign_init(struct ntlmssp_state *ntlmssp_state);
|
||||
|
||||
/* The following definitions come from libsmb/passchange.c */
|
||||
|
||||
@ -3270,8 +3270,8 @@ bool netsamlogon_cache_have(const DOM_SID *user_sid);
|
||||
|
||||
NTSTATUS get_enc_ctx_num(const uint8_t *buf, uint16 *p_enc_ctx_num);
|
||||
bool common_encryption_on(struct smb_trans_enc_state *es);
|
||||
NTSTATUS common_ntlm_decrypt_buffer(NTLMSSP_STATE *ntlmssp_state, char *buf);
|
||||
NTSTATUS common_ntlm_encrypt_buffer(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS common_ntlm_decrypt_buffer(struct ntlmssp_state *ntlmssp_state, char *buf);
|
||||
NTSTATUS common_ntlm_encrypt_buffer(struct ntlmssp_state *ntlmssp_state,
|
||||
uint16 enc_ctx_num,
|
||||
char *buf,
|
||||
char **ppbuf_out);
|
||||
|
@ -145,7 +145,7 @@ static NTSTATUS set_challenge(struct ntlmssp_state *ntlmssp_state, DATA_BLOB *ch
|
||||
*
|
||||
*/
|
||||
|
||||
NTSTATUS ntlmssp_set_username(NTLMSSP_STATE *ntlmssp_state, const char *user)
|
||||
NTSTATUS ntlmssp_set_username(struct ntlmssp_state *ntlmssp_state, const char *user)
|
||||
{
|
||||
ntlmssp_state->user = talloc_strdup(ntlmssp_state, user ? user : "" );
|
||||
if (!ntlmssp_state->user) {
|
||||
@ -158,7 +158,7 @@ NTSTATUS ntlmssp_set_username(NTLMSSP_STATE *ntlmssp_state, const char *user)
|
||||
* Store NT and LM hashes on an NTLMSSP context - ensures they are talloc()ed
|
||||
*
|
||||
*/
|
||||
NTSTATUS ntlmssp_set_hashes(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_set_hashes(struct ntlmssp_state *ntlmssp_state,
|
||||
const unsigned char lm_hash[16],
|
||||
const unsigned char nt_hash[16])
|
||||
{
|
||||
@ -178,7 +178,7 @@ NTSTATUS ntlmssp_set_hashes(NTLMSSP_STATE *ntlmssp_state,
|
||||
* Converts a password to the hashes on an NTLMSSP context.
|
||||
*
|
||||
*/
|
||||
NTSTATUS ntlmssp_set_password(NTLMSSP_STATE *ntlmssp_state, const char *password)
|
||||
NTSTATUS ntlmssp_set_password(struct ntlmssp_state *ntlmssp_state, const char *password)
|
||||
{
|
||||
if (!password) {
|
||||
ntlmssp_state->lm_hash = NULL;
|
||||
@ -198,7 +198,7 @@ NTSTATUS ntlmssp_set_password(NTLMSSP_STATE *ntlmssp_state, const char *password
|
||||
* Set a domain on an NTLMSSP context - ensures it is talloc()ed
|
||||
*
|
||||
*/
|
||||
NTSTATUS ntlmssp_set_domain(NTLMSSP_STATE *ntlmssp_state, const char *domain)
|
||||
NTSTATUS ntlmssp_set_domain(struct ntlmssp_state *ntlmssp_state, const char *domain)
|
||||
{
|
||||
ntlmssp_state->domain = talloc_strdup(ntlmssp_state,
|
||||
domain ? domain : "" );
|
||||
@ -212,7 +212,7 @@ NTSTATUS ntlmssp_set_domain(NTLMSSP_STATE *ntlmssp_state, const char *domain)
|
||||
* Set a workstation on an NTLMSSP context - ensures it is talloc()ed
|
||||
*
|
||||
*/
|
||||
NTSTATUS ntlmssp_set_workstation(NTLMSSP_STATE *ntlmssp_state, const char *workstation)
|
||||
NTSTATUS ntlmssp_set_workstation(struct ntlmssp_state *ntlmssp_state, const char *workstation)
|
||||
{
|
||||
ntlmssp_state->workstation = talloc_strdup(ntlmssp_state, workstation);
|
||||
if (!ntlmssp_state->workstation) {
|
||||
@ -226,7 +226,7 @@ NTSTATUS ntlmssp_set_workstation(NTLMSSP_STATE *ntlmssp_state, const char *works
|
||||
* This copies the data blob
|
||||
*/
|
||||
|
||||
NTSTATUS ntlmssp_store_response(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_store_response(struct ntlmssp_state *ntlmssp_state,
|
||||
DATA_BLOB response)
|
||||
{
|
||||
ntlmssp_state->stored_response = data_blob_talloc(ntlmssp_state,
|
||||
@ -241,7 +241,7 @@ NTSTATUS ntlmssp_store_response(NTLMSSP_STATE *ntlmssp_state,
|
||||
* @param ntlmssp_state NTLMSSP state
|
||||
* @param feature_list List of space seperated features requested from NTLMSSP.
|
||||
*/
|
||||
void ntlmssp_want_feature_list(NTLMSSP_STATE *ntlmssp_state, char *feature_list)
|
||||
void ntlmssp_want_feature_list(struct ntlmssp_state *ntlmssp_state, char *feature_list)
|
||||
{
|
||||
/*
|
||||
* We need to set this to allow a later SetPassword
|
||||
@ -265,7 +265,7 @@ void ntlmssp_want_feature_list(NTLMSSP_STATE *ntlmssp_state, char *feature_list)
|
||||
* @param ntlmssp_state NTLMSSP state
|
||||
* @param feature Bit flag specifying the requested feature
|
||||
*/
|
||||
void ntlmssp_want_feature(NTLMSSP_STATE *ntlmssp_state, uint32 feature)
|
||||
void ntlmssp_want_feature(struct ntlmssp_state *ntlmssp_state, uint32 feature)
|
||||
{
|
||||
/* As per JRA's comment above */
|
||||
if (feature & NTLMSSP_FEATURE_SESSION_KEY) {
|
||||
@ -288,7 +288,7 @@ void ntlmssp_want_feature(NTLMSSP_STATE *ntlmssp_state, uint32 feature)
|
||||
* @return Errors, NT_STATUS_MORE_PROCESSING_REQUIRED or NT_STATUS_OK.
|
||||
*/
|
||||
|
||||
NTSTATUS ntlmssp_update(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_update(struct ntlmssp_state *ntlmssp_state,
|
||||
const DATA_BLOB in, DATA_BLOB *out)
|
||||
{
|
||||
DATA_BLOB input;
|
||||
@ -356,7 +356,7 @@ NTSTATUS ntlmssp_update(NTLMSSP_STATE *ntlmssp_state,
|
||||
* @param ntlmssp_state NTLMSSP State, free()ed by this function
|
||||
*/
|
||||
|
||||
void ntlmssp_end(NTLMSSP_STATE **ntlmssp_state)
|
||||
void ntlmssp_end(struct ntlmssp_state **ntlmssp_state)
|
||||
{
|
||||
(*ntlmssp_state)->ref_count--;
|
||||
|
||||
@ -466,7 +466,7 @@ static void ntlmssp_handle_neg_flags(struct ntlmssp_state *ntlmssp_state,
|
||||
by the client lanman auth/lanman auth parameters, it isn't too bad.
|
||||
*/
|
||||
|
||||
DATA_BLOB ntlmssp_weaken_keys(NTLMSSP_STATE *ntlmssp_state, TALLOC_CTX *mem_ctx)
|
||||
DATA_BLOB ntlmssp_weaken_keys(struct ntlmssp_state *ntlmssp_state, TALLOC_CTX *mem_ctx)
|
||||
{
|
||||
DATA_BLOB weakened_key = data_blob_talloc(mem_ctx,
|
||||
ntlmssp_state->session_key.data,
|
||||
@ -902,9 +902,9 @@ static NTSTATUS ntlmssp_server_auth(struct ntlmssp_state *ntlmssp_state,
|
||||
* @param ntlmssp_state NTLMSSP State, allocated by this function
|
||||
*/
|
||||
|
||||
NTSTATUS ntlmssp_server_start(NTLMSSP_STATE **ntlmssp_state)
|
||||
NTSTATUS ntlmssp_server_start(struct ntlmssp_state **ntlmssp_state)
|
||||
{
|
||||
*ntlmssp_state = TALLOC_ZERO_P(NULL, NTLMSSP_STATE);
|
||||
*ntlmssp_state = TALLOC_ZERO_P(NULL, struct ntlmssp_state);
|
||||
if (!*ntlmssp_state) {
|
||||
DEBUG(0,("ntlmssp_server_start: talloc failed!\n"));
|
||||
talloc_destroy(*ntlmssp_state);
|
||||
@ -1239,9 +1239,9 @@ static NTSTATUS ntlmssp_client_challenge(struct ntlmssp_state *ntlmssp_state,
|
||||
return nt_status;
|
||||
}
|
||||
|
||||
NTSTATUS ntlmssp_client_start(NTLMSSP_STATE **ntlmssp_state)
|
||||
NTSTATUS ntlmssp_client_start(struct ntlmssp_state **ntlmssp_state)
|
||||
{
|
||||
*ntlmssp_state = TALLOC_ZERO_P(NULL, NTLMSSP_STATE);
|
||||
*ntlmssp_state = TALLOC_ZERO_P(NULL, struct ntlmssp_state);
|
||||
if (!*ntlmssp_state) {
|
||||
DEBUG(0,("ntlmssp_client_start: talloc failed!\n"));
|
||||
talloc_destroy(*ntlmssp_state);
|
||||
|
@ -58,7 +58,7 @@ enum ntlmssp_direction {
|
||||
NTLMSSP_RECEIVE
|
||||
};
|
||||
|
||||
static NTSTATUS ntlmssp_make_packet_signature(NTLMSSP_STATE *ntlmssp_state,
|
||||
static NTSTATUS ntlmssp_make_packet_signature(struct ntlmssp_state *ntlmssp_state,
|
||||
const uchar *data, size_t length,
|
||||
const uchar *whole_pdu, size_t pdu_length,
|
||||
enum ntlmssp_direction direction,
|
||||
@ -137,7 +137,7 @@ static NTSTATUS ntlmssp_make_packet_signature(NTLMSSP_STATE *ntlmssp_state,
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
NTSTATUS ntlmssp_sign_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_sign_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
const uchar *data, size_t length,
|
||||
const uchar *whole_pdu, size_t pdu_length,
|
||||
DATA_BLOB *sig)
|
||||
@ -168,7 +168,7 @@ NTSTATUS ntlmssp_sign_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
*
|
||||
*/
|
||||
|
||||
NTSTATUS ntlmssp_check_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_check_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
const uchar *data, size_t length,
|
||||
const uchar *whole_pdu, size_t pdu_length,
|
||||
const DATA_BLOB *sig)
|
||||
@ -236,7 +236,7 @@ NTSTATUS ntlmssp_check_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
*
|
||||
*/
|
||||
|
||||
NTSTATUS ntlmssp_seal_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_seal_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
uchar *data, size_t length,
|
||||
uchar *whole_pdu, size_t pdu_length,
|
||||
DATA_BLOB *sig)
|
||||
@ -302,7 +302,7 @@ NTSTATUS ntlmssp_seal_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
*
|
||||
*/
|
||||
|
||||
NTSTATUS ntlmssp_unseal_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS ntlmssp_unseal_packet(struct ntlmssp_state *ntlmssp_state,
|
||||
uchar *data, size_t length,
|
||||
uchar *whole_pdu, size_t pdu_length,
|
||||
DATA_BLOB *sig)
|
||||
@ -329,7 +329,7 @@ NTSTATUS ntlmssp_unseal_packet(NTLMSSP_STATE *ntlmssp_state,
|
||||
/**
|
||||
Initialise the state for NTLMSSP signing.
|
||||
*/
|
||||
NTSTATUS ntlmssp_sign_init(NTLMSSP_STATE *ntlmssp_state)
|
||||
NTSTATUS ntlmssp_sign_init(struct ntlmssp_state *ntlmssp_state)
|
||||
{
|
||||
unsigned char p24[24];
|
||||
TALLOC_CTX *mem_ctx;
|
||||
|
@ -59,7 +59,7 @@ bool common_encryption_on(struct smb_trans_enc_state *es)
|
||||
output, so cope with the same for compatibility.
|
||||
******************************************************************************/
|
||||
|
||||
NTSTATUS common_ntlm_decrypt_buffer(NTLMSSP_STATE *ntlmssp_state, char *buf)
|
||||
NTSTATUS common_ntlm_decrypt_buffer(struct ntlmssp_state *ntlmssp_state, char *buf)
|
||||
{
|
||||
NTSTATUS status;
|
||||
size_t buf_len = smb_len(buf) + 4; /* Don't forget the 4 length bytes. */
|
||||
@ -107,7 +107,7 @@ NTSTATUS common_ntlm_decrypt_buffer(NTLMSSP_STATE *ntlmssp_state, char *buf)
|
||||
output, so do the same for compatibility.
|
||||
******************************************************************************/
|
||||
|
||||
NTSTATUS common_ntlm_encrypt_buffer(NTLMSSP_STATE *ntlmssp_state,
|
||||
NTSTATUS common_ntlm_encrypt_buffer(struct ntlmssp_state *ntlmssp_state,
|
||||
uint16 enc_ctx_num,
|
||||
char *buf,
|
||||
char **ppbuf_out)
|
||||
|
@ -631,7 +631,7 @@ static NTSTATUS cli_pipe_verify_ntlmssp(struct rpc_pipe_client *cli, RPC_HDR *pr
|
||||
RPC_HDR_AUTH auth_info;
|
||||
uint32 save_offset = prs_offset(current_pdu);
|
||||
uint32 auth_len = prhdr->auth_len;
|
||||
NTLMSSP_STATE *ntlmssp_state = cli->auth->a_u.ntlmssp_state;
|
||||
struct ntlmssp_state *ntlmssp_state = cli->auth->a_u.ntlmssp_state;
|
||||
unsigned char *data = NULL;
|
||||
size_t data_len;
|
||||
unsigned char *full_packet_data = NULL;
|
||||
|
@ -635,7 +635,7 @@ static NTSTATUS local_pw_check(struct ntlmssp_state *ntlmssp_state, DATA_BLOB *u
|
||||
return nt_status;
|
||||
}
|
||||
|
||||
static NTSTATUS ntlm_auth_start_ntlmssp_client(NTLMSSP_STATE **client_ntlmssp_state)
|
||||
static NTSTATUS ntlm_auth_start_ntlmssp_client(struct ntlmssp_state **client_ntlmssp_state)
|
||||
{
|
||||
NTSTATUS status;
|
||||
if ( (opt_username == NULL) || (opt_domain == NULL) ) {
|
||||
@ -685,7 +685,7 @@ static NTSTATUS ntlm_auth_start_ntlmssp_client(NTLMSSP_STATE **client_ntlmssp_st
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
static NTSTATUS ntlm_auth_start_ntlmssp_server(NTLMSSP_STATE **ntlmssp_state)
|
||||
static NTSTATUS ntlm_auth_start_ntlmssp_server(struct ntlmssp_state **ntlmssp_state)
|
||||
{
|
||||
NTSTATUS status = ntlmssp_server_start(ntlmssp_state);
|
||||
|
||||
@ -1172,7 +1172,7 @@ static void offer_gss_spnego_mechs(void) {
|
||||
static void manage_gss_spnego_request(struct ntlm_auth_state *state,
|
||||
char *buf, int length)
|
||||
{
|
||||
static NTLMSSP_STATE *ntlmssp_state = NULL;
|
||||
static struct ntlmssp_state *ntlmssp_state = NULL;
|
||||
struct spnego_data request, response;
|
||||
DATA_BLOB token;
|
||||
NTSTATUS status;
|
||||
@ -1415,7 +1415,7 @@ static void manage_gss_spnego_request(struct ntlm_auth_state *state,
|
||||
return;
|
||||
}
|
||||
|
||||
static NTLMSSP_STATE *client_ntlmssp_state = NULL;
|
||||
static struct ntlmssp_state *client_ntlmssp_state = NULL;
|
||||
|
||||
static bool manage_client_ntlmssp_init(struct spnego_data spnego)
|
||||
{
|
||||
|
@ -49,7 +49,7 @@ static NTSTATUS do_ntlm_auth_with_hashes(const char *username,
|
||||
DATA_BLOB *auth_msg)
|
||||
{
|
||||
NTSTATUS status;
|
||||
NTLMSSP_STATE *ntlmssp_state = NULL;
|
||||
struct ntlmssp_state *ntlmssp_state = NULL;
|
||||
DATA_BLOB dummy_msg, reply;
|
||||
|
||||
status = ntlmssp_client_start(&ntlmssp_state);
|
||||
|
Loading…
x
Reference in New Issue
Block a user