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

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

?? byte_string.c

?? 這是一個unix環境下實現基于身份的PKI系統源碼
?? C
字號:
/* byte_string routines * Ben Lynn *//*Copyright (C) 2001 Benjamin Lynn (blynn@cs.stanford.edu)See LICENSE for license*/#include <stdlib.h>#include <string.h>#include "byte_string.h"#include "mm.h"void byte_string_init(byte_string_t bs, int n){    bs->data = (unsigned char *) malloc(n * sizeof(unsigned char));    bs->len = n;    mm_tally("bs", bs->origlen = n, "init");}void byte_string_reinit(byte_string_t bs, int n){    bs->data = (unsigned char *) realloc(bs->data, n * sizeof(unsigned char));    bs->len = n;    mm_tally("bs", n - bs->origlen, "reinit");    bs->origlen = n;}void byte_string_fprintf(FILE *fp, byte_string_t bs, char *format){    int i;    for(i=0; i<bs->len; i++) {	fprintf(fp, format, bs->data[i]);    }}void byte_string_printf(byte_string_t bs, char *format){    int i;    for(i=0; i<bs->len; i++) {	printf(format, bs->data[i]);    }}void byte_string_set(byte_string_t bs, const char *s){    byte_string_init(bs, strlen(s));    memcpy(bs->data, s, bs->len);}void byte_string_assign(byte_string_t bs, byte_string_t src){    bs->data = src->data;    bs->len = src->len;    bs->origlen = src->len;}void byte_string_copy(byte_string_t bs, byte_string_t src){    byte_string_init(bs, src->len);    memcpy(bs->data, src->data, bs->len);}int byte_string_cmp(byte_string_t bs, byte_string_t bs2){    int i;    int result;    i = bs->len < bs2->len ? bs->len : bs2->len;    result = memcmp(bs->data, bs2->data, i);    if (!result) {	if (bs->len == bs2->len) return 0;	else return bs->len > bs2->len;    } else return result;}void byte_string_clear(byte_string_t bs){    if (bs->len) {	mm_tally("bs", -bs->len, "free");	free(bs->data);	bs->len = 0;    } else {	fprintf(stderr, "BUG! double byte_string_clear()\n");    }}void byte_string_set_int(byte_string_t bs, int n){    byte_string_init(bs, 4);    bs->len = 4;    bs->data[0] = (unsigned char) n >> 24;    bs->data[1] = (unsigned char) n >> 16;    bs->data[2] = (unsigned char) n >> 8;    bs->data[3] = (unsigned char) n;}char* charstar_from_byte_string(byte_string_t bs){    char *result;    result = malloc(bs->len + 1);    memcpy(result, bs->data, bs->len);    result[bs->len] = 0;    return result;}int int_from_byte_string(byte_string_t bs){    int result;    if (bs->len != 4) return 0;    result = bs->data[3] + (bs->data[2] << 8)	+ (bs->data[1] << 16) + (bs->data[0] << 24);    return result;}void byte_string_encode_array(byte_string_t bs, byte_string_t *bsa, int n){    int i;    int offset;    bs->len = 2 + 2 * n;    for (i=0; i<n; i++) {	bs->len += bsa[i]->len;    }    bs->data = (unsigned char *) malloc(bs->len * sizeof(unsigned char));    mm_tally("bs", bs->origlen = bs->len, "encode");    bs->data[0] = (unsigned char) (n >> 8);    bs->data[1] = (unsigned char) n;    offset = 2;    for (i=0; i<n; i++) {	bs->data[offset++] = (unsigned char) (bsa[i]->len >> 8);	bs->data[offset++] = (unsigned char) bsa[i]->len;    }    for (i=0; i<n; i++) {	memcpy(&bs->data[offset], bsa[i]->data, bsa[i]->len);	offset += bsa[i]->len;    }    /* alternative representation: harder to check    bs->data[0] = (unsigned char) (n >> 8);    bs->data[1] = (unsigned char) n;    offset = 2;    for (i=0; i<n; i++) {	bs->data[offset] = (unsigned char) (bsa[i]->len >> 8);	bs->data[offset + 1] = (unsigned char) bsa[i]->len;	memcpy(&bs->data[offset + 2], bsa[i]->data, bsa[i]->len);	offset += bsa[i]->len + 2;    }    */}void byte_string_decode_array(byte_string_t **bsarray, int *n, byte_string_t bs){    int i;    int offset;    int total;    byte_string_t *bsa;    if (bs->len < 2) {	*n = 0;	*bsarray = NULL;	return;    }    *n = (bs->data[0] << 8) + bs->data[1];    if (bs->len < 2 + 2 * *n) {	*n = 0;	*bsarray = NULL;	return;    }    bsa = (byte_string_t *) malloc(*n * sizeof(byte_string_t));    offset = 2;    total = 0;    for (i=0; i<*n; i++) {	bsa[i]->len = (bs->data[offset] << 8) + bs->data[offset + 1];	offset += 2;	total += bsa[i]->len;    }    if (bs->len != total + offset) {	*n = 0;	*bsarray = NULL;	free(bsa);	return;    }    for (i=0; i<*n; i++) {	bsa[i]->data = (unsigned char *) malloc(bsa[i]->len * sizeof(unsigned char));	mm_tally("bs", bsa[i]->origlen = bsa[i]->len, "decode");	memcpy(bsa[i]->data, &bs->data[offset], bsa[i]->len);	offset += bsa[i]->len;    }    /* alternative serialization scheme    for (i=0; i<*n; i++) {	bsa[i]->len = (bs->data[offset] << 8) + bs->data[offset + 1];	bsa[i]->data = (unsigned char *) malloc(bsa[i]->len * sizeof(unsigned char));	memcpy(bsa[i]->data, &bs->data[offset + 2], bsa[i]->len);	offset += bsa[i]->len + 2;    }    */    *bsarray = bsa;}//for convenience: same version of above,//but when there's only 2 byte_stringsvoid byte_string_join(byte_string_t bs, byte_string_t bs1, byte_string_t bs2){    byte_string_t bsa[2];    byte_string_assign(bsa[0], bs1);    byte_string_assign(bsa[1], bs2);    byte_string_encode_array(bs, bsa, 2);}void byte_string_split(byte_string_t bs1, byte_string_t bs2, byte_string_t bs){    byte_string_t *bsa;    int n;    byte_string_decode_array(&bsa, &n, bs);    if (n == 2) {	byte_string_assign(bs1, bsa[0]);	byte_string_assign(bs2, bsa[1]);    } else {	int i;	bs1->len = 0;	bs2->len = 0;	for(i=0; i<n; i++) {	    byte_string_clear(bsa[i]);	}    }    free(bsa);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91猫先生在线| 欧美日韩国产另类一区| 亚洲一区二区视频在线观看| 日韩午夜精品电影| 91视频免费观看| 国产一区美女在线| 午夜精品福利一区二区三区av| 久久久久久久久久久久电影| 欧美日韩精品免费| 91免费观看在线| 国产91露脸合集magnet| 奇米精品一区二区三区四区| 一区二区三区在线观看视频| 久久午夜色播影院免费高清| 在线电影一区二区三区| 色综合激情五月| 丁香婷婷综合激情五月色| 蜜桃久久久久久| 午夜视频一区在线观看| 亚洲视频一二区| 国产精品久久久久婷婷| 国产视频在线观看一区二区三区| 欧美精品免费视频| 欧美在线一区二区| 色噜噜狠狠色综合中国| 成人一区二区视频| 国产精品亚洲成人| 激情亚洲综合在线| 久久av中文字幕片| 久久99蜜桃精品| 蜜桃一区二区三区在线观看| 日日欢夜夜爽一区| 亚洲成av人片一区二区梦乃| 一区二区三区在线影院| 一区二区三区四区av| 国产精品不卡一区二区三区| 中文字幕精品一区二区精品绿巨人| 久久综合狠狠综合久久综合88| 91精品国产福利在线观看| 欧美高清www午色夜在线视频| 91麻豆高清视频| 色乱码一区二区三区88| 在线免费观看日本一区| 91福利国产精品| 欧美综合久久久| 欧美偷拍一区二区| 欧美日韩国产乱码电影| 制服丝袜成人动漫| 日韩午夜在线观看视频| 精品成人一区二区| 国产日韩成人精品| 18涩涩午夜精品.www| 亚洲男同1069视频| 亚洲高清不卡在线| 日韩国产精品91| 久久99精品国产麻豆婷婷 | 一区二区三区在线观看国产 | 一区二区三区在线影院| 亚洲国产成人精品视频| 日韩经典一区二区| 欧美mv和日韩mv国产网站| www.爱久久.com| 91官网在线观看| 91精品国产欧美一区二区成人| 精品国产一区a| 国产精品看片你懂得| 亚洲美女精品一区| 日韩电影在线免费看| 国产在线精品一区二区三区不卡| 国产一区二区调教| 色综合一个色综合亚洲| 69av一区二区三区| 欧美激情中文字幕| 亚洲福利视频一区| 国产剧情一区在线| 一本一本久久a久久精品综合麻豆| 欧美日韩国产另类一区| 国产夜色精品一区二区av| 亚洲另类在线制服丝袜| 美腿丝袜在线亚洲一区| 成人av集中营| 欧美一区二区在线视频| 中文字幕精品一区二区三区精品| 亚洲国产日韩精品| 国产河南妇女毛片精品久久久| 色美美综合视频| 久久久精品天堂| 亚洲图片欧美色图| 国产91丝袜在线播放九色| 欧美日韩在线观看一区二区| 久久综合狠狠综合久久激情| 一区二区成人在线观看| 国产一区二区三区免费在线观看| 在线观看视频一区二区欧美日韩| 精品久久免费看| 亚洲成人av资源| 99精品久久久久久| 久久新电视剧免费观看| 五月综合激情婷婷六月色窝| youjizz久久| 精品久久久三级丝袜| 天天综合网天天综合色| 91首页免费视频| 中文字幕欧美区| 精品中文字幕一区二区| 亚洲午夜电影在线| 日韩黄色一级片| 91丨porny丨中文| 国产亚洲综合在线| 奇米综合一区二区三区精品视频| 99久久精品国产导航| 久久免费美女视频| 免费看精品久久片| 欧美日韩国产不卡| 夜夜嗨av一区二区三区四季av| 国产传媒日韩欧美成人| 精品日韩一区二区三区| 日本欧美大码aⅴ在线播放| 日本道在线观看一区二区| 日本一区二区三区久久久久久久久不 | 亚洲色图制服丝袜| 成人在线视频一区| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲免费视频成人| 成人福利视频在线看| 国产拍欧美日韩视频二区| 久久草av在线| 精品国产1区2区3区| 另类小说色综合网站| 91麻豆精品国产91久久久使用方法 | 亚洲免费av观看| 91丨九色丨蝌蚪丨老版| 国产精品久久99| 成人的网站免费观看| 国产精品毛片无遮挡高清| 国产超碰在线一区| 国产欧美一区二区精品仙草咪| 国产精品456露脸| 久久天天做天天爱综合色| 国产一区二区三区最好精华液| 欧美成人r级一区二区三区| 久久精品国产99国产| 欧美xxxx在线观看| 国产精品一线二线三线精华| 国产调教视频一区| av一区二区不卡| 一区二区久久久久| 欧美精品一二三| 久久国产精品99久久久久久老狼| 亚洲精品在线电影| 粉嫩在线一区二区三区视频| 国产精品久久久久久久第一福利| 99精品欧美一区二区三区小说| 亚洲免费资源在线播放| 欧美日韩精品欧美日韩精品一 | 中文字幕的久久| 色综合视频在线观看| 午夜激情综合网| 欧美电影免费提供在线观看| 激情文学综合网| 国产精品九色蝌蚪自拍| 欧美在线一二三四区| 日本不卡一区二区| 国产日韩av一区二区| 色婷婷久久综合| 欧美aaa在线| 中文av一区特黄| 欧美日韩激情一区二区| 国内外精品视频| 亚洲欧美激情在线| 91精品国产综合久久精品| 国产高清久久久| 夜夜揉揉日日人人青青一国产精品| 欧美电影一区二区三区| 粉嫩绯色av一区二区在线观看| 一区二区三区四区中文字幕| 欧美精品777| 高清在线不卡av| 午夜视频在线观看一区二区三区| 久久青草欧美一区二区三区| 91国产视频在线观看| 欧美精品日韩精品| 激情综合色丁香一区二区| 亚洲精品欧美综合四区| 精品人伦一区二区色婷婷| 91丨porny丨首页| 久草中文综合在线| 亚洲综合一区二区精品导航| 欧美精品一区二区在线观看| 在线亚洲人成电影网站色www| 麻豆精品一区二区av白丝在线| 中文字幕在线一区免费| 欧美xxxx老人做受| 欧美系列日韩一区| 丰满少妇久久久久久久| 美女被吸乳得到大胸91| 亚洲电影你懂得| 中文字幕人成不卡一区| 精品欧美一区二区久久| 欧美日韩激情一区二区三区|