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

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

?? old_code.c

?? 這是一個unix環境下實現基于身份的PKI系統源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	byte_string_t M, char **idarray);//idarray is a null-terminated array of ID's////See LICENSE for license//<U,V,W> = encrypt(M)//(U and W are the same for every id)int IBE_decrypt(byte_string_t M, byte_string_t U, byte_string_t V,	byte_string_t W, byte_string_t key);//M = decrypt(<U,V,W>)int IBE_authenticated_decrypt(byte_string_t M, byte_string_t U, byte_string_t V,	byte_string_t W, byte_string_t d, char *sender);int IBE_authenticated_encrypt(byte_string_t U, byte_string_t *Varray, byte_string_t W,	byte_string_t M, char **idarray,	byte_string_t sender_key);//these are called by encrypt and decrypt//use these if you want to write your own encrypt/decrypt//sigma is the key that is actually used to encrypt the plaintextvoid IBE_hidesigma(byte_string_t U, byte_string_t *Varray,    byte_string_t sigma, byte_string_t hash,    char **idarray);//encrypt a key sigma (which must be n bits long)//output in U, Varray//must be given the hash of the plaintext message,//and idarray holds the public keys to encrypt for//requires Varray has same length has idarrayvoid IBE_revealsigma(byte_string_t sigma,	byte_string_t U, byte_string_t V, byte_string_t key);//reveal a key sigma//given U, V, and a private keyint IBE_verify(byte_string_t U, byte_string_t sigma, byte_string_t hash);//verify that the ciphertext is valid//given U, a key sigma, and the hash of the plaintextvoid IBE_revealsigma_preprocess(preprocessed_key_t pk, byte_string_t key);void IBE_revealsigma_postprocess(byte_string_t sigma,	byte_string_t U, byte_string_t V, preprocessed_key_t pk);//DEPRECATED: headers from format.hint FMT_encrypt(FILE *outfp, byte_string_t M, char **idarray);//encrypts message from a buffer for an array of ID's, writes to a file pointerint FMT_decrypt(byte_string_t M, FILE *infp, byte_string_t key);//DEPRECATED: from format.cstatic void mime_encode(byte_string_t R, byte_string_t M)//R = encoded(M){    int outl, l;    EVP_ENCODE_CTX ctx;    byte_string_init(R, 10 * M->len);    EVP_EncodeInit(&ctx);    EVP_EncodeUpdate(&ctx,R->data,&outl,M->data,M->len);    EVP_EncodeFinal(&ctx,&R->data[outl],&l);    outl+=l;    byte_string_reinit(R, outl);}int FMT_output_uvw(FILE *stream, char *ver, byte_string_t U,	byte_string_t *Varray, byte_string_t W, char **idarray){    int count;    byte_string_t bstmp;    FILE *fp = stream;    if (!fp) {	fp = stdout;    }    fprintf(fp, "Version: %s\r\n", ver);    mime_encode(bstmp, U);    fprintf(fp, "U: ");    byte_string_fprintf(fp, bstmp, "%c");    byte_string_clear(bstmp);    fprintf(fp, "\r\n");    for (count=0; idarray[count]; count++) {	fprintf(fp, "ID: %s\r\n", idarray[count]);	fprintf(fp, "V: ");	mime_encode(bstmp, Varray[count]);	byte_string_fprintf(fp, bstmp, "%c");	byte_string_clear(bstmp);	fprintf(fp,"\r\n");    }    fprintf(fp, "W: ");    mime_encode(bstmp, W);    byte_string_fprintf(fp, bstmp, "%c");    byte_string_clear(bstmp);    fprintf(fp, "\r\n");    return 1;}int FMT_encrypt(FILE *outfp, byte_string_t M, char **idarray){    byte_string_t U;    byte_string_t *Varray;    byte_string_t W;    int i, count;    int status;    for (count=0; idarray[count]; count++);    if (count == 0) return 0;    Varray = (byte_string_t *) malloc(count * sizeof(byte_string_t));    IBE_encrypt(U, Varray, W, M, idarray);    status = FMT_output_uvw(outfp, IBE_version(), U, Varray, W, idarray);    byte_string_clear(U);    for (i=0; i<count; i++) {	byte_string_clear(Varray[i]);    }    free(Varray);    byte_string_clear(W);    return status;}int FMT_decrypt(byte_string_t M, FILE *infp, byte_string_t key){    //XXX:possible buffer overflows    //needs to be rewritten    byte_string_t U, V, W;    char line[100];    int status;    byte_string_init(U, 1000);    byte_string_init(V, 100);    byte_string_init(W, 10000);    for(;;) {	fgets(line, 100, infp);	if (feof(infp)) {	    return(0);	}	if (!strncmp(line, "U: ", 3)) {	    char *s = &line[3];	    int l, l2;	    EVP_ENCODE_CTX ctx;	    EVP_DecodeInit(&ctx);	    l = 0;	    for (;;) {		EVP_DecodeUpdate(&ctx, &U->data[l], &l2, (unsigned char *) s, strlen(s));		l += l2;		fgets(line, 100, infp);		s = line;		if (feof(infp) || strlen(s) < 5) break;	    }	    EVP_DecodeFinal(&ctx, &U->data[l], &l2);	    U->len = l + l2;	} else if (!strncmp(line, "V: ", 3)) {	    char *s = &line[3];	    int l, l2;	    EVP_ENCODE_CTX ctx;	    EVP_DecodeInit(&ctx);	    EVP_DecodeUpdate(&ctx, V->data, &l, (unsigned char *) s, strlen(s));	    EVP_DecodeFinal(&ctx, &V->data[l], &l2);	    V->len = l + l2;	    if (V->len!=20) {		return(0);	    }	} else if (!strncmp(line, "W: ", 3)) {	    char *s = &line[3];	    int l, l2;	    EVP_ENCODE_CTX ctx;	    EVP_DecodeInit(&ctx);	    l = 0;	    for (;;) {		EVP_DecodeUpdate(&ctx, &W->data[l], &l2, (unsigned char *) s, strlen(s));		l += l2;		fgets(line, 100, infp);		s = line;		if (feof(infp) || strlen(s) < 5) break;	    }	    EVP_DecodeFinal(&ctx, &W->data[l], &l2);	    W->len = l + l2;	    break;	}    }    status = IBE_decrypt(M, U, V, W, key);    if (status != 1) {	fprintf(stderr, "error in decryption\n");    }    return(status);}//DEPRECATED: from ibe_lib.c//see "Authenticated Identity-Based Encryption" paper on eprint//(no need to use Fujisaki-Okamoto constructions in real life)void IBE_authenticated_hidesigma(byte_string_t U, byte_string_t *Varray,    byte_string_t sigma, byte_string_t hash,    char **idarray,    byte_string_t sender_key)//encrypt a key sigma (which must be n bits long)//output in U, Varray//must be given the hash of the plaintext message,//and idarray holds the public keys to encrypt for//requires Varray has same length has idarray{    int i, j;    int count;    int n = params.n;    mpz_t r;    fp2_t s;    point_t Qid;    point_t PhixQ;    byte_string_t md_value;    byte_string_t tempbs, tempbs2;    for (count=0; idarray[count]; count++);    if (count == 0) return;    //r = H1(sigma, M)    mpz_init(r);    hash_H1(r, sigma, hash);    bm_put(bm_get_time(), "rP0");    bm_put(bm_get_time(), "rP1");    //no need to work out rP any more!    //U = r    byte_string_set_mpz(U, r);    point_init(Qid);    point_init(PhixQ);    point_set_byte_string(PhixQ, sender_key);    point_Phi(PhixQ, PhixQ);    byte_string_init(md_value, n);    for (i=0; i<count; i++) {	const char *id = idarray[i];	//XXX:set up a cache to avoid these expensive ops	map_to_point(Qid, id);	//calculate s = e(Q_id, Phi(xQ))	tate_pairing(s, Qid, PhixQ);	bm_put(bm_get_time(), "gidr0");	//second part of cipher text: V = sigma xor H(U, s)	byte_string_set_fp2(tempbs2, s);	byte_string_join(tempbs, U, tempbs2);	byte_string_clear(tempbs2);	hash_G1(md_value, tempbs);	byte_string_clear(tempbs);	byte_string_init(Varray[i], n);	for (j=0; j<n; j++) {	    Varray[i]->data[j] = md_value->data[j] ^ sigma->data[j];	}	bm_put(bm_get_time(), "gidr1");    }    byte_string_clear(md_value);    point_clear(Qid);    mpz_clear(r);    fp2_clear(s);}void IBE_hidesigma(byte_string_t U, byte_string_t *Varray,    byte_string_t sigma, byte_string_t hash,    char **idarray)//encrypt a key sigma (which must be n bits long)//output in U, Varray//must be given the hash of the plaintext message,//and idarray holds the public keys to encrypt for//requires Varray has same length has idarray{    int i, j;    int count;    int n = params.n;    mpz_t r;    fp2_t gidr;    point_t Qid;    point_t rP;    byte_string_t md_value;    for (count=0; idarray[count]; count++);    if (count == 0) return;    //r = H1(sigma, M)    mpz_init(r);    hash_H1(r, sigma, hash);    bm_put(bm_get_time(), "rP0");    //U = rP    point_init(rP);    //point_mul(rP, r, params.P);    point_mul_postprocess(rP, r);    bm_put(bm_get_time(), "rP1");    fp2_init(gidr);    byte_string_set_point(U, rP);    point_clear(rP);    point_init(Qid);    byte_string_init(md_value, n);    for (i=0; i<count; i++) {	const char *id = idarray[i];	//XXX:set up a cache to avoid these expensive ops	map_to_point(Qid, id);	point_Phi(Qid, Qid);		//calculate gidr = e(Q_id, Phi(P_pub))^r	//tate_pairing(gidr, Qid, PhiPpub);	tate_postprocess(gidr, Ppub_mc, Qid);	bm_put(bm_get_time(), "gidr0");	fp2_pow(gidr, gidr, r);	bm_put(bm_get_time(), "gidr1");	//second part of cipher text = sigma xor H(g_id^r)	hash_H(md_value, gidr);	byte_string_init(Varray[i], n);	for (j=0; j<n; j++) {	    Varray[i]->data[j] = md_value->data[j] ^ sigma->data[j];	}    }    byte_string_clear(md_value);    point_clear(Qid);    mpz_clear(r);    fp2_clear(gidr);}int IBE_authenticated_encrypt(byte_string_t U, byte_string_t *Varray, byte_string_t W,	byte_string_t M, char **idarray,	byte_string_t sender_key){    int n = params.n;    byte_string_t sigma, G1sigma;    byte_string_t md_value;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线porny国产在线看| 综合欧美亚洲日本| 婷婷激情综合网| 欧美另类videos死尸| 亚洲国产欧美日韩另类综合| 欧美三级视频在线| 日本不卡一区二区三区| 日韩欧美一区二区不卡| 国产在线精品一区在线观看麻豆| 欧美精品一区二区不卡| 国产不卡视频在线播放| 一区二区三区中文字幕电影| 欧美三级韩国三级日本三斤| 蜜桃久久久久久| 国产亚洲欧美日韩日本| 色视频成人在线观看免| 日韩影院在线观看| 久久久久久久久久久黄色| 波多野结衣一区二区三区| 亚洲综合久久久| 日韩三级免费观看| 成人av网址在线| 亚洲二区在线观看| 久久色在线视频| 一本大道久久a久久综合| 婷婷丁香久久五月婷婷| 国产视频一区二区三区在线观看| 日本精品一区二区三区高清| 免费国产亚洲视频| 亚洲天堂a在线| 日韩视频在线你懂得| 99国产一区二区三精品乱码| 日韩精品电影一区亚洲| 国产精品久久久久久户外露出 | 亚洲欧洲精品一区二区三区不卡| 91国偷自产一区二区开放时间 | 精品国产乱码久久久久久浪潮| 美女视频黄久久| 最新国产精品久久精品| 欧美一区二区三区视频免费| 丰满放荡岳乱妇91ww| 天堂午夜影视日韩欧美一区二区| 国产清纯白嫩初高生在线观看91 | 性做久久久久久免费观看欧美| 精品裸体舞一区二区三区| 91九色最新地址| 国产精品资源在线| 日韩电影免费在线观看网站| 国产精品久久看| 精品欧美乱码久久久久久1区2区| 色8久久精品久久久久久蜜| 国产一区二区中文字幕| 香蕉久久夜色精品国产使用方法 | 日韩精品午夜视频| 国产精品久久久久aaaa樱花| 欧美变态tickling挠脚心| 美女诱惑一区二区| 最新久久zyz资源站| 日韩视频123| 丁香一区二区三区| 精品无人区卡一卡二卡三乱码免费卡 | 欧美视频一区二区| 成人性生交大片免费| 麻豆精品在线观看| 偷窥少妇高潮呻吟av久久免费| 亚洲欧洲www| 国产精品久久久久久亚洲毛片 | 欧美色综合网站| 99久久精品免费| 成年人国产精品| 国产精品一二一区| 国产一区二区三区综合| 麻豆一区二区在线| 另类人妖一区二区av| 奇米色一区二区| 日本aⅴ亚洲精品中文乱码| 五月婷婷久久丁香| 视频精品一区二区| 日韩av午夜在线观看| 丝袜美腿亚洲色图| 蜜桃视频在线观看一区| 日韩国产欧美在线播放| 日本成人中文字幕在线视频| 日韩电影在线一区| 麻豆视频一区二区| 激情都市一区二区| 国产精品资源网| 不卡一区在线观看| 91麻豆123| 欧美日韩电影在线播放| 欧美理论在线播放| 精品国产乱码久久久久久久| 亚洲国产精品综合小说图片区| 亚洲品质自拍视频网站| 国产精品高潮久久久久无| 亚洲色大成网站www久久九九| 亚洲色图制服诱惑| 日韩二区三区四区| 国产一区二区久久| 99精品视频在线播放观看| 在线观看欧美日本| 日韩一区二区三区在线观看| 久久久久久久久99精品| 一区视频在线播放| 亚洲国产另类精品专区| 久久国产精品99久久久久久老狼| 国产风韵犹存在线视精品| 99国产欧美另类久久久精品| 欧美日韩亚洲国产综合| 欧美精品一区二区久久久| 国产精品麻豆久久久| 亚洲主播在线播放| 精品亚洲成a人在线观看 | 亚洲风情在线资源站| 久久精品国产**网站演员| 成人午夜又粗又硬又大| 在线视频一区二区三区| 中文字幕一区视频| 国产乱人伦偷精品视频不卡| 91丨porny丨户外露出| 91看片淫黄大片一级在线观看| 久久精品国产77777蜜臀| 麻豆精品视频在线观看免费| 国产91在线看| 欧美久久久久久久久| 国产欧美综合在线| 亚洲.国产.中文慕字在线| 国产毛片精品视频| 欧美日本一道本在线视频| 日本一区免费视频| 毛片av一区二区| 在线看一区二区| 日本一区二区三区四区| 日韩国产欧美在线播放| 91年精品国产| 久久精品亚洲乱码伦伦中文| 午夜电影网一区| aaa亚洲精品一二三区| 精品国产乱码久久久久久1区2区| 亚洲乱码国产乱码精品精可以看 | 久久久综合视频| 午夜精品福利一区二区三区av| 精品无人码麻豆乱码1区2区 | 另类小说欧美激情| 欧洲亚洲国产日韩| 亚洲国产精品黑人久久久| 免费精品视频在线| 欧美午夜一区二区三区 | 亚洲视频香蕉人妖| 国产剧情av麻豆香蕉精品| 欧美一级高清片| 污片在线观看一区二区| 色综合久久综合网| 国产精品福利电影一区二区三区四区 | 欧美日韩免费一区二区三区视频| 中文天堂在线一区| 国产成人精品三级| 精品99999| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩精品一区二区三区| 一区二区欧美视频| 色88888久久久久久影院野外| 中文字幕视频一区| 成人精品电影在线观看| 国产日韩欧美亚洲| 国产精品综合二区| 国产三级精品在线| 成人性生交大片免费看中文网站| 久久久综合网站| 国产精品亚洲午夜一区二区三区 | 日韩欧美国产成人一区二区| 日韩av电影天堂| 欧美一区二区三区免费大片 | 一区二区三区四区乱视频| 91美女在线观看| 亚洲精品视频在线看| 一本大道久久a久久综合婷婷| 亚洲精品成人天堂一二三| 日本精品一级二级| 亚洲成人av一区二区三区| 欧美一级黄色片| 久久www免费人成看片高清| 精品国产免费人成电影在线观看四季 | 欧美精品亚洲二区| 麻豆久久久久久久| 久久婷婷国产综合国色天香| 丁香激情综合五月| 亚洲美女视频一区| 欧美猛男超大videosgay| 老司机免费视频一区二区三区| 精品久久五月天| 成人在线一区二区三区| 一级精品视频在线观看宜春院| 欧美日韩国产综合久久| 精品在线视频一区| 成人免费一区二区三区视频| 欧美视频一区二区三区在线观看| 乱一区二区av| 中文字幕制服丝袜成人av| 欧美人与性动xxxx|