您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GETBYTE函数代码示例

51自学网 2021-06-01 20:50:39
  C++
这篇教程C++ GETBYTE函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GETBYTE函数的典型用法代码示例。如果您正苦于以下问题:C++ GETBYTE函数的具体用法?C++ GETBYTE怎么用?C++ GETBYTE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GETBYTE函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: v2_attr_rply

static int v2_attr_rply(int flags) {	int auth_cnt, i;	unsigned short errcode;	if (flags & F_SUM) {	    GETSHORT(errcode);	    if (errcode != OK) {		strcat(msgbuf, slpv2_error(errcode));		msglength = 0;	/* skip rest of message */		return (0);	    } else {		GETFIELD;			/* attr list */#ifdef VERIFYSLP		GETBYTE(auth_cnt);		for (i = 0; i < auth_cnt; i++)		    if (skip_v2authblock() < 0)			return (0);#endif	    }	} else if (flags & F_DTAIL) {	    V2_DOERRCODE;	    DOFIELD("Attribute list", FIELD_DEFAULT);	    /* auth */	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		V2_DOAUTH(i);	}	return (1);}
开发者ID:jasonbking,项目名称:illumos-gate,代码行数:31,


示例2: v2_srv_reg

static int v2_srv_reg(int flags) {	int i, auth_cnt;	if (flags & F_SUM) {	    SKIPBYTE;			/* reserved */	    SKIPSHORT;			/* lifetime */	    GETFIELD;			/* URL */#ifdef VERIFYSLP	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		if (skip_v2authblock() < 0)		    return (0);	    SKIPFIELD(FIELD_DEFAULT);	/* type */	    SKIPFIELD(FIELD_DEFAULT);	/* scopes */	    SKIPFIELD(FIELD_DEFAULT);	/* attrs */	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		if (skip_v2authblock() < 0)		    return (0);#endif	} if (flags & F_DTAIL) {	    V2_DOURL(-1);	    DOFIELD("Service type", FIELD_DEFAULT);	    DOFIELD("Scopes", FIELD_DEFAULT);	    DOFIELD("Attribute list", FIELD_DEFAULT);	    /* auth */	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		V2_DOAUTH(i);	}	return (1);}
开发者ID:jasonbking,项目名称:illumos-gate,代码行数:33,


示例3: v2_daadvert

static int v2_daadvert(int flags) {	int auth_cnt, i;	unsigned short errcode;	unsigned int timestamp;	if (flags & F_SUM) {	    SKIPSHORT;			/* error code */	    SKIPSHORT; SKIPSHORT;	/* timestamp */	    GETFIELD;			/* URL */#ifdef VERIFYSLP	    SKIPFIELD(FIELD_DEFAULT);	/* scopes */	    SKIPFIELD(FIELD_DEFAULT);	/* attrs */	    SKIPFIELD(FIELD_DEFAULT);	/* SPIs */	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		if (skip_v2authblock() < 0)		    return (0);#endif	} else if (flags & F_DTAIL) {	    V2_DOERRCODE;	    V2_DOTIMESTAMP;	    DOFIELD("URL", FIELD_DEFAULT);	    DOFIELD("Scope list", FIELD_DEFAULT);	    DOFIELD("Attribute list", FIELD_DEFAULT);	    DOFIELD("Configured SPIs", FIELD_DEFAULT);	    /* auth */	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		V2_DOAUTH(i);	}	return (1);}
开发者ID:jasonbking,项目名称:illumos-gate,代码行数:35,


示例4: v2_saadvert

static int v2_saadvert(int flags) {	int auth_cnt, i;	if (flags & F_SUM) {	    GETFIELD;			/* URL */#ifdef VERIFYSLP	    SKIPFIELD(FIELD_DEFAULT);	/* scopes */	    SKIPFIELD(FIELD_DEFAULT);	/* attrs */	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		if (skip_v2authblock() < 0)		    return (0);#endif	} else if (flags & F_DTAIL) {	    DOFIELD("URL", FIELD_DEFAULT);	    DOFIELD("Scopes",  FIELD_DEFAULT);	    DOFIELD("Attribute list", FIELD_DEFAULT);	    /* auth */	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		V2_DOAUTH(i);	}	return (1);}
开发者ID:jasonbking,项目名称:illumos-gate,代码行数:27,


示例5: GetUserKey

void Twofish::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/){	unsigned int len = (keylen <= 16 ? 2 : (keylen <= 24 ? 3 : 4));    word32 key[8];	GetUserKey(LittleEndianOrder, key, len*2, userKey, keylen);	unsigned int i;	for (i=0; i<40; i+=2) {		word32 a = h(i, key, len);		word32 b = rotlFixed(h(i+1, key+1, len), 8);		k_[i] = a+b;		k_[i+1] = rotlFixed(a+2*b, 9);	}	word32 svec[8];	for (i=0; i<len; i++)		svec[2*(len-i-1)] = ReedSolomon(key[2*i+1], key[2*i]);	for (i=0; i<256; i++) {		word32 t = h0(i, svec, len);		s_[0][i] = mds_[0][GETBYTE(t, 0)];		s_[1][i] = mds_[1][GETBYTE(t, 1)];		s_[2][i] = mds_[2][GETBYTE(t, 2)];		s_[3][i] = mds_[3][GETBYTE(t, 3)];	}}
开发者ID:0x00xw,项目名称:mysql-2,代码行数:26,


示例6: pgp_s2k_read

intpgp_s2k_read(PullFilter *src, PGP_S2K *s2k){	int			res = 0;	GETBYTE(src, s2k->mode);	GETBYTE(src, s2k->digest_algo);	switch (s2k->mode)	{		case 0:			break;		case 1:			res = pullf_read_fixed(src, 8, s2k->salt);			break;		case 3:			res = pullf_read_fixed(src, 8, s2k->salt);			if (res < 0)				break;			GETBYTE(src, s2k->iter);			break;		default:			res = PXE_PGP_BAD_S2K_MODE;	}	return res;}
开发者ID:0x0FFF,项目名称:postgres,代码行数:25,


示例7: GETBYTE

void DataOutputStream::writeUInt16(UINT16 data){  UINT8 buf[2];  buf[0] = GETBYTE(data, 1);  buf[1] = GETBYTE(data, 0);  writeFully((char *)buf, sizeof(buf));}
开发者ID:newmind,项目名称:tvnc_rds,代码行数:9,


示例8: crypt_block

// this version is only used to make pbox and sboxvoid Blowfish::crypt_block(const word32 in[2], word32 out[2]) const{	word32 left = in[0];	word32 right = in[1];	const word32 *const s=sbox;	const word32 *p=pbox;	left ^= p[0];	for (unsigned i=0; i<ROUNDS/2; i++)	{		right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])			  ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])			  ^ p[2*i+1];		left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])			 ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])			 ^ p[2*i+2];	}	right ^= p[ROUNDS+1];	out[0] = right;	out[1] = left;}
开发者ID:killbug2004,项目名称:WSProf,代码行数:27,


示例9: ProcessAndXorBlock

void Blowfish::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out)    const{    word32 left, right;	const word32  *const s = sbox_;    const word32* p = pbox_;        gpBlock::Get(in)(left)(right);	left ^= p[0];    // roll back up and use s and p index instead of just p    for (unsigned i = 0; i < ROUNDS / 2; i++) {        right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])            ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])            ^ p[2*i+1];        left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])            ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])            ^ p[2*i+2];    }	right ^= p[ROUNDS + 1];    gpBlock::Put(xOr, out)(right)(left);}
开发者ID:0x00xw,项目名称:mysql-2,代码行数:25,


示例10: BlowfishEncryptLE

void BlowfishEncryptLE (unsigned char *inBlock, unsigned char *outBlock, BF_KEY *key, int encrypt){	word32 left = LE32 (((word32 *) inBlock)[0]);	word32 right = LE32 (((word32 *) inBlock)[1]);	const word32 *const s = key->sbox;	const word32 * p = encrypt ? key->pbox : key->pbox_dec;	unsigned i;	left ^= p[0];	for (i=0; i<ROUNDS/2; i++)	{		right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])			  ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])			  ^ p[2*i+1];		left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])			 ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])			 ^ p[2*i+2];	}	right ^= p[ROUNDS+1];	((word32 *) outBlock)[0] = LE32 (right);	((word32 *) outBlock)[1] = LE32 (left);}
开发者ID:4nt1m0n,项目名称:truecrypt,代码行数:28,


