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

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

?? chap.cpp

?? 基于單片機的 snmp協(xié)議解析的一些原代碼 給有用的 同行
?? CPP
字號:
//---------------------------------------------------------------------------
#include <string>
using namespace std;
#include <vcl\vcl.h>
#pragma hdrstop

#include "chap.h"
#include "linkDefs.h"
//---------------------------------------------------------------------------
CHAP::CHAP()
{
	authState = INSECURE;
}
CHAP::~CHAP()
{
}
void CHAP::SetSecret(string theSecret)
{
	secret.assign(theSecret);
}
void CHAP::GetSecret(string &theSecret)
{
	theSecret.assign(secret);
}
unsigned char CHAP::GetIdentifier()
{
	return identifier;
}
void CHAP::SetChallengeValue() // have to set this different each time
{
	long i;
    long length;

    challengeValue.assign("");
    length=random(192) + 64;
    for (i=0; i<length; i++)
    {
    	challengeValue.append(1, (char)random(256));
    }
}
void CHAP::GetChallengeValue(string &theChallengeValue)
{
    long valueSize;

	theChallengeValue = data;
    valueSize = (long)(unsigned char)data[0];
    theChallengeValue.erase(0,1);  // erase value-size
//    if ((long)theChallengeValue.length() > (long)valueSize)
//        theChallengeValue.erase(valueSize, ((long)theChallengeValue.length()-(long)valueSize)); // erase name
    if (theChallengeValue.length() > valueSize)
        theChallengeValue.erase(valueSize, (theChallengeValue.length()-valueSize)); // erase name
}
void CHAP::SetName(string theName)
{
	name = theName;
}
void CHAP::GetName(string &theName)
{
	theName.assign(name);
}
long CHAP::DecodeCHAP()
{
   	return code;
}
Authenticate_State CHAP::GetAuthenticateState()
{
	return authState;
}
void CHAP::FillCHAP(string &theData)
{
	if (theData.length() >= 4)
    {
    	code = theData.at(0);
	    identifier = theData.at(1);
    	length = (unsigned char) (theData.at(2)) * 256 + (unsigned char)theData.at(3);
	    data.assign(theData);
        data.erase(0,4);
    }
    else
    {
    	code = 0;
        identifier = 0;
        length= theData.length();
    	data.assign("");
    }
    SetPacketTime();
}
void CHAP::GetResponseValue(string &theValue)
{
	theValue.assign(data.substr(1, data.length()-1));
//    theValue.remove(0,1);
}
void CHAP::AssignChallenge()
{
	code = PPP_CHAP_CODE_CHALLENGE;
    identifier = identifierCounter++;
    SetChallengeValue();
    SetName("Central");
    length = challengeValue.length() + 1 + name.length() + 4;
    data.assign(1, challengeValue.length());
    data.append(challengeValue);
    data.append(name);
}
void CHAP::AssignChallengeResponse(CHAP challengeCHAPPacket)
{
    string stream;
    string localChallengeValue;

	code = PPP_CHAP_CODE_RESPONSE;
    identifier = challengeCHAPPacket.GetIdentifier();

	stream.assign(1, identifier);
    stream.append(secret);
    challengeCHAPPacket.GetChallengeValue(localChallengeValue);
    challengeValue.assign(localChallengeValue);
    stream.append(challengeValue);

    challengeValue=GetHash(stream.c_str(), stream.length());

    SetName("CENTRAL");
    length = challengeValue.length() + 1 + name.length() + 4;
    data.assign(1, challengeValue.length());
    data.append(challengeValue);
    data.append(name);
}
void CHAP::AssignSuccess(CHAP receivedCHAP)
{
	code = PPP_CHAP_CODE_SUCCESS;
    identifier = receivedCHAP.GetIdentifier();
    length = 4;
    data.clear();
}
void CHAP::AssignFailure(CHAP receivedCHAP)
{
	code = PPP_CHAP_CODE_FAILURE;
    identifier = receivedCHAP.GetIdentifier();
    length = 4;
    data.clear();
}

