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

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

?? byte_string.c

?? 斯坦福大學密碼學家Boneh的基于身份的公鑰密碼系統
?? 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| 亚洲免费在线播放| 日韩午夜小视频| 欧美一区二区在线看| 91精品在线免费| 91精品国产日韩91久久久久久| 欧美日韩免费一区二区三区 | 国产综合久久久久影院| 蜜臀va亚洲va欧美va天堂 | 99久久精品免费看国产| 99久久国产综合色|国产精品| 99久久伊人久久99| 色播五月激情综合网| 91激情五月电影| 欧美无乱码久久久免费午夜一区 | 日韩视频免费观看高清完整版| 欧美精品久久一区二区三区 | 日韩1区2区3区| 九九九久久久精品| 国产高清不卡一区二区| 成人丝袜视频网| 99re热这里只有精品免费视频| 一本一道综合狠狠老| 欧美日韩精品专区| 欧美一区二区三区四区高清| 日韩你懂的电影在线观看| 欧美电影免费观看完整版| 国产三级精品视频| 亚洲乱码国产乱码精品精98午夜| 亚洲免费观看在线视频| 日韩在线一区二区三区| 国产成人亚洲综合色影视| 91亚洲永久精品| 555www色欧美视频| 久久免费偷拍视频| 亚洲柠檬福利资源导航| 水蜜桃久久夜色精品一区的特点| 久久精品国产亚洲一区二区三区| 国产福利91精品一区| 日本高清不卡视频| 欧美电视剧在线看免费| 国产精品乱子久久久久| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲资源中文字幕| 精品亚洲欧美一区| 色天使久久综合网天天| 日韩午夜中文字幕| 亚洲乱码中文字幕| 久久99这里只有精品| 色综合久久久久综合| 精品粉嫩超白一线天av| 亚洲国产综合在线| 成人免费毛片高清视频| 69堂亚洲精品首页| 国产精品激情偷乱一区二区∴| 日产国产欧美视频一区精品 | 国产精品久久午夜| 日韩国产欧美视频| 91日韩在线专区| 久久亚洲精华国产精华液| 亚洲伊人色欲综合网| 成人av在线播放网站| 日韩一区二区三区在线| 一区二区三区视频在线看| 国产福利一区在线| 欧美r级在线观看| 亚洲妇女屁股眼交7| 99精品欧美一区| 国产无一区二区| 免费观看日韩av| 欧美特级限制片免费在线观看| 久久精品亚洲精品国产欧美kt∨| 日本视频中文字幕一区二区三区| 色综合久久99| 国产精品日韩精品欧美在线| 久久成人久久鬼色| 6080亚洲精品一区二区| 亚洲男帅同性gay1069| 处破女av一区二区| 久久久久久久久久久黄色| 免费观看91视频大全| 欧美情侣在线播放| 一区二区三区高清| 一本久久综合亚洲鲁鲁五月天| 国产精品素人一区二区| 国产精品资源在线看| 欧美xxxxx牲另类人与| 日本亚洲三级在线| 欧美精品xxxxbbbb| 国产盗摄视频一区二区三区| 日韩一区二区在线播放| 天堂蜜桃一区二区三区| 欧美丝袜丝交足nylons图片| 亚洲精品老司机| 91免费国产在线| 国产精品久久久久aaaa樱花 | 久久日韩精品一区二区五区| 日韩电影一二三区| 日韩一级在线观看| 日本中文一区二区三区| 91精品国产入口| 美腿丝袜亚洲一区| 日韩欧美一区二区视频| 日韩电影免费在线| 日韩欧美一区二区久久婷婷| 日韩不卡手机在线v区| 日韩视频国产视频| 国内外成人在线| 国产亚洲精品福利| 成熟亚洲日本毛茸茸凸凹| 国产精品毛片大码女人| 91香蕉视频黄| 亚洲国产一区在线观看| 欧美电影在线免费观看| 蜜桃av一区二区三区| 精品国产一区二区三区av性色| 国产一区欧美一区| 国产性做久久久久久| 波多野结衣在线一区| 亚洲少妇屁股交4| 欧美在线一区二区三区| 午夜精品成人在线视频| 精品理论电影在线观看| 从欧美一区二区三区| 亚洲视频香蕉人妖| 制服丝袜av成人在线看| 激情深爱一区二区| 亚洲视频免费观看| 91精品国产全国免费观看| 国产一区二区在线观看视频| 国产精品乱子久久久久| 欧美日韩在线免费视频| 激情另类小说区图片区视频区| 国产精品美女一区二区三区| 色婷婷精品大视频在线蜜桃视频| 日本中文字幕一区二区有限公司| 久久久久久亚洲综合| 91视频免费观看| 久久精品国产亚洲高清剧情介绍 | 国产一区久久久| 专区另类欧美日韩| 欧美一区二区三区视频免费| 国产精品亚洲一区二区三区在线 | 亚洲乱码精品一二三四区日韩在线| 欧美日韩大陆一区二区| 国产尤物一区二区在线| 一区二区三区欧美亚洲| 精品人在线二区三区| 99热99精品| 美女精品一区二区| 亚洲免费在线观看视频| 久久亚洲欧美国产精品乐播| 91影视在线播放| 精品一区在线看| 亚洲电影在线播放| 国产亚洲欧洲997久久综合| 色噜噜狠狠色综合欧洲selulu| 久久 天天综合| 亚洲精品国产精华液| 国产亚洲欧美在线| 91精品国产乱| 91麻豆.com| 粉嫩嫩av羞羞动漫久久久| 免费观看日韩电影| 亚洲综合激情网| 中文字幕免费在线观看视频一区| 日韩一卡二卡三卡国产欧美| 欧洲色大大久久| 成人免费av资源| 精品国产91亚洲一区二区三区婷婷| 色一情一乱一乱一91av| 男男成人高潮片免费网站| 国产精品国产三级国产aⅴ中文| 日韩一级片网址| 在线观看91精品国产入口| 粉嫩av一区二区三区| 精品一区在线看| 日韩av网站免费在线| 亚洲国产精品一区二区久久恐怖片 | 欧美一区二区三区四区久久| 色婷婷一区二区| 99国产精品国产精品久久| 国产91丝袜在线18| 精品一区二区国语对白| 男女男精品视频网| 日本aⅴ亚洲精品中文乱码| 亚洲国产精品久久人人爱蜜臀| 亚洲欧美日韩电影| 国产精品久久久久久久久快鸭| 国产欧美一区二区精品性色超碰| 日韩欧美国产综合| 日韩一区二区视频在线观看| 91精品国产综合久久精品app| 在线区一区二视频| 一本一本久久a久久精品综合麻豆| 成人av电影免费在线播放| 成人精品视频一区二区三区| 成人综合在线观看| 成人午夜视频免费看| 成人avav影音|