示例11: crypt_block

// this version is only used to make pbox and sboxstatic void crypt_block(BF_KEY *key, const word32 in[2], word32 out[2]){	word32 left = in[0];	word32 right = in[1];	const word32 *const s=key->sbox;	const word32 *p=key->pbox;	unsigned i;	left ^= p[0];	for (i=0; i<ROUNDS/2; i++)	{		right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])			  ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])			  ^ p[2*i+1];		left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])			 ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])			 ^ p[2*i+2];	}	right ^= p[ROUNDS+1];	out[0] = right;	out[1] = left;}
开发者ID:4nt1m0n,项目名称:truecrypt,代码行数:29,


示例12: GetBlockBigEndian

void Blowfish::ProcessBlock(const byte *in, byte *out) const{	word32 left, right;	GetBlockBigEndian(in, left, right);	const word32 *const s=sbox;	const word32 *p=pbox;	left ^= p[0];	for (unsigned i=0; i<ROUNDS/2; i++)	{		right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])			  ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])			  ^ p[2*i+1];		left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])			 ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])			 ^ p[2*i+2];	}	right ^= p[ROUNDS+1];	PutBlockBigEndian(out, right, left);}
开发者ID:killbug2004,项目名称:WSProf,代码行数:25,


示例13: return

byte LC_RNG::GenerateByte(){	word32 hi = seed/q;	word32 lo = seed%q;	long test = a*lo - r*hi;	if (test > 0)		seed = test;	else		seed = test+ m;	return (GETBYTE(seed, 0) ^ GETBYTE(seed, 1) ^ GETBYTE(seed, 2) ^ GETBYTE(seed, 3));}
开发者ID:LjApps,项目名称:eMule-VeryCD,代码行数:14,


