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

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

?? noekeon.c

?? 最新版本的加密解密算法庫
?? C
字號:
/* LibTomCrypt, modular cryptographic library -- Tom St Denis * * LibTomCrypt is a library that provides various cryptographic * algorithms in a highly modular and flexible manner. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://libtomcrypt.org *//* Implementation of the Noekeon block cipher by Tom St Denis */#include "mycrypt.h"#ifdef NOEKEONconst struct _cipher_descriptor noekeon_desc ={    "noekeon",    16,    16, 16, 16, 16,    &noekeon_setup,    &noekeon_ecb_encrypt,    &noekeon_ecb_decrypt,    &noekeon_test,    &noekeon_keysize};static const ulong32 RC[] = {   0x00000080UL, 0x0000001bUL, 0x00000036UL, 0x0000006cUL,   0x000000d8UL, 0x000000abUL, 0x0000004dUL, 0x0000009aUL,   0x0000002fUL, 0x0000005eUL, 0x000000bcUL, 0x00000063UL,   0x000000c6UL, 0x00000097UL, 0x00000035UL, 0x0000006aUL,   0x000000d4UL };#define kTHETA(a, b, c, d)                                 \    temp = a^c; temp = temp ^ ROL(temp, 8) ^ ROR(temp, 8); \    b ^= temp; d ^= temp;                                  \    temp = b^d; temp = temp ^ ROL(temp, 8) ^ ROR(temp, 8); \    a ^= temp; c ^= temp;#define THETA(k, a, b, c, d)                               \    temp = a^c; temp = temp ^ ROL(temp, 8) ^ ROR(temp, 8); \    b ^= temp ^ k[1]; d ^= temp ^ k[3];                    \    temp = b^d; temp = temp ^ ROL(temp, 8) ^ ROR(temp, 8); \    a ^= temp ^ k[0]; c ^= temp ^ k[2];    #define GAMMA(a, b, c, d)     \    b ^= ~(d|c);              \    a ^= c&b;                 \    temp = d; d = a; a = temp;\    c ^= a ^ b ^ d;           \    b ^= ~(d|c);              \    a ^= c&b;    #define PI1(a, b, c, d) \    a = ROL(a, 1); c = ROL(c, 5); d = ROL(d, 2);    #define PI2(a, b, c, d) \    a = ROR(a, 1); c = ROR(c, 5); d = ROR(d, 2);    int noekeon_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey){   ulong32 temp;      _ARGCHK(key != NULL);   _ARGCHK(skey != NULL);      if (keylen != 16) {      return CRYPT_INVALID_KEYSIZE;   }      if (num_rounds != 16 && num_rounds != 0) {      return CRYPT_INVALID_ROUNDS;   }      LOAD32H(skey->noekeon.K[0],&key[0]);   LOAD32H(skey->noekeon.K[1],&key[4]);   LOAD32H(skey->noekeon.K[2],&key[8]);   LOAD32H(skey->noekeon.K[3],&key[12]);      LOAD32H(skey->noekeon.dK[0],&key[0]);   LOAD32H(skey->noekeon.dK[1],&key[4]);   LOAD32H(skey->noekeon.dK[2],&key[8]);   LOAD32H(skey->noekeon.dK[3],&key[12]);   kTHETA(skey->noekeon.dK[0], skey->noekeon.dK[1], skey->noekeon.dK[2], skey->noekeon.dK[3]);   return CRYPT_OK;}#ifdef CLEAN_STACKstatic void _noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key)#elsevoid noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key)#endif{   ulong32 a,b,c,d,temp;#ifdef SMALL_CODE   int r;#endif   _ARGCHK(key != NULL);   _ARGCHK(pt != NULL);   _ARGCHK(ct != NULL);      LOAD32H(a,&pt[0]); LOAD32H(b,&pt[4]);   LOAD32H(c,&pt[8]); LOAD32H(d,&pt[12]);   #define ROUND(i) \       a ^= RC[i]; \       THETA(key->noekeon.K, a,b,c,d); \       PI1(a,b,c,d); \       GAMMA(a,b,c,d); \       PI2(a,b,c,d);#ifdef SMALL_CODE   for (r = 0; r < 16; ++r) {       ROUND(r);   }#else    ROUND( 0); ROUND( 1); ROUND( 2); ROUND( 3);   ROUND( 4); ROUND( 5); ROUND( 6); ROUND( 7);   ROUND( 8); ROUND( 9); ROUND(10); ROUND(11);   ROUND(12); ROUND(13); ROUND(14); ROUND(15);#endif#undef ROUND   a ^= RC[16];   THETA(key->noekeon.K, a, b, c, d);      STORE32H(a,&ct[0]); STORE32H(b,&ct[4]);   STORE32H(c,&ct[8]); STORE32H(d,&ct[12]);}#ifdef CLEAN_STACKvoid noekeon_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *key){   _noekeon_ecb_encrypt(pt, ct, key);   burn_stack(sizeof(ulong32) * 5 + sizeof(int));}#endif#ifdef CLEAN_STACKstatic void _noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key)#elsevoid noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key)#endif{   ulong32 a,b,c,d, temp;#ifdef SMALL_CODE   int r;#endif   _ARGCHK(key != NULL);   _ARGCHK(pt != NULL);   _ARGCHK(ct != NULL);      LOAD32H(a,&ct[0]); LOAD32H(b,&ct[4]);   LOAD32H(c,&ct[8]); LOAD32H(d,&ct[12]);   #define ROUND(i) \       THETA(key->noekeon.dK, a,b,c,d); \       a ^= RC[i]; \       PI1(a,b,c,d); \       GAMMA(a,b,c,d); \       PI2(a,b,c,d); #ifdef SMALL_CODE   for (r = 16; r > 0; --r) {       ROUND(r);   }#else   ROUND(16); ROUND(15); ROUND(14); ROUND(13);   ROUND(12); ROUND(11); ROUND(10); ROUND( 9);   ROUND( 8); ROUND( 7); ROUND( 6); ROUND( 5);   ROUND( 4); ROUND( 3); ROUND( 2); ROUND( 1);#endif   #undef ROUND   THETA(key->noekeon.dK, a,b,c,d);   a ^= RC[0];   STORE32H(a,&pt[0]); STORE32H(b, &pt[4]);   STORE32H(c,&pt[8]); STORE32H(d, &pt[12]);}#ifdef CLEAN_STACKvoid noekeon_ecb_decrypt(const unsigned char *ct, unsigned char *pt, symmetric_key *key){   _noekeon_ecb_decrypt(ct, pt, key);   burn_stack(sizeof(ulong32) * 5 + sizeof(int));}#endifint noekeon_test(void){ #ifndef LTC_TEST    return CRYPT_NOP; #else static const struct {     int keylen;     unsigned char key[16], pt[16], ct[16]; } tests[] = {   {      16,      { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },      { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },      { 0x18, 0xa6, 0xec, 0xe5, 0x28, 0xaa, 0x79, 0x73,        0x28, 0xb2, 0xc0, 0x91, 0xa0, 0x2f, 0x54, 0xc5}   } }; symmetric_key key; unsigned char tmp[2][16]; int err, i, y;  for (i = 0; i < (int)(sizeof(tests)/sizeof(tests[0])); i++) {    zeromem(&key, sizeof(key));    if ((err = noekeon_setup(tests[i].key, tests[i].keylen, 0, &key)) != CRYPT_OK) {        return err;    }      noekeon_ecb_encrypt(tests[i].pt, tmp[0], &key);    noekeon_ecb_decrypt(tmp[0], tmp[1], &key);    if (memcmp(tmp[0], tests[i].ct, 16) || memcmp(tmp[1], tests[i].pt, 16)) { #if 0       printf("\n\nTest %d failed\n", i);       if (memcmp(tmp[0], tests[i].ct, 16)) {          printf("CT: ");          for (i = 0; i < 16; i++) {             printf("%02x ", tmp[0][i]);          }          printf("\n");       } else {          printf("PT: ");          for (i = 0; i < 16; i++) {             printf("%02x ", tmp[1][i]);          }          printf("\n");       }#endif               return CRYPT_FAIL_TESTVECTOR;    }      /* now see if we can encrypt all zero bytes 1000 times, decrypt and come back where we started */      for (y = 0; y < 16; y++) tmp[0][y] = 0;      for (y = 0; y < 1000; y++) noekeon_ecb_encrypt(tmp[0], tmp[0], &key);      for (y = 0; y < 1000; y++) noekeon_ecb_decrypt(tmp[0], tmp[0], &key);      for (y = 0; y < 16; y++) if (tmp[0][y] != 0) return CRYPT_FAIL_TESTVECTOR; }        return CRYPT_OK; #endif}int noekeon_keysize(int *desired_keysize){   _ARGCHK(desired_keysize != NULL);   if (*desired_keysize < 16) {      return CRYPT_INVALID_KEYSIZE;   } else {      *desired_keysize = 16;      return CRYPT_OK;   }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本亚洲电影天堂| 91精品办公室少妇高潮对白| 99精品视频一区| 欧美一卡2卡三卡4卡5免费| 久久精品一区二区三区四区| 中文字幕综合网| 久久99国产精品麻豆| 欧美天天综合网| 中文字幕在线观看不卡视频| 久久精品久久99精品久久| 色哟哟一区二区| 亚洲国产精品成人久久综合一区| 日韩精彩视频在线观看| 色婷婷av一区二区| 日韩一区中文字幕| 韩国一区二区在线观看| 欧美一区二区三区性视频| 亚洲国产综合色| 日本高清不卡在线观看| 中国色在线观看另类| 国产成人啪午夜精品网站男同| 欧美一区二区三区四区高清 | 色综合久久中文综合久久97| 337p日本欧洲亚洲大胆精品| 免费成人美女在线观看| 欧美一区午夜视频在线观看| 亚洲h动漫在线| 欧美三级视频在线观看| 亚洲黄一区二区三区| 99久久久久久| 亚洲欧美日韩系列| 欧美天堂一区二区三区| 亚洲不卡一区二区三区| 欧美日韩高清影院| 性做久久久久久| 在线不卡免费欧美| 美女高潮久久久| 精品久久久久一区| 国产乱理伦片在线观看夜一区| 欧美精品一区二区三区蜜臀| 国产一区二区视频在线| 中日韩免费视频中文字幕| 99国产精品国产精品毛片| 亚洲精品你懂的| 欧美日韩在线不卡| 秋霞av亚洲一区二区三| 久久男人中文字幕资源站| 成人一区在线观看| 亚洲欧美一区二区三区极速播放| 色吊一区二区三区| 日韩精品一级二级| 久久综合色鬼综合色| 成人黄色a**站在线观看| 一区视频在线播放| 欧美日韩一区二区电影| 六月丁香婷婷久久| 欧美极品美女视频| 精品视频123区在线观看| 麻豆精品一二三| 国产精品乱码一区二三区小蝌蚪| 色综合久久久久综合| 久久精品久久精品| 中文字幕字幕中文在线中不卡视频| 欧美挠脚心视频网站| 国产一区视频在线看| 亚洲老妇xxxxxx| 日韩欧美国产麻豆| 不卡一区二区中文字幕| 亚洲国产成人高清精品| 国产日韩欧美不卡| 欧美视频一区二区在线观看| 国产专区综合网| 亚洲观看高清完整版在线观看| 精品久久久久久久久久久院品网| 91在线码无精品| 久久99久久99| 亚洲图片欧美一区| 国产精品毛片大码女人| 91麻豆精品国产91| 色综合网色综合| 国产在线精品一区二区三区不卡| 亚洲一区二区在线免费看| 久久综合九色综合97婷婷| 欧美性极品少妇| 成人一区在线观看| 国产在线国偷精品免费看| 艳妇臀荡乳欲伦亚洲一区| 国产丝袜在线精品| 日韩一级片网站| 欧美亚洲一区二区在线| www.欧美.com| 国产精品乡下勾搭老头1| 日韩精品乱码免费| 亚洲午夜免费福利视频| 国产精品乱人伦| 久久久久久久综合日本| 欧美一区二区高清| 欧美精品亚洲一区二区在线播放| 91在线国产观看| 国产精品123| 国产综合久久久久久久久久久久| 亚洲成人激情自拍| 亚洲bt欧美bt精品777| 亚洲欧美国产高清| 1区2区3区国产精品| 欧美激情综合五月色丁香小说| 久久综合网色—综合色88| 欧美成人精品二区三区99精品| 在线播放91灌醉迷j高跟美女 | 国产在线精品一区在线观看麻豆| 日韩精品一二三四| 日本欧美肥老太交大片| 亚洲不卡av一区二区三区| 亚洲国产日韩av| 亚洲一区二区三区视频在线| 亚洲国产一区二区视频| 亚洲国产精品久久久久秋霞影院| 亚洲一区二区视频在线观看| 亚洲国产欧美一区二区三区丁香婷| 亚洲精品一二三四区| 亚洲一区中文在线| 日韩精品视频网站| 日本视频在线一区| 九色综合狠狠综合久久| 国产一区二区视频在线| 成人免费黄色大片| 91美女精品福利| 欧美日韩你懂的| 欧美岛国在线观看| 国产日韩在线不卡| 亚洲天堂成人网| 亚洲福利电影网| 久久国产精品第一页| 国产精品亚洲成人| 91片在线免费观看| 欧美美女一区二区三区| 精品三级在线观看| 国产精品久久久久一区二区三区| 亚洲精品欧美在线| 久久精品国产亚洲一区二区三区| 国产美女视频一区| 日本精品视频一区二区三区| 91超碰这里只有精品国产| 久久久久久久久一| 亚洲欧美欧美一区二区三区| 亚洲va欧美va国产va天堂影院| 日韩电影在线免费看| 国产69精品久久久久777| 在线精品视频一区二区三四| 欧美日韩国产一二三| 精品电影一区二区| 亚洲精品视频在线观看网站| 婷婷一区二区三区| 国产aⅴ综合色| 欧美猛男超大videosgay| 国产亚洲污的网站| 亚洲福利一二三区| 不卡视频一二三| 日韩亚洲欧美综合| 亚洲女同ⅹxx女同tv| 精品亚洲成a人| 在线免费观看不卡av| 国产视频在线观看一区二区三区 | 中文字幕一区免费在线观看| 午夜视频在线观看一区二区| 国产白丝网站精品污在线入口| 欧美午夜片在线观看| 国产精品美女久久福利网站| 日本一区中文字幕| 色综合 综合色| 国产亚洲欧洲997久久综合| 日本三级亚洲精品| 在线亚洲欧美专区二区| 欧美激情一区在线观看| 久久99精品久久久久久| 欧美猛男超大videosgay| 亚洲欧洲制服丝袜| jizz一区二区| 国产拍欧美日韩视频二区| 久久国产精品99精品国产 | 日本成人在线网站| 91国偷自产一区二区三区成为亚洲经典 | 亚洲图片欧美色图| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美mv和日韩mv的网站| 天天爽夜夜爽夜夜爽精品视频| 91丨九色丨尤物| 中文字幕在线一区| 粉嫩高潮美女一区二区三区| 久久综合九色综合97_久久久| 久久精品国产亚洲5555| 欧美日韩一区二区三区在线 | 色吧成人激情小说| 综合久久久久综合| 成人激情免费视频| 国产精品美女久久久久久 | 国产美女一区二区| 久久精品一区二区三区四区| 国产精一品亚洲二区在线视频| 欧美大胆一级视频|