亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libntlmssp.c

?? 代理服務器 squid-2.6.STABLE16
?? C
字號:
/* * (C) 2000 Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it> * Distributed freely under the terms of the GNU General Public License, * version 2. See the file COPYING for licensing details * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details.  * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. */typedef unsigned char uchar;#include "ntlm.h"#include "util.h"		/* from Squid */#include "valid.h"#include "smbencrypt.h"#if HAVE_STRING_H#include <string.h>#endif /* HAVE_STRING_H */#if HAVE_STDLIB_H#include <stdlib.h>#endif /* HAVE_STDLIB_H */#ifdef HAVE_UNISTD_H#include <unistd.h>#endif/* these are part of rfcnb-priv.h and smblib-priv.h */extern int SMB_Get_Error_Msg(int msg, char *msgbuf, int len);extern int SMB_Get_Last_Error();extern int RFCNB_Get_Last_Errno();#include "smblib-priv.h"	/* for SMB_Handle_Type *//* a few forward-declarations. Hackish, but I don't care right now */SMB_Handle_Type SMB_Connect_Server(SMB_Handle_Type Con_Handle, char *server, char *NTdomain);/* this one is reallllly haackiish. We really should be using anything from smblib-priv.h */static char *SMB_Prots[] ={"PC NETWORK PROGRAM 1.0",    "MICROSOFT NETWORKS 1.03",    "MICROSOFT NETWORKS 3.0",    "DOS LANMAN1.0",    "LANMAN1.0",    "DOS LM1.2X002",    "LM1.2X002",    "DOS LANMAN2.1",    "LANMAN2.1",    "Samba",    "NT LM 0.12",    "NT LANMAN 1.0",    NULL};#if 0int SMB_Discon(SMB_Handle_Type Con_Handle, BOOL KeepHandle);int SMB_Negotiate(void *Con_Handle, char *Prots[]);int SMB_Logon_Server(SMB_Handle_Type Con_Handle, char *UserName, char *PassWord, char *Domain, int precrypted);#endif#ifdef DEBUG#define debug_dump_ntlmssp_flags dump_ntlmssp_flags#else /* DEBUG */#define debug_dump_ntlmssp_flags(X)	/* empty */#endif /* DEBUG */#define ENCODED_PASS_LEN 24static unsigned char challenge[NONCE_LEN];static unsigned char lmencoded_empty_pass[ENCODED_PASS_LEN],	ntencoded_empty_pass[ENCODED_PASS_LEN];SMB_Handle_Type handle = NULL;/* Disconnects from the DC. A reconnection will be done upon the next request */voiddc_disconnect(){    if (handle != NULL)	SMB_Discon(handle, 0);    handle = NULL;}intconnectedp(){    return (handle != NULL);}/* Tries to connect to a DC. Returns 0 on failure, 1 on OK */intis_dc_ok(char *domain, char *domain_controller){    SMB_Handle_Type h = SMB_Connect_Server(NULL, domain_controller, domain);    if (h == NULL)	return 0;    SMB_Discon(h, 0);    return 1;}static char errstr[1001];/* returns 0 on success, > 0 on failure */static intinit_challenge(char *domain, char *domain_controller){    int smberr;    if (handle != NULL) {	return 0;    }    debug("Connecting to server %s domain %s\n", domain_controller, domain);    handle = SMB_Connect_Server(NULL, domain_controller, domain);    smberr = SMB_Get_Last_Error();    SMB_Get_Error_Msg(smberr, errstr, 1000);    if (handle == NULL) {	/* couldn't connect */	debug("Couldn't connect to SMB Server. Error:%s\n", errstr);	return 1;    }    if (SMB_Negotiate(handle, SMB_Prots) < 0) {		/* An error */	debug("Error negotiating protocol with SMB Server\n");	SMB_Discon(handle, 0);	handle = NULL;	return 2;    }    if (handle->Security == 0) {	/* share-level security, unuseable */	debug("SMB Server uses share-level security .. we need user security.\n");	SMB_Discon(handle, 0);	handle = NULL;	return 3;    }    memcpy(challenge, handle->Encrypt_Key, NONCE_LEN);		SMBencrypt((unsigned char *)"",challenge,lmencoded_empty_pass);		SMBNTencrypt((unsigned char *)"",challenge,ntencoded_empty_pass);    return 0;}static char my_domain[100], my_domain_controller[100];const char *make_challenge(char *domain, char *domain_controller){	/* trying to circumvent some strange problem wih pointers in SMBLib */	/* Ugly as hell, but the lib is going to be dropped... */	strcpy(my_domain,domain);	strcpy(my_domain_controller,domain_controller);    if (init_challenge(my_domain, my_domain_controller) > 0) {	return NULL;    }    return ntlm_make_challenge(my_domain, my_domain_controller, challenge, NONCE_LEN);}#define min(A,B) (A<B?A:B)int ntlm_errno;#define MAX_USERNAME_LEN 255#define MAX_DOMAIN_LEN 255#define MAX_PASSWD_LEN 31static char credentials[MAX_USERNAME_LEN+MAX_DOMAIN_LEN+2];	/* we can afford to waste *//* Fetches the user's credentials from the challenge. * Returns NULL if domain or user is not defined * No identity control is performed. * WARNING! The result is static storage, shared with ntlm_check_auth */char *fetch_credentials(ntlm_authenticate * auth, int auth_length){    char *p = credentials;    lstring tmp;    tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->domain);    *p = '\0';    if (tmp.str == NULL)	return NULL;    memcpy(p, tmp.str, tmp.l);    p += tmp.l;    *p++ = '\\';    *p = '\0';    tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->user);    if (tmp.str == NULL)	return NULL;    memcpy(p, tmp.str, tmp.l);    *(p + tmp.l) = '\0';    return credentials;}/* returns NULL on failure, or a pointer to * the user's credentials (domain\\username) * upon success. WARNING. It's pointing to static storage. * In case of problem sets as side-effect ntlm_errno to one of the * codes defined in ntlm.h */char *ntlm_check_auth(ntlm_authenticate * auth, int auth_length){    int rv;    char pass[MAX_PASSWD_LEN+1];    char *domain = credentials;    char *user;    lstring tmp;    if (handle == NULL) {	/*if null we aren't connected, but it shouldn't happen */	debug("Weird, we've been disconnected\n");	ntlm_errno = NTLM_NOT_CONNECTED;	return NULL;    }/*      debug("fetching domain\n"); */    tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->domain);    if (tmp.str == NULL || tmp.l == 0) {	debug("No domain supplied. Returning no-auth\n");	ntlm_errno = NTLM_LOGON_ERROR;	return NULL;    }    if (tmp.l > MAX_DOMAIN_LEN) {	debug("Domain string exceeds %d bytes, rejecting\n", MAX_DOMAIN_LEN);	ntlm_errno = NTLM_LOGON_ERROR;	return NULL;    }    memcpy(domain, tmp.str, tmp.l);    user = domain + tmp.l;    *user++ = '\0';/*      debug("fetching user name\n"); */    tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->user);    if (tmp.str == NULL || tmp.l == 0) {	debug("No username supplied. Returning no-auth\n");	ntlm_errno = NTLM_LOGON_ERROR;	return NULL;    }    if (tmp.l > MAX_USERNAME_LEN) {	debug("Username string exceeds %d bytes, rejecting\n", MAX_USERNAME_LEN);	ntlm_errno = NTLM_LOGON_ERROR;	return NULL;    }    memcpy(user, tmp.str, tmp.l);    *(user + tmp.l) = '\0';		    /* Authenticating against the NT response doesn't seem to work... */    tmp = ntlm_fetch_string((char *) auth, auth_length, &auth->lmresponse);    if (tmp.str == NULL || tmp.l == 0) {	fprintf(stderr, "No auth at all. Returning no-auth\n");	ntlm_errno = NTLM_LOGON_ERROR;	return NULL;    }    if (tmp.l > MAX_PASSWD_LEN) {	debug("Password string exceeds %d bytes, rejecting\n", MAX_PASSWD_LEN);	ntlm_errno = NTLM_LOGON_ERROR;	return NULL;    }    memcpy(pass, tmp.str, tmp.l);    pass[min(MAX_PASSWD_LEN,tmp.l)] = '\0';#if 1		debug ("Empty LM pass detection: user: '%s', ours:'%s', his: '%s'"					 "(length: %d)\n",					 user,lmencoded_empty_pass,tmp.str,tmp.l);		if (memcmp(tmp.str,lmencoded_empty_pass,ENCODED_PASS_LEN)==0) {			fprintf(stderr,"Empty LM password supplied for user %s\\%s. "							"No-auth\n",domain,user);			ntlm_errno=NTLM_LOGON_ERROR;			return NULL;		}				tmp = ntlm_fetch_string ((char *) auth, auth_length, &auth->ntresponse);		if (tmp.str != NULL && tmp.l != 0) {			debug ("Empty NT pass detection: user: '%s', ours:'%s', his: '%s'"						 "(length: %d)\n",						 user,ntencoded_empty_pass,tmp.str,tmp.l);			if (memcmp(tmp.str,lmencoded_empty_pass,ENCODED_PASS_LEN)==0) {				fprintf(stderr,"Empty NT password supplied for user %s\\%s. "								"No-auth\n",domain,user);				ntlm_errno=NTLM_LOGON_ERROR;				return NULL;			}		}#endif		/* TODO: check against empty password!!!!! */		    debug("checking domain: '%s', user: '%s', pass='%s'\n", domain, user, pass);    rv = SMB_Logon_Server(handle, user, pass, domain, 1);    debug("Login attempt had result %d\n", rv);    if (rv != NTV_NO_ERROR) {	/* failed */	ntlm_errno = rv;	return NULL;    }    *(user - 1) = '\\';		/* hack. Performing, but ugly. */    debug("credentials: %s\n", credentials);    return credentials;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人综合婷婷国产精品久久免费| 亚洲一二三专区| 欧美日韩美少妇| 色婷婷香蕉在线一区二区| 不卡的av电影在线观看| 成人综合婷婷国产精品久久免费| 国产成人aaa| 不卡在线观看av| 91麻豆精品视频| 欧美婷婷六月丁香综合色| 91久久精品一区二区| 91国偷自产一区二区开放时间| 欧美在线观看视频一区二区 | 337p日本欧洲亚洲大胆色噜噜| 7777精品久久久大香线蕉| 日韩一区二区在线观看视频| 精品国产自在久精品国产| 国产视频一区不卡| 亚洲精品乱码久久久久久黑人| 一区二区三区四区在线播放| 日韩二区三区四区| 国产综合一区二区| 成人av动漫网站| 欧美日韩综合在线免费观看| 日韩免费看网站| 国产精品丝袜一区| 亚洲福利视频三区| 国产夫妻精品视频| 亚洲精品乱码久久久久| 91麻豆国产香蕉久久精品| 一区二区日韩av| 国内外成人在线视频| 日本特黄久久久高潮| 九色porny丨国产精品| 国产精品资源在线| 日本二三区不卡| 日韩一区二区影院| 国产成人在线视频网址| 99精品欧美一区二区蜜桃免费| 色综合天天综合网天天看片| 欧美日韩国产a| 久久综合成人精品亚洲另类欧美| 中文字幕乱码亚洲精品一区| 亚洲成av人在线观看| 成人一区二区视频| 日韩精品一区二区三区视频| 自拍偷拍亚洲激情| 国产精品18久久久久久久久| 欧美日韩一区在线| 国产精品对白交换视频| 久久99精品久久久久久国产越南 | 琪琪久久久久日韩精品| 狠狠网亚洲精品| 欧美日韩精品是欧美日韩精品| 国产欧美一区二区三区网站 | 国产精品三级视频| 全国精品久久少妇| 欧美午夜精品久久久久久超碰| 欧美国产日本视频| 国产乱人伦偷精品视频不卡| 91精品国产欧美一区二区18| 国产精品网曝门| 国产一区二区在线视频| 91精品国产一区二区三区蜜臀| 国产精品不卡在线| 高清av一区二区| 精品福利一二区| 蜜臂av日日欢夜夜爽一区| 欧美色网一区二区| 亚洲成人www| 日本久久一区二区| 一区二区三区成人在线视频| 丁香另类激情小说| 欧美国产日韩a欧美在线观看| 国产成人av一区二区三区在线| 日韩精品在线一区二区| 久久精品国产99国产| 日韩欧美一区中文| 精品一区二区三区免费毛片爱| 日韩欧美专区在线| 韩国女主播一区| 国产亚洲综合av| 国产成人精品免费| 中文字幕色av一区二区三区| 91社区在线播放| 亚洲激情综合网| 欧美日韩免费在线视频| 水野朝阳av一区二区三区| 欧美高清精品3d| 久久精品国产澳门| 中文av一区二区| 在线观看视频91| 日韩精品免费专区| 久久久久亚洲综合| 97国产精品videossex| 一区二区三区免费在线观看| 欧美理论在线播放| 国产成人自拍高清视频在线免费播放| 中文字幕视频一区二区三区久| 日本黄色一区二区| 蜜桃一区二区三区在线| 国产精品网曝门| 欧美色倩网站大全免费| 精彩视频一区二区三区| 中文在线资源观看网站视频免费不卡| av资源网一区| 日本强好片久久久久久aaa| 久久看人人爽人人| 欧美亚洲日本国产| 国产真实乱对白精彩久久| 中文字幕日本不卡| 日韩一区二区高清| 一本高清dvd不卡在线观看| 日本伊人色综合网| 国产精品国产a| 日韩欧美一级二级| 9久草视频在线视频精品| 日本欧美在线观看| 亚洲欧美日韩成人高清在线一区| 欧美一区二区三区免费视频| 福利一区二区在线| 青青青伊人色综合久久| 一区二区三区精品在线| 国产亚洲综合色| 91麻豆精品91久久久久同性| 99久久er热在这里只有精品66| 蜜桃久久av一区| 亚洲女爱视频在线| 国产精品人人做人人爽人人添| 91精品综合久久久久久| 欧美影院午夜播放| av资源站一区| 成人免费三级在线| 久久国产麻豆精品| 日产欧产美韩系列久久99| 亚洲一级二级在线| 成人免费在线视频观看| 久久香蕉国产线看观看99| 91精品国产福利| 欧美日韩在线不卡| 欧美日韩一区 二区 三区 久久精品| 成人激情动漫在线观看| 国产一区中文字幕| 麻豆精品视频在线观看免费| 日本成人在线看| 日韩国产精品大片| 天天av天天翘天天综合网 | 日韩精品在线看片z| 91精品国产色综合久久不卡蜜臀 | 日本va欧美va精品发布| 视频一区国产视频| 亚洲午夜久久久久中文字幕久| 亚洲日本韩国一区| 又紧又大又爽精品一区二区| 亚洲免费观看高清完整版在线| 亚洲视频一二三| 一区二区三区.www| 亚洲午夜一区二区三区| 性做久久久久久久久| 五月激情综合网| 精品在线播放免费| 国内精品伊人久久久久av一坑| 九九国产精品视频| 国产成人自拍网| 91丨九色丨尤物| 欧美日韩三级在线| 欧美www视频| 久久久久久免费毛片精品| 精品国产精品一区二区夜夜嗨| 久久久亚洲精华液精华液精华液| www久久精品| 亚洲品质自拍视频| 午夜精品久久久久久不卡8050| 日韩av电影天堂| 国产成人在线色| 91高清视频在线| 欧美一级日韩免费不卡| 久久精品亚洲国产奇米99| 亚洲色图在线播放| 麻豆国产精品官网| 国产成人精品亚洲日本在线桃色| 日本韩国视频一区二区| 日韩欧美在线综合网| 中文字幕在线一区免费| 日韩国产欧美在线视频| 狠狠色狠狠色综合日日91app| 91香蕉视频黄| 欧美一二三在线| 国产精品成人免费精品自在线观看| 亚洲一区二区三区美女| 国产精品一区专区| 欧美日韩在线亚洲一区蜜芽| 2020国产精品久久精品美国| 亚洲美女少妇撒尿| 加勒比av一区二区| 欧美三级蜜桃2在线观看| 国产日韩v精品一区二区| 亚洲成人自拍一区| 成人免费福利片| 欧美mv日韩mv亚洲|