示例14: archive_fetch_data

uint64_t archive_fetch_data(int fd, int size){	unsigned char data[8] = { 0 };	uint64_t val = 0;	if (read(fd, data, size) != size) {		DPRINTF("Invalid data block/n");		return (uint64_t)-1;	}	switch (size) {		case 1:	val = GETBYTE(data);			break;		case 2:	val = GETWORD(data);			break;		case 4:	val = GETUINT32(data);			break;		case 8: val = GETUINT64(data);			break;		default:val = (uint64_t)-1;			DPRINTF("Cannot get %d bytes: Not implemented/n", size);			break;	}	return val;}
开发者ID:MigNov,项目名称:archiver,代码行数:26,


示例15: GETDWORD

// Disconnect client from char/world serverbool CCharServer::pakLoginDSClient( CCharClient* thisclient, CPacket* P ){    unsigned int userid = GETDWORD((*P), 1 );    CCharClient* otherclient = GetClientByUserID( userid );    BYTE action = GETBYTE((*P),0);    switch(action)    {        case 1:        {            if(otherclient==NULL)            {                Log( MSG_WARNING, "Userid '%u' is not online", userid );                return true;            }            otherclient->isLoggedIn = false;            otherclient->isActive = false;            BEGINPACKET( pak, 0x502 );            ADDBYTE    ( pak, 1 );            ADDDWORD   ( pak, userid );            //ADDBYTE    ( pak, 0x00 );            //cryptPacket( (char*)&pak, NULL );            CChanels* thischannel = GetChannelByID( otherclient->channel );            if(thischannel!=NULL)                send( thischannel->sock, (char*)&pak, pak.Size, 0 );        }        break;    }    return true;}
开发者ID:boermansjo,项目名称:KTRose_Server,代码行数:30,


