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

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

?? sshaes.c

?? 大名鼎鼎的遠程登錄軟件putty的Symbian版源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
				     D1[(block[(i+C1)%Nb] >> 16) & 0xFF] ^ \				     D2[(block[(i+C2)%Nb] >> 8) & 0xFF] ^ \				     D3[block[(i+C3)%Nb] & 0xFF]) )#define LASTWORD(i) (newstate[i] = (Sboxinv[(block[i] >> 24) & 0xFF] << 24) | \			   (Sboxinv[(block[(i+C1)%Nb] >> 16) & 0xFF] << 16) | \			   (Sboxinv[(block[(i+C2)%Nb] >>  8) & 0xFF] <<  8) | \			   (Sboxinv[(block[(i+C3)%Nb]      ) & 0xFF]      ) )/* * Core decrypt routines, expecting word32 inputs read big-endian * from the byte-oriented input stream. */static void aes_decrypt_nb_4(AESContext * ctx, word32 * block){    int i;    static const int C1 = 4 - 1, C2 = 4 - 2, C3 = 4 - 3, Nb = 4;    word32 *keysched = ctx->invkeysched;    word32 newstate[4];    for (i = 0; i < ctx->Nr - 1; i++) {	ADD_ROUND_KEY_4;	MAKEWORD(0);	MAKEWORD(1);	MAKEWORD(2);	MAKEWORD(3);	MOVEWORD(0);	MOVEWORD(1);	MOVEWORD(2);	MOVEWORD(3);    }    ADD_ROUND_KEY_4;    LASTWORD(0);    LASTWORD(1);    LASTWORD(2);    LASTWORD(3);    MOVEWORD(0);    MOVEWORD(1);    MOVEWORD(2);    MOVEWORD(3);    ADD_ROUND_KEY_4;}static void aes_decrypt_nb_6(AESContext * ctx, word32 * block){    int i;    static const int C1 = 6 - 1, C2 = 6 - 2, C3 = 6 - 3, Nb = 6;    word32 *keysched = ctx->invkeysched;    word32 newstate[6];    for (i = 0; i < ctx->Nr - 1; i++) {	ADD_ROUND_KEY_6;	MAKEWORD(0);	MAKEWORD(1);	MAKEWORD(2);	MAKEWORD(3);	MAKEWORD(4);	MAKEWORD(5);	MOVEWORD(0);	MOVEWORD(1);	MOVEWORD(2);	MOVEWORD(3);	MOVEWORD(4);	MOVEWORD(5);    }    ADD_ROUND_KEY_6;    LASTWORD(0);    LASTWORD(1);    LASTWORD(2);    LASTWORD(3);    LASTWORD(4);    LASTWORD(5);    MOVEWORD(0);    MOVEWORD(1);    MOVEWORD(2);    MOVEWORD(3);    MOVEWORD(4);    MOVEWORD(5);    ADD_ROUND_KEY_6;}static void aes_decrypt_nb_8(AESContext * ctx, word32 * block){    int i;    static const int C1 = 8 - 1, C2 = 8 - 3, C3 = 8 - 4, Nb = 8;    word32 *keysched = ctx->invkeysched;    word32 newstate[8];    for (i = 0; i < ctx->Nr - 1; i++) {	ADD_ROUND_KEY_8;	MAKEWORD(0);	MAKEWORD(1);	MAKEWORD(2);	MAKEWORD(3);	MAKEWORD(4);	MAKEWORD(5);	MAKEWORD(6);	MAKEWORD(7);	MOVEWORD(0);	MOVEWORD(1);	MOVEWORD(2);	MOVEWORD(3);	MOVEWORD(4);	MOVEWORD(5);	MOVEWORD(6);	MOVEWORD(7);    }    ADD_ROUND_KEY_8;    LASTWORD(0);    LASTWORD(1);    LASTWORD(2);    LASTWORD(3);    LASTWORD(4);    LASTWORD(5);    LASTWORD(6);    LASTWORD(7);    MOVEWORD(0);    MOVEWORD(1);    MOVEWORD(2);    MOVEWORD(3);    MOVEWORD(4);    MOVEWORD(5);    MOVEWORD(6);    MOVEWORD(7);    ADD_ROUND_KEY_8;}#undef MAKEWORD#undef LASTWORD/* * Set up an AESContext. `keylen' and `blocklen' are measured in * bytes; each can be either 16 (128-bit), 24 (192-bit), or 32 * (256-bit). */static void aes_setup(AESContext * ctx, int blocklen,	       unsigned char *key, int keylen){    int i, j, Nk, rconst;    assert(blocklen == 16 || blocklen == 24 || blocklen == 32);    assert(keylen == 16 || keylen == 24 || keylen == 32);    /*     * Basic parameters. Words per block, words in key, rounds.     */    Nk = keylen / 4;    ctx->Nb = blocklen / 4;    ctx->Nr = 6 + (ctx->Nb > Nk ? ctx->Nb : Nk);    /*     * Assign core-function pointers.     */    if (ctx->Nb == 8)	ctx->encrypt = aes_encrypt_nb_8, ctx->decrypt = aes_decrypt_nb_8;    else if (ctx->Nb == 6)	ctx->encrypt = aes_encrypt_nb_6, ctx->decrypt = aes_decrypt_nb_6;    else if (ctx->Nb == 4)	ctx->encrypt = aes_encrypt_nb_4, ctx->decrypt = aes_decrypt_nb_4;    /*     * Now do the key setup itself.     */    rconst = 1;    for (i = 0; i < (ctx->Nr + 1) * ctx->Nb; i++) {	if (i < Nk)	    ctx->keysched[i] = GET_32BIT_MSB_FIRST(key + 4 * i);	else {	    word32 temp = ctx->keysched[i - 1];	    if (i % Nk == 0) {		int a, b, c, d;		a = (temp >> 16) & 0xFF;		b = (temp >> 8) & 0xFF;		c = (temp >> 0) & 0xFF;		d = (temp >> 24) & 0xFF;		temp = Sbox[a] ^ rconst;		temp = (temp << 8) | Sbox[b];		temp = (temp << 8) | Sbox[c];		temp = (temp << 8) | Sbox[d];		rconst = mulby2(rconst);	    } else if (i % Nk == 4 && Nk > 6) {		int a, b, c, d;		a = (temp >> 24) & 0xFF;		b = (temp >> 16) & 0xFF;		c = (temp >> 8) & 0xFF;		d = (temp >> 0) & 0xFF;		temp = Sbox[a];		temp = (temp << 8) | Sbox[b];		temp = (temp << 8) | Sbox[c];		temp = (temp << 8) | Sbox[d];	    }	    ctx->keysched[i] = ctx->keysched[i - Nk] ^ temp;	}    }    /*     * Now prepare the modified keys for the inverse cipher.     */    for (i = 0; i <= ctx->Nr; i++) {	for (j = 0; j < ctx->Nb; j++) {	    word32 temp;	    temp = ctx->keysched[(ctx->Nr - i) * ctx->Nb + j];	    if (i != 0 && i != ctx->Nr) {		/*		 * Perform the InvMixColumn operation on i. The D		 * tables give the result of InvMixColumn applied		 * to Sboxinv on individual bytes, so we should		 * compose Sbox with the D tables for this.		 */		int a, b, c, d;		a = (temp >> 24) & 0xFF;		b = (temp >> 16) & 0xFF;		c = (temp >> 8) & 0xFF;		d = (temp >> 0) & 0xFF;		temp = D0[Sbox[a]];		temp ^= D1[Sbox[b]];		temp ^= D2[Sbox[c]];		temp ^= D3[Sbox[d]];	    }	    ctx->invkeysched[i * ctx->Nb + j] = temp;	}    }}static void aes_encrypt(AESContext * ctx, word32 * block){    ctx->encrypt(ctx, block);}static void aes_decrypt(AESContext * ctx, word32 * block){    ctx->decrypt(ctx, block);}static void aes_encrypt_cbc(unsigned char *blk, int len, AESContext * ctx){    word32 iv[4];    int i;    assert((len & 15) == 0);    memcpy(iv, ctx->iv, sizeof(iv));    while (len > 0) {	for (i = 0; i < 4; i++)	    iv[i] ^= GET_32BIT_MSB_FIRST(blk + 4 * i);	aes_encrypt(ctx, iv);	for (i = 0; i < 4; i++)	    PUT_32BIT_MSB_FIRST(blk + 4 * i, iv[i]);	blk += 16;	len -= 16;    }    memcpy(ctx->iv, iv, sizeof(iv));}static void aes_decrypt_cbc(unsigned char *blk, int len, AESContext * ctx){    word32 iv[4], x[4], ct[4];    int i;    assert((len & 15) == 0);    memcpy(iv, ctx->iv, sizeof(iv));    while (len > 0) {	for (i = 0; i < 4; i++)	    x[i] = ct[i] = GET_32BIT_MSB_FIRST(blk + 4 * i);	aes_decrypt(ctx, x);	for (i = 0; i < 4; i++) {	    PUT_32BIT_MSB_FIRST(blk + 4 * i, iv[i] ^ x[i]);	    iv[i] = ct[i];	}	blk += 16;	len -= 16;    }    memcpy(ctx->iv, iv, sizeof(iv));}static void *aes_make_context(void){    return snew(AESContext);}static void aes_free_context(void *handle){    sfree(handle);}static void aes128_key(void *handle, unsigned char *key){    AESContext *ctx = (AESContext *)handle;    aes_setup(ctx, 16, key, 16);}static void aes192_key(void *handle, unsigned char *key){    AESContext *ctx = (AESContext *)handle;    aes_setup(ctx, 16, key, 24);}static void aes256_key(void *handle, unsigned char *key){    AESContext *ctx = (AESContext *)handle;    aes_setup(ctx, 16, key, 32);}static void aes_iv(void *handle, unsigned char *iv){    AESContext *ctx = (AESContext *)handle;    int i;    for (i = 0; i < 4; i++)	ctx->iv[i] = GET_32BIT_MSB_FIRST(iv + 4 * i);}static void aes_ssh2_encrypt_blk(void *handle, unsigned char *blk, int len){    AESContext *ctx = (AESContext *)handle;    aes_encrypt_cbc(blk, len, ctx);}static void aes_ssh2_decrypt_blk(void *handle, unsigned char *blk, int len){    AESContext *ctx = (AESContext *)handle;    aes_decrypt_cbc(blk, len, ctx);}void aes256_encrypt_pubkey(unsigned char *key, unsigned char *blk, int len){    AESContext ctx;    aes_setup(&ctx, 16, key, 32);    memset(ctx.iv, 0, sizeof(ctx.iv));    aes_encrypt_cbc(blk, len, &ctx);    memset(&ctx, 0, sizeof(ctx));}void aes256_decrypt_pubkey(unsigned char *key, unsigned char *blk, int len){    AESContext ctx;    aes_setup(&ctx, 16, key, 32);    memset(ctx.iv, 0, sizeof(ctx.iv));    aes_decrypt_cbc(blk, len, &ctx);    memset(&ctx, 0, sizeof(ctx));}static const struct ssh2_cipher ssh_aes128 = {    aes_make_context, aes_free_context, aes_iv, aes128_key,    aes_ssh2_encrypt_blk, aes_ssh2_decrypt_blk,    "aes128-cbc",    16, 128, "AES-128"};static const struct ssh2_cipher ssh_aes192 = {    aes_make_context, aes_free_context, aes_iv, aes192_key,    aes_ssh2_encrypt_blk, aes_ssh2_decrypt_blk,    "aes192-cbc",    16, 192, "AES-192"};static const struct ssh2_cipher ssh_aes256 = {    aes_make_context, aes_free_context, aes_iv, aes256_key,    aes_ssh2_encrypt_blk, aes_ssh2_decrypt_blk,    "aes256-cbc",    16, 256, "AES-256"};static const struct ssh2_cipher ssh_rijndael128 = {    aes_make_context, aes_free_context, aes_iv, aes128_key,    aes_ssh2_encrypt_blk, aes_ssh2_decrypt_blk,    "rijndael128-cbc",    16, 128, "AES-128"};static const struct ssh2_cipher ssh_rijndael192 = {    aes_make_context, aes_free_context, aes_iv, aes192_key,    aes_ssh2_encrypt_blk, aes_ssh2_decrypt_blk,    "rijndael192-cbc",    16, 192, "AES-192"};static const struct ssh2_cipher ssh_rijndael256 = {    aes_make_context, aes_free_context, aes_iv, aes256_key,    aes_ssh2_encrypt_blk, aes_ssh2_decrypt_blk,    "rijndael256-cbc",    16, 256, "AES-256"};static const struct ssh2_cipher ssh_rijndael_lysator = {    aes_make_context, aes_free_context, aes_iv, aes256_key,    aes_ssh2_encrypt_blk, aes_ssh2_decrypt_blk,    "rijndael-cbc@lysator.liu.se",    16, 256, "AES-256"};static const struct ssh2_cipher *const aes_list[] = {    &ssh_aes256,    &ssh_rijndael256,    &ssh_rijndael_lysator,    &ssh_aes192,    &ssh_rijndael192,    &ssh_aes128,    &ssh_rijndael128,};const struct ssh2_ciphers ssh2_aes = {    sizeof(aes_list) / sizeof(*aes_list),    aes_list};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜不卡在线视频| 欧美亚洲综合另类| 欧美在线观看18| 久久精品免视看| 亚洲高清不卡在线观看| 国产成人精品免费在线| 日韩亚洲欧美一区二区三区| 亚洲欧美aⅴ...| 国产伦精品一区二区三区视频青涩| 欧美伊人久久久久久久久影院 | 日本不卡视频在线观看| voyeur盗摄精品| 久久亚洲春色中文字幕久久久| 亚洲一区二区欧美日韩| av在线一区二区| 久久久精品蜜桃| 精品一区二区在线看| 欧美人伦禁忌dvd放荡欲情| 中文字幕日韩一区二区| 国产精品一区二区不卡| 日韩久久精品一区| 青青国产91久久久久久| 欧美日韩国产首页| 日日夜夜免费精品| 欧美日韩另类一区| 亚洲妇熟xx妇色黄| 欧美午夜精品一区| 亚洲一二三区在线观看| 91久久一区二区| 亚洲色图在线视频| 91女神在线视频| 中文字幕一区二区不卡| 成人小视频在线| 国产精品天干天干在线综合| 国产高清成人在线| 欧美激情综合在线| 成人福利在线看| 《视频一区视频二区| www.视频一区| 亚洲愉拍自拍另类高清精品| 欧美三级午夜理伦三级中视频| 亚洲综合视频网| 欧美日韩中文精品| 奇米色一区二区| 精品成人佐山爱一区二区| 久久激情综合网| 久久久影院官网| 91亚洲精品久久久蜜桃网站| 一区二区日韩电影| 91精品国产综合久久福利软件| 麻豆精品在线看| 国产欧美日韩另类视频免费观看| 99r精品视频| 天天综合色天天| 26uuu另类欧美| www.亚洲免费av| 午夜精品久久久久久久久久| 精品国产乱码久久久久久夜甘婷婷| 国产麻豆精品视频| 亚洲最大色网站| 日韩三级.com| 99视频在线观看一区三区| 亚洲一区二区三区四区在线| 欧美一激情一区二区三区| 国产99久久久久久免费看农村| 亚洲精品欧美激情| 日韩欧美国产系列| 99久久夜色精品国产网站| 亚洲一区二区美女| 日本一区二区免费在线| 欧美日韩一级片在线观看| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲国产精品成人综合色在线婷婷| 91国产福利在线| 国产精品羞羞答答xxdd| 亚洲国产精品自拍| 国产精品视频一二三区 | eeuss鲁一区二区三区| 亚洲国产精品久久人人爱| 欧美白人最猛性xxxxx69交| 91久久精品国产91性色tv| 精品亚洲成a人在线观看| 亚洲欧美国产三级| 欧美国产日韩在线观看| 91麻豆精品国产自产在线| 99精品国产99久久久久久白柏| 久久精品国产亚洲5555| 一区二区三区在线影院| 久久九九久精品国产免费直播| 欧美视频日韩视频| 91丨porny丨首页| 成人一区二区三区在线观看| 奇米777欧美一区二区| 亚洲综合在线视频| 亚洲欧美日韩国产手机在线 | 国产精品一区二区三区99| 视频一区视频二区在线观看| 国产精品萝li| 久久综合九色综合久久久精品综合| 欧美日韩一区二区电影| 91在线精品一区二区三区| 国产成人高清视频| 韩国女主播成人在线观看| 免费观看在线综合色| 亚洲午夜在线观看视频在线| 亚洲欧美日韩国产成人精品影院| 久久精品欧美一区二区三区麻豆| 欧美大肚乱孕交hd孕妇| 91精品国产一区二区三区香蕉 | eeuss鲁片一区二区三区| 国产福利一区二区三区视频在线| 国内久久精品视频| 国产精品一品二品| 国产精品中文字幕欧美| 国产一区二区精品久久99| 久久国产精品99久久人人澡| 美女网站色91| 国产一区二区三区视频在线播放| 久久不见久久见中文字幕免费| 日本v片在线高清不卡在线观看| 日韩国产欧美视频| 男女男精品视频网| 激情偷乱视频一区二区三区| 国产自产2019最新不卡| 国产馆精品极品| 99亚偷拍自图区亚洲| 一本一道波多野结衣一区二区| 色久综合一二码| 欧美日韩亚洲综合| 日韩女优制服丝袜电影| 久久理论电影网| 一区在线播放视频| 污片在线观看一区二区| 久久精品国产澳门| 国产精品18久久久| 99久久婷婷国产综合精品| 色999日韩国产欧美一区二区| 欧美视频精品在线观看| 日韩精品一区二区三区四区| 国产欧美日韩视频一区二区| 一区二区三区在线视频免费 | 日韩伦理免费电影| 日韩一区欧美二区| 极品美女销魂一区二区三区免费| 国产盗摄视频一区二区三区| 91蜜桃在线免费视频| 欧美日韩国产影片| 337p日本欧洲亚洲大胆精品| 中文字幕va一区二区三区| 亚洲一区二区三区四区在线观看 | 精品国产麻豆免费人成网站| 成人欧美一区二区三区在线播放| 亚洲国产成人av| 国产福利精品导航| 欧美性高清videossexo| 日韩精品综合一本久道在线视频| 国产精品久久综合| 日韩精品乱码免费| www.欧美精品一二区| 日韩视频国产视频| 亚洲人妖av一区二区| 日韩va欧美va亚洲va久久| 成人免费视频app| 日韩一级二级三级精品视频| 中文字幕一区三区| 日韩精品乱码免费| 99re免费视频精品全部| 欧美成人一区二区三区片免费| 亚洲色图视频免费播放| 裸体健美xxxx欧美裸体表演| 色噜噜久久综合| 国产欧美精品一区二区色综合朱莉| 亚洲国产精品一区二区久久| 成人午夜在线免费| 欧美哺乳videos| 污片在线观看一区二区| 91玉足脚交白嫩脚丫在线播放| 久久免费电影网| 日本不卡在线视频| 欧美最新大片在线看| 亚洲国产精品成人综合色在线婷婷 | 国产女人aaa级久久久级| 日本va欧美va精品发布| 欧美日韩免费观看一区二区三区| 日韩理论片在线| 99这里只有精品| 最新高清无码专区| 成人app网站| 国产日韩精品一区二区浪潮av| 麻豆精品在线观看| 91精品综合久久久久久| 午夜精品一区二区三区三上悠亚| 欧美在线不卡一区| 亚洲免费三区一区二区| 91免费国产视频网站| 亚洲另类色综合网站| 色狠狠色噜噜噜综合网| 亚洲午夜久久久久中文字幕久| 在线免费av一区| 丝袜诱惑制服诱惑色一区在线观看|