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

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

?? milenage.c

?? mediastreamer2是開源的網絡傳輸媒體流的庫
?? C
字號:
/*------------------------------------------------------------------- *          Example algorithms f1, f1*, f2, f3, f4, f5, f5* *------------------------------------------------------------------- * *  A sample implementation of the example 3GPP authentication and *  key agreement functions f1, f1*, f2, f3, f4, f5 and f5*.  This is *  a byte-oriented implementation of the functions, and of the block *  cipher kernel function Rijndael. * *  This has been coded for clarity, not necessarily for efficiency. * *  The functions f2, f3, f4 and f5 share the same inputs and have *  been coded together as a single function.  f1, f1* and f5* are *  all coded separately. * *-----------------------------------------------------------------*/#include "milenage.h"#include "rijndael.h"/*--------- Operator Variant Algorithm Configuration Field --------*/            /*------- Insert your value of OP here -------*//*u8 OP[16] = {0x63, 0xbf, 0xa5, 0x0e, 0xe6, 0x52, 0x33, 0x65,             0xff, 0x14, 0xc1, 0xf4, 0x5f, 0x88, 0x73, 0x7d};*/u8 OP[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};            /*------- Insert your value of OP here -------*//*--------------------------- prototypes --------------------------*//*------------------------------------------------------------------- *                            Algorithm f1 *------------------------------------------------------------------- * *  Computes network authentication code MAC-A from key K, random *  challenge RAND, sequence number SQN and authentication management *  field AMF. * *-----------------------------------------------------------------*/void f1    ( u8 k[16], u8 rand[16], u8 sqn[6], u8 amf[2],              u8 mac_a[8] ){  u8 op_c[16];  u8 temp[16];  u8 in1[16];  u8 out1[16];  u8 rijndaelInput[16];  u8 i;  RijndaelKeySchedule( k );  ComputeOPc( op_c );  for (i=0; i<16; i++)    rijndaelInput[i] = rand[i] ^ op_c[i];  RijndaelEncrypt( rijndaelInput, temp );  for (i=0; i<6; i++)  {    in1[i]    = sqn[i];    in1[i+8]  = sqn[i];  }  for (i=0; i<2; i++)  {    in1[i+6]  = amf[i];    in1[i+14] = amf[i];  }  /* XOR op_c and in1, rotate by r1=64, and XOR *   * on the constant c1 (which is all zeroes)   */  for (i=0; i<16; i++)    rijndaelInput[(i+8) % 16] = in1[i] ^ op_c[i];  /* XOR on the value temp computed before */  for (i=0; i<16; i++)    rijndaelInput[i] ^= temp[i];    RijndaelEncrypt( rijndaelInput, out1 );  for (i=0; i<16; i++)    out1[i] ^= op_c[i];  for (i=0; i<8; i++)    mac_a[i] = out1[i];  return;} /* end of function f1 */  /*------------------------------------------------------------------- *                            Algorithms f2-f5 *------------------------------------------------------------------- * *  Takes key K and random challenge RAND, and returns response RES, *  confidentiality key CK, integrity key IK and anonymity key AK. * *-----------------------------------------------------------------*/void f2345 ( u8 k[16], u8 rand[16],             u8 res[8], u8 ck[16], u8 ik[16], u8 ak[6] ){  u8 op_c[16];  u8 temp[16];  u8 out[16];  u8 rijndaelInput[16];  u8 i;  RijndaelKeySchedule( k );  ComputeOPc( op_c );  for (i=0; i<16; i++)    rijndaelInput[i] = rand[i] ^ op_c[i];  RijndaelEncrypt( rijndaelInput, temp );  /* To obtain output block OUT2: XOR OPc and TEMP,    *   * rotate by r2=0, and XOR on the constant c2 (which *   * is all zeroes except that the last bit is 1).     */  for (i=0; i<16; i++)    rijndaelInput[i] = temp[i] ^ op_c[i];  rijndaelInput[15] ^= 1;  RijndaelEncrypt( rijndaelInput, out );  for (i=0; i<16; i++)    out[i] ^= op_c[i];  for (i=0; i<8; i++)    res[i] = out[i+8];  for (i=0; i<6; i++)    ak[i]  = out[i];  /* To obtain output block OUT3: XOR OPc and TEMP,        *   * rotate by r3=32, and XOR on the constant c3 (which    *   * is all zeroes except that the next to last bit is 1). */  for (i=0; i<16; i++)    rijndaelInput[(i+12) % 16] = temp[i] ^ op_c[i];  rijndaelInput[15] ^= 2;  RijndaelEncrypt( rijndaelInput, out );  for (i=0; i<16; i++)    out[i] ^= op_c[i];  for (i=0; i<16; i++)    ck[i] = out[i];  /* To obtain output block OUT4: XOR OPc and TEMP,         *   * rotate by r4=64, and XOR on the constant c4 (which     *   * is all zeroes except that the 2nd from last bit is 1). */  for (i=0; i<16; i++)    rijndaelInput[(i+8) % 16] = temp[i] ^ op_c[i];  rijndaelInput[15] ^= 4;  RijndaelEncrypt( rijndaelInput, out );  for (i=0; i<16; i++)    out[i] ^= op_c[i];  for (i=0; i<16; i++)    ik[i] = out[i];  return;} /* end of function f2345 */  /*------------------------------------------------------------------- *                            Algorithm f1* *------------------------------------------------------------------- * *  Computes resynch authentication code MAC-S from key K, random *  challenge RAND, sequence number SQN and authentication management *  field AMF. * *-----------------------------------------------------------------*/void f1star( u8 k[16], u8 rand[16], u8 sqn[6], u8 amf[2],              u8 mac_s[8] ){  u8 op_c[16];  u8 temp[16];  u8 in1[16];  u8 out1[16];  u8 rijndaelInput[16];  u8 i;  RijndaelKeySchedule( k );  ComputeOPc( op_c );  for (i=0; i<16; i++)    rijndaelInput[i] = rand[i] ^ op_c[i];  RijndaelEncrypt( rijndaelInput, temp );  for (i=0; i<6; i++)  {    in1[i]    = sqn[i];    in1[i+8]  = sqn[i];  }  for (i=0; i<2; i++)  {    in1[i+6]  = amf[i];    in1[i+14] = amf[i];  }  /* XOR op_c and in1, rotate by r1=64, and XOR *   * on the constant c1 (which is all zeroes)   */  for (i=0; i<16; i++)    rijndaelInput[(i+8) % 16] = in1[i] ^ op_c[i];  /* XOR on the value temp computed before */  for (i=0; i<16; i++)    rijndaelInput[i] ^= temp[i];    RijndaelEncrypt( rijndaelInput, out1 );  for (i=0; i<16; i++)    out1[i] ^= op_c[i];  for (i=0; i<8; i++)    mac_s[i] = out1[i+8];  return;} /* end of function f1star */  /*------------------------------------------------------------------- *                            Algorithm f5* *------------------------------------------------------------------- * *  Takes key K and random challenge RAND, and returns resynch *  anonymity key AK. * *-----------------------------------------------------------------*/void f5star( u8 k[16], u8 rand[16],             u8 ak[6] ){  u8 op_c[16];  u8 temp[16];  u8 out[16];  u8 rijndaelInput[16];  u8 i;  RijndaelKeySchedule( k );  ComputeOPc( op_c );  for (i=0; i<16; i++)    rijndaelInput[i] = rand[i] ^ op_c[i];  RijndaelEncrypt( rijndaelInput, temp );  /* To obtain output block OUT5: XOR OPc and TEMP,         *   * rotate by r5=96, and XOR on the constant c5 (which     *   * is all zeroes except that the 3rd from last bit is 1). */  for (i=0; i<16; i++)    rijndaelInput[(i+4) % 16] = temp[i] ^ op_c[i];  rijndaelInput[15] ^= 8;  RijndaelEncrypt( rijndaelInput, out );  for (i=0; i<16; i++)    out[i] ^= op_c[i];  for (i=0; i<6; i++)    ak[i] = out[i];  return;} /* end of function f5star */  /*------------------------------------------------------------------- *  Function to compute OPc from OP and K.  Assumes key schedule has    already been performed. *-----------------------------------------------------------------*/void ComputeOPc( u8 op_c[16] ){  u8 i;    RijndaelEncrypt( OP, op_c );  for (i=0; i<16; i++)    op_c[i] ^= OP[i];  return;} /* end of function ComputeOPc */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文在线一区二区| 8x福利精品第一导航| 开心九九激情九九欧美日韩精美视频电影| 亚洲国产成人在线| 中文字幕免费不卡在线| 国产欧美日韩三区| 国产精品毛片久久久久久久| 亚洲国产精品av| 国产精品理伦片| 亚洲欧美电影院| 亚洲va欧美va人人爽午夜| 夜夜精品浪潮av一区二区三区| 亚洲同性gay激情无套| 亚洲免费观看高清完整版在线观看| 国产精品麻豆网站| 亚洲乱码中文字幕| 石原莉奈一区二区三区在线观看| 三级影片在线观看欧美日韩一区二区| 日精品一区二区| 麻豆成人久久精品二区三区红| 狠狠久久亚洲欧美| 成人一区二区三区视频在线观看 | 91久久奴性调教| 欧美亚洲综合在线| 日韩免费福利电影在线观看| 精品国产99国产精品| 国产精品欧美一级免费| 一区二区日韩电影| 久久99精品久久久| 91片在线免费观看| 日韩精品一区二| 日韩美女视频一区二区| 亚洲成av人片一区二区三区| 久久99久久99小草精品免视看| 国产91精品在线观看| 欧美影视一区在线| 久久精品人人做| 亚洲国产精品久久久久婷婷884| 国产在线视视频有精品| 欧美在线免费观看视频| 久久夜色精品国产噜噜av| 亚洲老妇xxxxxx| 精东粉嫩av免费一区二区三区| 91麻豆国产福利精品| 精品久久一区二区三区| 亚洲黄色在线视频| 成人免费黄色大片| 日韩午夜中文字幕| 亚洲综合av网| 波多野结衣中文字幕一区| 91精品国产综合久久久久久 | 视频一区中文字幕| 91丨九色丨蝌蚪富婆spa| 日韩一区二区高清| 亚洲福利视频导航| 色呦呦一区二区三区| 久久久久久亚洲综合| 日韩不卡一区二区三区 | 亚洲va国产va欧美va观看| 丁香天五香天堂综合| 欧美成人艳星乳罩| 午夜精品久久久久久久99水蜜桃| 色综合天天综合网天天看片| 国产亚洲自拍一区| 国产精品99久久久久久久女警 | 精品日本一线二线三线不卡| 亚洲成人www| 欧美体内she精视频| 亚洲视频 欧洲视频| 成人免费毛片片v| 欧美韩日一区二区三区四区| 激情都市一区二区| 精品国产一区二区三区久久影院 | 国产欧美精品一区aⅴ影院| 美国一区二区三区在线播放| 777午夜精品视频在线播放| 亚洲国产综合91精品麻豆| 欧美色图激情小说| 亚洲综合在线五月| 欧美私人免费视频| 日韩电影在线一区二区三区| 欧美裸体一区二区三区| 日本欧美大码aⅴ在线播放| 555夜色666亚洲国产免| 六月婷婷色综合| 久久网这里都是精品| 国产福利一区在线| 亚洲图片激情小说| 精品视频全国免费看| 日韩电影免费在线| 久久久久免费观看| 91在线视频在线| 亚洲成人激情自拍| 欧美电影免费观看高清完整版在线| 日本免费新一区视频| 久久久综合视频| 成人亚洲一区二区一| 一区二区在线免费| 中文字幕一区二区不卡| 91视频观看免费| 日本在线不卡一区| 国产日产欧美精品一区二区三区| av亚洲精华国产精华精| 亚洲第四色夜色| 亚洲精品一区二区三区四区高清| 成人天堂资源www在线| 亚洲一区二区影院| 久久精品网站免费观看| 欧洲一区二区三区免费视频| 麻豆视频观看网址久久| 国产精品久久久久三级| 欧美日韩国产免费| 99久久99精品久久久久久 | 久久中文娱乐网| 一本到一区二区三区| 日本在线不卡一区| 欧美—级在线免费片| 欧美精品丝袜中出| 成人手机电影网| 日av在线不卡| 亚洲自拍偷拍麻豆| 国产精品私人自拍| 日韩亚洲欧美在线观看| 色噜噜狠狠色综合中国| 狠狠色丁香久久婷婷综合_中| 中文字幕综合网| 国产日韩欧美激情| 欧美tk—视频vk| 欧美日本一道本在线视频| 99在线精品视频| 国产精品18久久久久久久久久久久| 亚洲国产欧美日韩另类综合| 欧美激情资源网| 精品免费日韩av| 欧美高清性hdvideosex| 一本到不卡免费一区二区| 国产成人a级片| 国模娜娜一区二区三区| 免费欧美在线视频| 青娱乐精品视频| 青娱乐精品视频| 日韩高清国产一区在线| 亚洲一区二区五区| 一区二区免费看| 亚洲免费伊人电影| 亚洲欧美经典视频| 亚洲综合久久av| 亚洲午夜一二三区视频| 亚洲午夜免费福利视频| 亚洲品质自拍视频| 中文文精品字幕一区二区| 欧美一区二区三区四区久久| www.在线成人| 91在线视频免费91| 成人a区在线观看| 亚洲图片欧美综合| 午夜精品久久久久久久99樱桃| 亚洲男人天堂av网| 综合网在线视频| 欧美日韩国产一区二区三区地区| 欧美亚一区二区| 欧美三级电影一区| 色94色欧美sute亚洲线路二 | 亚洲丝袜美腿综合| xvideos.蜜桃一区二区| 欧美一区二区三区免费观看视频| 欧美性生活一区| 欧美色老头old∨ideo| 日韩一区二区三区在线视频| 欧美日韩精品欧美日韩精品| 欧美丝袜丝nylons| 欧美日韩一级片在线观看| 亚洲欧洲日韩一区二区三区| 国产女人水真多18毛片18精品视频 | 性欧美疯狂xxxxbbbb| 亚洲一区免费视频| 亚洲精品一区二区三区精华液| 国产亚洲欧美中文| 中文字幕一区二区三区在线不卡| 国产精品乱码妇女bbbb| 国产精品免费丝袜| 日产国产欧美视频一区精品| 老汉av免费一区二区三区| 狠狠色丁香久久婷婷综合丁香| 成人免费va视频| 一本到高清视频免费精品| 欧美日韩一二区| 欧美一级日韩不卡播放免费| 国产日韩av一区| 一区二区三区自拍| 日韩电影免费在线看| 国产激情精品久久久第一区二区 | 成人性生交大片免费看中文| 在线亚洲一区二区| 欧美一区二区免费观在线| 国产精品久久久久久亚洲毛片| 视频在线观看一区二区三区| www.亚洲人| 国产亚洲成av人在线观看导航 | 国产精品女同互慰在线看|