示例16: GETWORD

unsigned short CJpegParse::GetComment(PTJpegIndex pinfo, unsigned char *ptr){	unsigned short len = GETWORD(ptr, 0);	pinfo->frmcnt = GETWORD_INV(ptr, 2);	pinfo->qf = GETBYTE(ptr, 25);	return len;}
开发者ID:stormbay,项目名称:jpeg.tools,代码行数:9,


示例17: mysql_fetch_row

// delete/resurect characterbool CCharServer::pakDeleteChar( CCharClient* thisclient, CPacket* P ){	if(!thisclient->isLoggedIn) return false;    	char* name = (char*)&P->Buffer[2];    MYSQL_RES *result;	MYSQL_ROW row;	result = DB->QStore("SELECT account_name FROM characters WHERE char_name='%s' LIMIT 1", name);	if(result==NULL) return false;	row = mysql_fetch_row(result);	if (strcmp(row[0], thisclient->username)!=0)	{	    Log(MSG_HACK, "User %s tried deleting another users (%s) character.", thisclient->username, name);	    DB->QFree( );	    return false;	}	DB->QFree( );    short int action = GETBYTE((*P), 1 );    unsigned long int DeleteTime = 0;    switch(action)    {        case 0x00://Resurect        {            DeleteTime = 0;            if(!DB->QExecute(" UPDATE characters SET deletetime=0 WHERE char_name='%s'",                     (char*)&P->Buffer[2] ))                return false;        }        break;        case 0x01://Delete        {            DeleteTime = GetServerTime( ) + Config.DeleteTime;            if(!DB->QExecute(" UPDATE characters SET deletetime=%i WHERE char_name='%s'",                     DeleteTime, (char*)&P->Buffer[2] ))                return false;               }        break;    }    BEGINPACKET( pak, 0x714 );    if(DeleteTime > 0 )     {        ADDDWORD   ( pak, Config.DeleteTime );    }    else    {        ADDDWORD   ( pak, 0x00000000 );    }    ADDSTRING  ( pak, (char*)&P->Buffer[2] );    ADDBYTE    ( pak, 0x00 );    thisclient->SendPacket( &pak );             return true;}
开发者ID:osROSE,项目名称:osrose,代码行数:53,


示例18: GETBYTE

// Change Party Optionsbool CWorldServer::pakPartyOption( CPlayer* thisclient, CPacket* P ){    if(!thisclient->Party->IsMaster)        return true;    CParty* party = thisclient->Party->party;    if(party==NULL)        return true;    party->Option = GETBYTE((*P),0);    BEGINPACKET( pak, 0x7d7 );    ADDBYTE    ( pak, party->Option );    ADDBYTE    ( pak, 0x00 );    party->SendToMembers( &pak );    return true;}
开发者ID:TheDgtl,项目名称:osrose-droprev,代码行数:15,


示例19: read_pubenc_keyid

static intread_pubenc_keyid(PullFilter *pkt, uint8 *keyid_buf){	uint8		ver;	int			res;	GETBYTE(pkt, ver);	if (ver != 3)		return -1;	res = pullf_read_fixed(pkt, 8, keyid_buf);	if (res < 0)		return res;	return pgp_skip_packet(pkt);}
开发者ID:PengJi,项目名称:gpdb-comments,代码行数:16,


示例20: GETDWORD