long CHAP::DetermineSuccessFailure(CHAP sentCHAP)
{   // get both secrets set
	string stream;
    string correctValue;
    string receivedValue;
    string temp;
    char valueSize;

    stream.assign(1, sentCHAP.GetIdentifier());
    stream.append(secret);
	sentCHAP.GetChallengeValue(temp);              // note that this temp includes the system name!!!
    stream.append(temp);

    correctValue=GetHash(stream.c_str(), stream.length());

    receivedValue = data;
//    valueSize = receivedValue[0];
//    receivedLength = sentCHAP.GetLength();
    receivedValue.erase(0,1); // remove Value-size field
    receivedValue.erase(16, receivedValue.length()-16); // erase the rest of it; i.e. 'Name'

    if (!correctValue.compare(0, correctValue.length(), receivedValue)) //CBuilder 3
    	return PPP_CHAP_CODE_SUCCESS;
    else
    	return PPP_CHAP_CODE_FAILURE;

}
long CHAP::GetPacket(string &packet)
{
	packet.assign(1, code);
   	packet.append(1, identifier);
    packet.append(1, (unsigned char)(length/256));
    packet.append(1, (unsigned char)(length%256));
    packet.append(data);

    return (packet.length());
}
void CHAP::SetPacketTime()
{
	timeOfPacket = GetTickCount();
}
unsigned long CHAP::GetPacketTime()
{
	return timeOfPacket;
}
long CHAP::GetLength()
{
    return length;
}
string CHAP::GetHash(const char *theHash, unsigned int len)
{
	MD_CTX context;
    unsigned char digest[16];
    string strDigest;

    MDInit(&context);
    MDUpdate(&context, (unsigned char *)theHash, len);
    MDFinal(digest, &context);
    strDigest.assign((const char *)digest, 16);
    return strDigest;
}
void CHAP::Test()
{
	MD_CTX context;
    unsigned char digest[16];
    unsigned int len = strlen("a");

	unsigned char *temp;
/*    temp = GetHash("a");
    cout << temp;
    temp = GetHash("abc");
    cout << temp;
    temp = GetHash("message digest");
    cout << temp;
    temp = GetHash("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
    cout << temp;*/
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av亚洲精华国产精华| 在线不卡中文字幕| 欧美高清视频一二三区| 久久久久久久久伊人| 亚洲在线免费播放| www.亚洲激情.com| 久久综合给合久久狠狠狠97色69| 亚洲欧美一区二区久久 | 精品一区二区三区免费观看| 91极品视觉盛宴| 久久影院午夜论| 免费国产亚洲视频| 欧美无人高清视频在线观看| 中文字幕一区三区| 国产不卡视频在线观看| 欧美变态tickle挠乳网站| 五月天激情综合| 欧洲亚洲国产日韩| 一区二区三区免费| 色婷婷av一区二区三区之一色屋| 国产欧美一区二区三区在线看蜜臀 | 老汉av免费一区二区三区| 欧美亚洲一区二区在线| 亚洲男同1069视频| 91浏览器打开| 国产精品久久久久一区| 成人av电影免费观看| 中文字幕乱码久久午夜不卡| 国产成人在线色| 国产欧美一区二区精品仙草咪| 黑人巨大精品欧美一区| 日韩精品一区二区三区在线播放 | 欧美日韩一区二区电影| 亚洲乱码日产精品bd| 一本色道久久综合亚洲aⅴ蜜桃| 欧美国产禁国产网站cc| 波多野结衣精品在线| 最新国产成人在线观看| 91黄视频在线| 天天av天天翘天天综合网 | 91丨九色丨黑人外教| 亚洲三级在线免费| 91久久精品国产91性色tv| 亚洲在线免费播放| 日韩视频在线你懂得| 激情五月婷婷综合| 国产精品第四页| 欧美色图天堂网| 丝袜美腿亚洲一区| 久久久久国产一区二区三区四区| 东方aⅴ免费观看久久av| 亚洲天堂2014| 欧美日韩国产精品成人| 国产一区二区在线影院| 国产精品毛片无遮挡高清| 在线精品视频小说1| 日本一不卡视频| 亚洲女同ⅹxx女同tv| 91久久一区二区| 久久国产精品99久久久久久老狼| 久久嫩草精品久久久精品| 99久久久久久| 美女性感视频久久| 国产精品成人免费在线| 欧美中文字幕一二三区视频| 久久爱www久久做| 亚洲天堂免费看| 日韩欧美卡一卡二| 色婷婷久久一区二区三区麻豆| 青青草伊人久久| 中文字幕色av一区二区三区| 91精品在线免费观看| 成人av网站在线观看免费| 五月天一区二区三区| 国产精品久久久久久久久免费桃花 | 欧美大度的电影原声| 99久久er热在这里只有精品66| 婷婷六月综合网| 中文字幕一区av| 日韩欧美黄色影院| 日本久久电影网| 国产91丝袜在线播放| 视频一区视频二区在线观看| 中文字幕在线观看不卡视频| 欧美成人bangbros| 欧美三级电影在线观看| 成人avav影音| 国产一区二区在线观看免费| 热久久一区二区| 亚洲一区免费视频| 国产性色一区二区| 日韩欧美aaaaaa| 欧美男同性恋视频网站| 色乱码一区二区三区88| 国产成人免费视| 老司机精品视频在线| 午夜欧美在线一二页| 伊人色综合久久天天人手人婷| 国产人久久人人人人爽| 亚洲精品在线免费观看视频| 欧美精品三级日韩久久| 欧美色综合天天久久综合精品| 91在线免费视频观看| 国产成人精品免费在线| 国产一区二区三区美女| 麻豆极品一区二区三区| 麻豆精品精品国产自在97香蕉| 日韩电影在线免费观看| 亚洲成人福利片| 午夜久久久影院| 日韩和欧美一区二区| 视频在线观看国产精品| 日韩av中文在线观看| 日韩av在线播放中文字幕| 日韩高清电影一区| 久久国产精品一区二区| 国模少妇一区二区三区| 国产精品自拍毛片| 丰满放荡岳乱妇91ww| 波多野结衣中文字幕一区二区三区| 国产成人综合精品三级| 成人免费不卡视频| av一本久道久久综合久久鬼色| 91视频一区二区| 99热在这里有精品免费| 99精品在线免费| 在线视频国内自拍亚洲视频| 欧美亚洲综合另类| 这里只有精品免费| 精品福利av导航| 国产精品久久久久久妇女6080| 18涩涩午夜精品.www| 亚洲在线视频免费观看| 另类调教123区| 成人丝袜18视频在线观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲va国产天堂va久久en| 免费在线成人网| 懂色av一区二区在线播放| av中文字幕一区| 欧美日韩国产片| 久久久无码精品亚洲日韩按摩| 亚洲天堂成人在线观看| 五月天中文字幕一区二区| 国产大陆亚洲精品国产| 欧洲一区在线电影| 欧美精品一区在线观看| 亚洲欧美在线视频观看| 男女性色大片免费观看一区二区| 国产精品影音先锋| 欧美在线|欧美| 国产欧美一区二区精品性| 亚洲亚洲人成综合网络| 久久精品999| 一本久道久久综合中文字幕| 日韩欧美国产小视频| 中文字幕五月欧美| 久久69国产一区二区蜜臀| 97久久精品人人澡人人爽| 欧美一二三区在线观看| 中文字幕一区二区三区色视频| 日本成人在线一区| 91免费国产视频网站| 久久综合国产精品| 午夜精品久久一牛影视| eeuss国产一区二区三区| 欧美成人激情免费网| 亚洲综合免费观看高清完整版在线 | 亚洲午夜电影网| 成人美女视频在线观看| 精品国精品国产尤物美女| 亚洲自拍偷拍综合| voyeur盗摄精品| 久久久精品综合| 毛片av一区二区| 欧美一区二区三区人| 亚洲在线观看免费| 91网站最新地址| 国产精品乱码人人做人人爱| 九九精品一区二区| 欧美一区二区精品久久911| 亚洲综合区在线| 色综合久久中文综合久久牛| 国产精品丝袜91| 国产成人亚洲综合a∨婷婷| 日韩精品在线看片z| 日韩在线一区二区三区| 在线视频观看一区| 一区二区三区美女| 91麻豆国产香蕉久久精品| 国产精品毛片高清在线完整版| 国产精品一二三在| 久久精品一区二区三区不卡牛牛| 老司机午夜精品| 国产精品久久久久久久久图文区 | 精品欧美一区二区在线观看| 亚洲第四色夜色| 欧美日韩成人在线| 偷窥少妇高潮呻吟av久久免费| 欧美三级日韩三级|