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

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

?? byte_string.c

?? standford大學密碼學家DaBo的2002年的有關IBE的源代碼
?? 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一区二区三区免费野_久草精品视频
亚洲无人区一区| 色综合久久久久| 夜夜揉揉日日人人青青一国产精品| 精品国产乱码久久久久久牛牛| 色成年激情久久综合| 成人精品视频一区| 国产成人综合在线播放| 黄色日韩三级电影| 国产真实乱子伦精品视频| 麻豆国产欧美日韩综合精品二区| 亚洲一区二区黄色| 午夜精品久久久久久久99樱桃| 亚洲成人中文在线| 亚洲成人先锋电影| 奇米777欧美一区二区| 婷婷中文字幕综合| 免费视频最近日韩| 国产一区二区三区在线观看精品| 黄网站免费久久| 处破女av一区二区| 一本大道av伊人久久综合| 欧美在线观看18| 9191成人精品久久| 精品日韩在线观看| 国产精品女同互慰在线看| 国产精品免费免费| 亚洲美女电影在线| 久久精品国产免费| 国产呦精品一区二区三区网站| 香蕉久久一区二区不卡无毒影院| 婷婷一区二区三区| 国产成人免费视| 在线精品视频免费播放| 日韩一区二区影院| 中文字幕免费不卡在线| 国产精品福利在线播放| 午夜精品久久久久久久久久| 国产精品一区二区久久精品爱涩 | 青青草原综合久久大伊人精品 | 欧美va亚洲va| 《视频一区视频二区| 肉肉av福利一精品导航| 成人性色生活片| 欧美色网一区二区| 国产午夜亚洲精品羞羞网站| 亚洲精品自拍动漫在线| 国产综合久久久久久久久久久久| 99精品久久只有精品| 日韩一二三四区| 亚洲视频一区在线| 国产真实乱对白精彩久久| 欧洲中文字幕精品| 欧美韩日一区二区三区| 日本欧美一区二区三区乱码| 成人黄色a**站在线观看| 精品视频资源站| 国产精品毛片久久久久久久| 精品制服美女丁香| 欧美美女激情18p| 亚洲欧洲中文日韩久久av乱码| 精品在线你懂的| 宅男噜噜噜66一区二区66| 国产精品久久久久久福利一牛影视 | 精品国产麻豆免费人成网站| 亚洲精品一二三| thepron国产精品| 国产欧美中文在线| 国产精品白丝jk白祙喷水网站| 7777女厕盗摄久久久| 亚洲丝袜美腿综合| 色综合视频在线观看| 中文字幕巨乱亚洲| 国产成人免费9x9x人网站视频| 欧美一二区视频| 视频一区欧美日韩| www国产成人免费观看视频 深夜成人网| 一区二区在线观看免费视频播放| 成人免费观看视频| 国产精品久久久久久妇女6080| 国产成人综合在线观看| 欧美国产乱子伦| 成人av动漫在线| 国产精品美女久久福利网站| 懂色av一区二区三区免费观看| 久久久99精品免费观看| 高清不卡一区二区| 中国av一区二区三区| 成人av网在线| 亚洲精品一二三| 欧美性videosxxxxx| 日韩精品欧美精品| 欧美成人欧美edvon| 国产一区二区在线观看免费| 久久久久久久性| 99在线精品视频| 亚洲精品第一国产综合野| 欧美亚一区二区| 天堂va蜜桃一区二区三区| 日韩一级片在线播放| 国产精品自拍三区| 一区二区欧美视频| 欧美色网站导航| 国产在线视频一区二区| 欧美国产日韩亚洲一区| 91色在线porny| 午夜成人免费电影| 欧美精品一区二区精品网| 成人网男人的天堂| 亚洲韩国精品一区| 2014亚洲片线观看视频免费| 成人国产精品免费观看动漫| 亚洲一区视频在线| 精品少妇一区二区三区视频免付费| 国产精品一区二区男女羞羞无遮挡| 国产精品三级电影| 91麻豆精品国产91久久久久久| 国产一区二区三区高清播放| 亚洲美女一区二区三区| 欧美成人一级视频| 99久久精品免费精品国产| 亚洲电影视频在线| 中文字幕欧美区| 6080亚洲精品一区二区| 成人综合婷婷国产精品久久| 亚洲成a人v欧美综合天堂| 国产日韩精品一区二区三区在线| 色欧美88888久久久久久影院| 久久国产人妖系列| 亚洲免费色视频| 国产亚洲欧美在线| 4438亚洲最大| 91久久国产综合久久| 国产一区二区在线看| 日本麻豆一区二区三区视频| 亚洲免费在线视频一区 二区| 久久色在线视频| 日韩一级免费一区| 欧美日韩精品综合在线| 91亚洲精品一区二区乱码| 国产在线精品不卡| 免费在线看成人av| 亚洲国产乱码最新视频| 中文字幕综合网| 国产精品三级av| 欧美国产精品一区二区三区| 精品国内片67194| 91精品一区二区三区久久久久久| 欧美影院一区二区| 色呦呦一区二区三区| 成人精品免费网站| 成人午夜电影久久影院| 国产精品18久久久久久vr| 美女视频一区在线观看| 日韩精品欧美成人高清一区二区| 亚洲综合区在线| 亚洲三级小视频| 欧美精品一区二区不卡| 欧美成人精精品一区二区频| 91精品国模一区二区三区| 欧美精品久久一区二区三区| 欧美三级三级三级爽爽爽| 91豆麻精品91久久久久久| 成人午夜碰碰视频| 91麻豆免费观看| 色噜噜狠狠成人网p站| 日本电影欧美片| 欧美主播一区二区三区| 欧美三级中文字幕在线观看| 久草中文综合在线| 国产成人免费视频精品含羞草妖精| 国产精品一区二区在线看| 成人三级伦理片| 91丨porny丨首页| 欧美综合色免费| 制服视频三区第一页精品| 精品国内片67194| 久久影视一区二区| 国产精品美女久久久久久久久 | 国产精品传媒视频| 亚洲免费观看视频| 日韩不卡一区二区| 国产精品12区| 欧美日韩激情一区二区三区| 欧美一卡二卡在线| 国产亚洲精品超碰| 亚洲一区中文日韩| 韩日精品视频一区| 91尤物视频在线观看| 欧美高清精品3d| 国产亚洲精品aa午夜观看| 亚洲美女偷拍久久| 韩国精品免费视频| 在线观看三级视频欧美| 日韩精品一区二区在线| 最新成人av在线| 玖玖九九国产精品| 色域天天综合网| 久久精品一区蜜桃臀影院| 亚洲第一精品在线| 成人av影视在线观看|