// Send server IPbool CLoginServer::pakGetIP( CLoginClient* thisclient, CPacket* P ){	if (!thisclient->isLoggedIn) return false;	;	MYSQL_ROW row;	DWORD servernum = GETDWORD( (*P), 0 );	BYTE channelnum = GETBYTE( (*P), 4 );	BEGINPACKET( pak, 0x70a );	if(!DB->QExecute( "UPDATE accounts SET lastsvr=%i,lastip='%s',lasttime=UNIX_TIMESTAMP( NOW() ) WHERE id=%i", channelnum, inet_ntoa( thisclient->clientinfo.sin_addr ), thisclient->userid))	   return false;	MYSQL_RES *result = DB->QStore( "SELECT host,port,lanip,lansubmask,connected,maxconnections FROM channels WHERE id=%i and type=1", servernum );    if(result==NULL) return false;	if(mysql_num_rows(result)!=1)	{        Log(MSG_WARNING, "Player selected a invalid channel or channel offline" );        DB->QFree( );        return true;    }	row = mysql_fetch_row(result);	UINT connected = atoi(row[4]);	UINT maxconnections = atoi(row[5]);	ADDBYTE( pak, 0 );	ADDDWORD( pak, thisclient->userid );	ADDDWORD( pak, 0x87654321 );	if(strcmp(thisclient->ClientSubNet,row[3])==0)//from lan	{        ADDSTRING( pak, row[2] );       	Log(MSG_INFO, "Lan: %s choice channel #%i", thisclient->username.c_str(), channelnum);    }    else if(strcmp( thisclient->ClientSubNet ,"127.0.0")==0)//same computer    {        ADDSTRING( pak, "127.0.0.1" );       	Log(MSG_INFO, "Server: %s choice channel #%i", thisclient->username.c_str(), channelnum);    }    else    {        ADDSTRING( pak, row[0] );       	Log(MSG_INFO, "Inet: %s choice channel #%i", thisclient->username.c_str(), channelnum);    }	ADDBYTE( pak, 0 );	ADDWORD( pak, atoi(row[1]) );	DB->QFree( );	thisclient->SendPacket ( &pak );    return true;}
开发者ID:boermansjo,项目名称:KTRose_Server,代码行数:48,


示例21: GETBYTE

// ???bool CCharServer::pak7e5 ( CCharClient* thisclient, CPacket* P ){	if(!thisclient->isLoggedIn) return false;               BYTE action = GETBYTE((*P),0);    switch(action)    {        case 0x03:                BEGINPACKET( pak, 0x7e5 );                ADDBYTE    ( pak, 0x01 );                ADDWORD    ( pak, 0x0000 );                thisclient->SendPacket( &pak );        break;        default:            Log( MSG_WARNING,"Unknown 7e5 action %i",action);    }    return true;}
开发者ID:osROSE,项目名称:osrose,代码行数:18,


示例22: SquareTransform

// apply theta to a roundkeystatic void SquareTransform (word32 in[4], word32 out[4]){	static const byte G[4][4] = 	{		0x02U, 0x01U, 0x01U, 0x03U, 		0x03U, 0x02U, 0x01U, 0x01U, 		0x01U, 0x03U, 0x02U, 0x01U, 		0x01U, 0x01U, 0x03U, 0x02U	};	GF256 gf256(0xf5);	for (int i = 0; i < 4; i++)	{		word32 temp = 0;		for (int j = 0; j < 4; j++)			for (int k = 0; k < 4; k++)				temp ^= (word32)gf256.Multiply(GETBYTE(in[i], 3-k), G[k][j]) << ((3-j)*8);		out[i] = temp;	}}
开发者ID:0xmono,项目名称:miranda-ng,代码行数:22,


示例23: byteReverse

