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

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

?? torture.c

?? 斯坦福大學密碼學家Boneh的基于身份的公鑰密碼系統
?? C
字號:
/* IBE torture test program * Ben Lynn *//*Copyright (C) 2001 Benjamin Lynn (blynn@cs.stanford.edu)See LICENSE for license*/#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include "ibe.h"#include "crypto.h"enum {    test_kem = 0,    test_split,    test_key,    test_combine,    test_bls,    test_sig,    test_crypto,    test_random,    test_max,    metatest_single = 0,    metatest_multiple,    metatest_thread,    metatest_max};typedef int (*torturefn)(params_t params, byte_string_t master);typedef void (*metatorturefn)(int test_no);struct torture_s {    int index;    torturefn f;    char *name;};struct metatorture_s {    int index;    metatorturefn f;    char *name;};struct two_ints_s {    int i, j;};static struct torture_s torture_table[test_max];static struct metatorture_s metatorture_table[metatest_max];static void random_charstar(char *id, int len){    int i, n;    if (len < 3) return;    n = (rand() % (len - 2)) + 1;    for (i=0; i<n; i++) {	id[i] = (rand() % 127) + 1;    }    id[n] = 0;}static int split_test(params_t params, byte_string_t master){    int t = 10, n = 20;    byte_string_t master2;    int i;    int result = 1;    byte_string_t mshare[n];    IBE_split_master(mshare, master, t, n, params);    for (i=0; i<=n-t; i++) {	IBE_construct_master(master2, &mshare[i], params);	if (byte_string_cmp(master, master2)) {	    result = 0;	}	byte_string_clear(master2);    }    params_robust_clear(params);    for (i=0; i<n; i++) {	byte_string_clear(mshare[i]);    }    return result;}static int combine_test(params_t params, byte_string_t master){    char id[1024];    int i, j;    int t = 5, n = 10;    byte_string_t key;    byte_string_t key2;    byte_string_t mshare[n];    byte_string_t kshare[t];    int result = 1;    IBE_split_master(mshare, master, t, n, params);    random_charstar(id, 1024);    for (j=0; j<=n-t; j++) {	for (i=0; i<t; i++) {	    IBE_extract_share(kshare[i], mshare[i + j], id, params);	}	IBE_combine(key, kshare, params);	IBE_extract(key2, master, id, params);	if (byte_string_cmp(key, key2)) {	    printf("BUG! combine_test() failed\n");	    result = 0;	}	byte_string_clear(key);	byte_string_clear(key2);	for (i=0; i<t; i++) {	    byte_string_clear(kshare[i]);	}    }    for (i=0; i<n; i++) {	byte_string_clear(mshare[i]);    }    params_robust_clear(params);    return result;}static int bls_test(params_t params, byte_string_t master){    byte_string_t priv, pub;    char s[1024];    byte_string_t message;    byte_string_t sig;    int result = 1;    BLS_keygen(priv, pub, params);    random_charstar(s, 1024);    byte_string_set(message, s);    BLS_sign(sig, message, priv, params);    if (!BLS_verify(sig, message, pub, params)) {	printf("BUG! bls_test failed!\n");	result = 0;    }    byte_string_clear(priv);    byte_string_clear(pub);    byte_string_clear(message);    byte_string_clear(sig);    return result;}static int sig_test(params_t params, byte_string_t master){    byte_string_t priv, pub;    char id[1024];    char s[1024];    byte_string_t message;    byte_string_t cert;    byte_string_t sig;    int result = 1;    random_charstar(id, 1024);    random_charstar(s, 1024);    byte_string_set(message, s);    IBE_keygen(priv, pub, params);    IBE_certify(cert, master, pub, id, params);    IBE_sign(sig, message, priv, cert, params);    if (!IBE_verify(sig, message, pub, id, params)) {	printf("BUG! sig_test failed!\n");	result = 0;    }    byte_string_clear(priv);    byte_string_clear(pub);    byte_string_clear(message);    byte_string_clear(cert);    byte_string_clear(sig);    return result;}static int random_test(params_t params, byte_string_t master){    int i = rand() % test_random;    printf("<%s>", torture_table[i].name);    return torture_table[i].f(params, master);}static int kem_test(params_t params, byte_string_t master){    char id[1024];    int i;    byte_string_t U;    byte_string_t key;    byte_string_t K, K2;    int result = 1;    random_charstar(id, 1024);    IBE_extract(key, master, id, params);    for (i=0; i<8; i++) {	IBE_KEM_encrypt(K, U, id, params);	IBE_KEM_decrypt(K2, U, key, params);	byte_string_clear(U);	if (byte_string_cmp(K, K2)) {	    //printf("BUG! KEM is broken!\n");	    result = 0;	}	byte_string_clear(K);	byte_string_clear(K2);    }    byte_string_clear(key);    return result;}static int crypto_test(params_t params, byte_string_t master){    int bufsize = 1024;    byte_string_t K;    unsigned char inbuf[bufsize];    unsigned char cbuf[bufsize + 100];    unsigned char outbuf[bufsize];    int ci, oi, i;    int inc, inc2;    crypto_ctx_t c, c2;    crypto_generate_key(K);    crypto_rand_bytes(inbuf, bufsize);    crypto_ctx_init(c);    crypto_ctx_init(c2);    crypto_encrypt_init(c, K);    crypto_decrypt_init(c2, K);    if (rand() % 2) {	//use random chunk sizes for encrypt_update	i = 0;	oi = 0;	for (;;) {	    inc = 1 + (rand() % 24);	    if (i + inc > bufsize) inc = bufsize - i;	    crypto_encrypt_update(c, cbuf, &ci, &inbuf[i], inc);	    i += inc;	    crypto_decrypt_update(c2, &outbuf[oi], &inc, cbuf, ci);	    oi += inc;	    if (i == bufsize) break;	}	crypto_encrypt_final(c, cbuf, &ci);	crypto_decrypt_update(c2, &outbuf[oi], &inc, cbuf, ci);	oi += inc;	crypto_decrypt_final(c2, &outbuf[oi], &inc);	oi += inc;    } else {	//use random chunk sizes for decrypt_update	crypto_encrypt_update(c, cbuf, &ci, inbuf, bufsize);	crypto_encrypt_final(c, &cbuf[ci], &inc);	ci += inc;	i = 0;	oi = 0;	for (;;) {	    inc = 1 + (rand() % 24);	    //inc = 1; //byte by byte	    if (i + inc > ci) inc = ci - i;	    crypto_decrypt_update(c2, &outbuf[oi], &inc2, &cbuf[i], inc);	    i += inc;	    oi += inc2;	    if (i == ci) break;	}	crypto_decrypt_final(c2, &outbuf[oi], &inc);	oi += inc;    }    crypto_ctx_clear(c);    crypto_ctx_clear(c2);    byte_string_clear(K);    if (memcmp(inbuf, outbuf, bufsize)) {	printf("BUG! crypto_test() failed\n");	return 0;    }    return 1;}static int key_test(params_t params, byte_string_t master){    char id[1024];    int i;    byte_string_t U, V;    byte_string_t key;    byte_string_t K, K2;    int result = 1;    random_charstar(id, 1024);    IBE_extract(key, master, id, params);    for (i=0; i<8; i++) {	if (1 != crypto_generate_key(K)) {	    printf("BUG! generate_key failed!\n");	    result = 0;	} else if (1 != IBE_hide_key(U, V, id, K, params)) {	    printf("BUG! hide_key failed!\n");	    byte_string_clear(K);	    byte_string_clear(U);	    byte_string_clear(V);	    result = 0;	} else if (1 != IBE_reveal_key(K2, U, V, key, params)) {	    printf("BUG! reveal_key failed!\n");	    byte_string_clear(K);	    byte_string_clear(U);	    byte_string_clear(V);	    result = 0;	} else {	    if (byte_string_cmp(K, K2)) {		printf("BUG! key mismatch!\n");		result = 0;	    }	    byte_string_clear(K);	    byte_string_clear(K2);	    byte_string_clear(U);	    byte_string_clear(V);	}    }    byte_string_clear(key);    return result;}static void single_system_torture(int test_no){    params_t params;    byte_string_t master;    int trial;    int i;    int status = 1;    for (trial=0; trial<50; trial++) {	printf("System #%d setup...\n", trial);	IBE_setup(params, master, 512, 160, "test");	printf("Testing");	fflush(stdout);	for (i=0; i<10; i++) {	    if (torture_table[test_no].f(params, master) == 0) {		printf("!");		status = 0;	    } else {		printf("."); fflush(stdout);	    }	}	if (status) {	    printf("passed\n");	} else {	    printf("FAILED\n");	}	byte_string_clear(master);	params_clear(params);    }}static void multiple_system_torture(int test_no){    int syscount = 10;    byte_string_t master[syscount];    params_t params[syscount];    int i, j;    char s[80];    //initialize different IBE systems    for (i=0; i<syscount; i++) {	printf("Generating system #%d\n", i);	snprintf(s, 80, "System #%d", i);	IBE_setup(params[i], master[i], 512, 160, s);    }    for (j=0; j<10; j++) {	for (i=0; i<syscount; i++) {	    printf("i = %d\n", i);	    torture_table[test_no].f(params[i], master[i]);	}    }    for (i=0; i<syscount; i++) {	params_clear(params[i]);	byte_string_clear(master[i]);    }}static void *thread_function(void *arg){    struct two_ints_s *s = (struct two_ints_s *) arg;    params_t params;    byte_string_t master;    int trial;    int index = s->i;    torturefn f = torture_table[s->j].f;    int i;    for (trial=0; trial<5; trial++) {	printf("Thread #%d round %d setup...\n", index, trial);	IBE_setup(params, master, 512, 160, "test");	printf("Thread #%d round %d setup complete\n", index, trial);	for (i=0; i<10; i++) {	    if (f(params, master) == 1) {		printf("Thread #%d round %d-%d successful\n", index, trial, i);	    } else {		printf("TEST FAILED!\n");	    }	}	printf("Thread #%d round %d complete\n", index, trial);	byte_string_clear(master);	params_clear(params);    }    return NULL;}static void thread_torture(int test_no){    int tcount = 5;    struct two_ints_s s[tcount];    pthread_t tid[tcount];    int i;    for (i=0; i<tcount; i++) {	s[i].j = test_no;	s[i].i = i;	pthread_create(&tid[i], NULL, thread_function, (void *) &s[i]);    }    for (i=0; i<tcount; i++) {	pthread_join(tid[i], NULL);    }}static void register_test(int index, char *name, torturefn f){    struct torture_s *t = &torture_table[index];    t->name = name;    t->index = index;    t->f = f;}static void register_metatest(int index, char *name, metatorturefn f){    struct metatorture_s *t = &metatorture_table[index];    t->name = name;    t->index = index;    t->f = f;}static void init_torture_table(){    register_test(test_bls, "BLS", bls_test);    register_test(test_sig, "signature", sig_test);    register_test(test_kem, "KEM", kem_test);    register_test(test_key, "key", key_test);    register_test(test_split, "split", split_test);    register_test(test_combine, "combine", combine_test);    register_test(test_crypto, "crypto", crypto_test);    register_test(test_random, "random", random_test);    register_metatest(metatest_single, "single", single_system_torture);    register_metatest(metatest_multiple, "multiple", multiple_system_torture);    register_metatest(metatest_thread, "threaded", thread_torture);}static int atoi_clipped(char *s, int lower, int upper){    int result = atoi(s);    if (result < lower) result = lower;    if (result > upper) result = upper;    return result;}static void help_screen(){    int i;    printf("IBE library torture prorgram\n");    printf("Usage: torture [OPTION...]\n");    printf("  -h       help\n");    printf("  -t NUM   torture number\n");    printf("  -m NUM   metatorture number\n");    printf("\n");    printf("Tortures\n");    for (i=0; i<test_max; i++) {	printf(" %d: %s\n", i, torture_table[i].name);    }    printf("\n");    printf("Metatortures\n");    for (i=0; i<metatest_max; i++) {	printf(" %d: %s\n", i, metatorture_table[i].name);    }}int main(int argc, char **argv){    int i, j;    init_torture_table();    i = test_random; j = 0; //default test style    for(;;) {	int c;	c = getopt(argc, argv, "t:m:h");	if (c == -1) break;	switch (c) {	    case 't':		i = atoi_clipped(optarg, 0, test_max - 1);		break;	    case 'm':		j = atoi_clipped(optarg, 0, metatest_max - 1);		break;	    case 'h':		help_screen();		return 0;	    default:		printf("use -h for help\n");		return 0;	}    }    IBE_init();    printf("IBE library torture\n");    printf("Test %d-%d: ", j, i);    printf("%s %s\n", metatorture_table[j].name, torture_table[i].name);    metatorture_table[j].f(i);    IBE_clear();    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产第一综合99久久| 日韩精品在线网站| 亚洲永久精品大片| 亚洲国产精品一区二区久久 | 亚洲色图欧美偷拍| 欧美亚洲国产怡红院影院| 国产夫妻精品视频| 欧美日韩精品福利| 日韩高清中文字幕一区| 一区二区三区四区激情| 亚洲色图在线播放| 色综合天天做天天爱| 色综合天天做天天爱| 91麻豆自制传媒国产之光| www.日本不卡| 91麻豆精品视频| 在线观看视频91| 欧美美女直播网站| 欧美大片日本大片免费观看| 精品sm在线观看| 国产视频一区二区在线观看| 国产精品黄色在线观看 | 日韩精品电影一区亚洲| 免费成人在线网站| 国产美女在线精品| 91在线无精精品入口| 欧美日韩精品高清| 久久久久久亚洲综合影院红桃| 国产欧美日韩激情| 国产精品日韩成人| 亚洲成人你懂的| 99免费精品视频| 欧美肥胖老妇做爰| 欧美激情在线一区二区| 亚洲国产精品久久不卡毛片| 另类中文字幕网| www.在线成人| 日韩欧美电影在线| 国产精品国产精品国产专区不蜜| 亚洲.国产.中文慕字在线| 国产最新精品免费| 欧美性猛交xxxx乱大交退制版| 精品国产乱码久久久久久影片| 亚洲天堂免费在线观看视频| 久久99精品久久久久婷婷| 91最新地址在线播放| 日韩西西人体444www| 自拍av一区二区三区| 激情六月婷婷久久| 欧美精品久久99久久在免费线| 中文文精品字幕一区二区| 日本视频一区二区| 欧美亚洲国产怡红院影院| 中文字幕精品一区二区精品绿巨人 | 亚洲精品国产一区二区精华液| 捆绑变态av一区二区三区| 日本电影亚洲天堂一区| 欧美韩日一区二区三区| 蜜桃精品视频在线| 欧美日韩一级大片网址| 亚洲免费观看高清完整版在线| 国产又黄又大久久| 日韩一区二区精品在线观看| 国产福利一区在线| 这里只有精品99re| 一区二区三区高清不卡| www.久久精品| 一色屋精品亚洲香蕉网站| 国产精一品亚洲二区在线视频| 69成人精品免费视频| 亚洲一区二区精品3399| 91丨porny丨首页| 国产视频一区在线观看| 国产精品乡下勾搭老头1| 欧美大尺度电影在线| 日本美女视频一区二区| 制服丝袜在线91| 日一区二区三区| 3d动漫精品啪啪1区2区免费 | 91精品综合久久久久久| 午夜久久电影网| 欧美乱妇一区二区三区不卡视频| 亚洲国产精品久久人人爱蜜臀| 欧美色精品在线视频| 午夜精品久久久久久久久久久| 欧美日韩一区小说| 日韩黄色片在线观看| 亚洲成av人影院在线观看网| 91视频在线观看| 亚洲精品成a人| 日本高清无吗v一区| 亚洲已满18点击进入久久| 在线视频欧美区| 成人国产在线观看| 国产精品天干天干在线综合| 成人一区二区视频| 国产精品久久久久9999吃药| 不卡av在线免费观看| 亚洲欧美激情视频在线观看一区二区三区 | 99re这里都是精品| 中文字幕国产一区二区| 91香蕉视频在线| 亚洲国产美女搞黄色| 欧美日韩高清在线播放| 狠狠色丁香婷综合久久| 中文字幕巨乱亚洲| 欧美日韩一级黄| 国产激情精品久久久第一区二区 | 美女被吸乳得到大胸91| 国产午夜久久久久| 色婷婷香蕉在线一区二区| 日韩avvvv在线播放| 亚洲国产激情av| 欧美日韩免费高清一区色橹橹 | 国产网红主播福利一区二区| 成人综合日日夜夜| 亚洲韩国精品一区| 欧美成人女星排名| 色综合久久88色综合天天免费| 天天av天天翘天天综合网| 国产性色一区二区| 欧美伊人精品成人久久综合97 | 亚洲免费av高清| 日韩女优视频免费观看| 91伊人久久大香线蕉| 日韩电影在线看| 亚洲欧美日本在线| 日韩欧美的一区| 欧美丝袜自拍制服另类| 国产91精品久久久久久久网曝门| 亚洲在线视频网站| 国产精品久久久久国产精品日日| 91精品国产综合久久香蕉麻豆| 成人黄色网址在线观看| 麻豆久久久久久| 亚洲高清在线精品| 国产精品二三区| 久久综合久久综合九色| 91麻豆精品国产91久久久久久久久| 成人免费高清视频在线观看| 久久99精品国产.久久久久| 一区2区3区在线看| 亚洲视频一区在线| 丝袜a∨在线一区二区三区不卡| 综合久久一区二区三区| 国产欧美日本一区二区三区| 日韩免费视频一区二区| 91国产免费看| 91丨九色丨尤物| 国产精品一线二线三线| 精品一区二区三区免费视频| 日韩二区在线观看| 日韩高清一级片| 亚洲一区视频在线| 亚洲在线中文字幕| 亚洲在线成人精品| 一区二区三区波多野结衣在线观看 | 激情综合网激情| 久久69国产一区二区蜜臀| 免费成人结看片| 麻豆一区二区99久久久久| 日韩成人av影视| 日本亚洲视频在线| 美女在线视频一区| 琪琪久久久久日韩精品| 日本在线不卡视频一二三区| 日韩激情中文字幕| 日韩不卡一二三区| 久久精品国产精品青草| 狂野欧美性猛交blacked| 久久99国产精品尤物| 国产成人在线视频免费播放| av电影在线观看完整版一区二区| 99久久国产综合精品麻豆| 91在线国产福利| 欧美三区在线观看| 欧美一区日本一区韩国一区| 日韩欧美视频一区| 国产亚洲午夜高清国产拍精品| 亚洲国产精品t66y| 亚洲免费三区一区二区| 天堂成人国产精品一区| 奇米色一区二区| 国产激情一区二区三区| 色综合中文字幕国产 | 国产精品理论片在线观看| 亚洲免费在线播放| 蜜桃免费网站一区二区三区| 韩国女主播成人在线观看| 成人免费视频国产在线观看| 色av成人天堂桃色av| 69堂精品视频| 国产欧美日韩中文久久| 一区二区三区欧美在线观看| 日本成人中文字幕| 91偷拍与自偷拍精品| 欧美一区二区成人| 日韩理论电影院| 黄一区二区三区| 欧美日韩综合在线免费观看|