void Blowfish::ProcessBlock(const byte *in, byte *out) const{#ifdef IS_LITTLE_ENDIAN	word32 left = byteReverse(*(word32 *)in);	word32 right = byteReverse(*(word32 *)(in+4));#else	word32 left = *(word32 *)in;	word32 right = *(word32 *)(in+4);#endif	const word32 *const s=sbox;	const word32 *p=pbox;	left ^= p[0];	for (unsigned i=0; i<ROUNDS/2; i++)	{		right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])			  ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])			  ^ p[2*i+1];		left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])			 ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])			 ^ p[2*i+2];	}	right ^= p[ROUNDS+1];#ifdef IS_LITTLE_ENDIAN	*(word32 *)out = byteReverse(right);	*(word32 *)(out+4) = byteReverse(left);#else	*(word32 *)out = right;	*(word32 *)(out+4) = left;#endif}
开发者ID:AmesianX,项目名称:encryption-library,代码行数:36,


示例24: v2_srv_rply

static int v2_srv_rply(int flags) {	unsigned short itemcnt, errcode;	int n;	if (flags & F_SUM) {	    int i, auth_cnt;	    GETSHORT(errcode);	    if (errcode != OK) {		strcat(msgbuf, slpv2_error(errcode));		msglength = 0;	/* skip rest of message */		return (0);	    } else {		GETSHORT(itemcnt);		sprintf(msgend, "%d URL entries", itemcnt);#ifdef VERIFYSLP		for (n = 0; n < itemcnt; n++) {		    SKIPBYTE;			/* reserved */		    SKIPSHORT;			/* lifetime */		    SKIPFIELD(FIELD_DEFAULT);	/* URL */		    GETBYTE(auth_cnt);		    for (i = 0; i < auth_cnt; auth_cnt++)			if (skip_v2authblock() < 0)			    return (0);		}#endif	    }	} else if (flags & F_DTAIL) {	    V2_DOERRCODE;	    GETSHORT(itemcnt);	    sprintf(get_line(0, 0), "URL entry count = %d", itemcnt);	    for (n = 0; n < itemcnt; n++) {		V2_DOURL(n);	    }	}	return (1);}
开发者ID:jasonbking,项目名称:illumos-gate,代码行数:38,


示例25: v2_srv_dereg

static int v2_srv_dereg(int flags) {	if (flags & F_SUM) {	    int i, auth_cnt;	    SKIPFIELD(FIELD_DEFAULT);	/* scopes */	    SKIPBYTE;			/* reserved */	    SKIPSHORT;			/* lifetime */	    GETFIELD;			/* URL */#ifdef VERIFYSLP	    GETBYTE(auth_cnt);	    for (i = 0; i < auth_cnt; i++)		if (skip_v2authblock() < 0)		    return (0);	    SKIPFIELD(FIELD_DEFAULT);	/* attrs */#endif	} else if (flags & F_DTAIL) {	    DOFIELD("Scopes", FIELD_DEFAULT);	    V2_DOURL(-1);	    DOFIELD("Tag list",  FIELD_DEFAULT);	}	return (1);}
开发者ID:jasonbking,项目名称:illumos-gate,代码行数:24,


示例26: process_secret_key

static intprocess_secret_key(PullFilter *pkt, PGP_PubKey **pk_p,				   const uint8 *key, int key_len){	int			res;	int			hide_type;	int			cipher_algo;	int			bs;	uint8		iv[512];	PullFilter *pf_decrypt = NULL,			   *pf_key;	PGP_CFB    *cfb = NULL;	PGP_S2K		s2k;	PGP_PubKey *pk;	/* first read public key part */	res = _pgp_read_public_key(pkt, &pk);	if (res < 0)		return res;	/*	 * is secret key encrypted?	 */	GETBYTE(pkt, hide_type);	if (hide_type == HIDE_SHA1 || hide_type == HIDE_CKSUM)	{		if (key == NULL)			return PXE_PGP_NEED_SECRET_PSW;		GETBYTE(pkt, cipher_algo);		res = pgp_s2k_read(pkt, &s2k);		if (res < 0)			return res;		res = pgp_s2k_process(&s2k, cipher_algo, key, key_len);		if (res < 0)			return res;		bs = pgp_get_cipher_block_size(cipher_algo);		if (bs == 0)		{			px_debug("unknown cipher algo=%d", cipher_algo);			return PXE_PGP_UNSUPPORTED_CIPHER;		}		res = pullf_read_fixed(pkt, bs, iv);		if (res < 0)			return res;		/*		 * create decrypt filter		 */		res = pgp_cfb_create(&cfb, cipher_algo, s2k.key, s2k.key_len, 0, iv);		if (res < 0)			return res;		res = pullf_create(&pf_decrypt, &pgp_decrypt_filter, cfb, pkt);		if (res < 0)			return res;		pf_key = pf_decrypt;	}	else if (hide_type == HIDE_CLEAR)	{		pf_key = pkt;	}	else	{		px_debug("unknown hide type");		return PXE_PGP_KEYPKT_CORRUPT;	}	/* read secret key */	switch (pk->algo)	{		case PGP_PUB_RSA_SIGN:		case PGP_PUB_RSA_ENCRYPT:		case PGP_PUB_RSA_ENCRYPT_SIGN:			res = pgp_mpi_read(pkt, &pk->sec.rsa.d);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->sec.rsa.p);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->sec.rsa.q);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->sec.rsa.u);			if (res < 0)				break;			break;		case PGP_PUB_ELG_ENCRYPT:			res = pgp_mpi_read(pf_key, &pk->sec.elg.x);			break;		case PGP_PUB_DSA_SIGN:			res = pgp_mpi_read(pf_key, &pk->sec.dsa.x);			break;		default:			px_debug("unknown public algo: %d", pk->algo);			res = PXE_PGP_KEYPKT_CORRUPT;	}	/* read checksum / sha1 */	if (res >= 0)	{//.........这里部分代码省略.........
开发者ID:Joe-xXx,项目名称:postgres-old-soon-decommissioned,代码行数:101,


示例27: _pgp_read_public_key

int_pgp_read_public_key(PullFilter *pkt, PGP_PubKey **pk_p){	int			res;	PGP_PubKey *pk;	res = pgp_key_alloc(&pk);	if (res < 0)		return res;	/* get version */	GETBYTE(pkt, pk->ver);	if (pk->ver != 4)	{		res = PXE_PGP_NOT_V4_KEYPKT;		goto out;	}	/* read time */	res = pullf_read_fixed(pkt, 4, pk->time);	if (res < 0)		goto out;	/* pubkey algorithm */	GETBYTE(pkt, pk->algo);	switch (pk->algo)	{		case PGP_PUB_DSA_SIGN:			res = pgp_mpi_read(pkt, &pk->pub.dsa.p);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->pub.dsa.q);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->pub.dsa.g);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->pub.dsa.y);			if (res < 0)				break;			res = calc_key_id(pk);			break;		case PGP_PUB_RSA_SIGN:		case PGP_PUB_RSA_ENCRYPT:		case PGP_PUB_RSA_ENCRYPT_SIGN:			res = pgp_mpi_read(pkt, &pk->pub.rsa.n);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->pub.rsa.e);			if (res < 0)				break;			res = calc_key_id(pk);			if (pk->algo != PGP_PUB_RSA_SIGN)				pk->can_encrypt = 1;			break;		case PGP_PUB_ELG_ENCRYPT:			res = pgp_mpi_read(pkt, &pk->pub.elg.p);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->pub.elg.g);			if (res < 0)				break;			res = pgp_mpi_read(pkt, &pk->pub.elg.y);			if (res < 0)				break;			res = calc_key_id(pk);			pk->can_encrypt = 1;			break;		default:			px_debug("unknown public algo: %d", pk->algo);			res = PXE_PGP_UNKNOWN_PUBALGO;	}out:	if (res < 0)		pgp_key_free(pk);	else		*pk_p = pk;	return res;}
开发者ID:Joe-xXx,项目名称:postgres-old-soon-decommissioned,代码行数:90,



注:本文中的GETBYTE函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GETC函数代码示例
C++ GETBIT函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。