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

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

?? ecc_import.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@gmail.com, http://libtomcrypt.com *//* Implements ECC over Z/pZ for curve y^2 = x^3 - 3x + b * * All curves taken from NIST recommendation paper of July 1999 * Available at http://csrc.nist.gov/cryptval/dss.htm */#include "tomcrypt.h"/**  @file ecc_import.c  ECC Crypto, Tom St Denis*/  #ifdef MECCstatic int is_point(ecc_key *key){   void *prime, *b, *t1, *t2;   int err;      if ((err = mp_init_multi(&prime, &b, &t1, &t2, NULL)) != CRYPT_OK) {      return err;   }      /* load prime and b */   if ((err = mp_read_radix(prime, key->dp->prime, 16)) != CRYPT_OK)                          { goto error; }   if ((err = mp_read_radix(b, key->dp->B, 16)) != CRYPT_OK)                                  { goto error; }      /* compute y^2 */   if ((err = mp_sqr(key->pubkey.y, t1)) != CRYPT_OK)                                         { goto error; }      /* compute x^3 */   if ((err = mp_sqr(key->pubkey.x, t2)) != CRYPT_OK)                                         { goto error; }   if ((err = mp_mod(t2, prime, t2)) != CRYPT_OK)                                             { goto error; }   if ((err = mp_mul(key->pubkey.x, t2, t2)) != CRYPT_OK)                                     { goto error; }      /* compute y^2 - x^3 */   if ((err = mp_sub(t1, t2, t1)) != CRYPT_OK)                                                { goto error; }      /* compute y^2 - x^3 + 3x */   if ((err = mp_add(t1, key->pubkey.x, t1)) != CRYPT_OK)                                     { goto error; }   if ((err = mp_add(t1, key->pubkey.x, t1)) != CRYPT_OK)                                     { goto error; }   if ((err = mp_add(t1, key->pubkey.x, t1)) != CRYPT_OK)                                     { goto error; }   if ((err = mp_mod(t1, prime, t1)) != CRYPT_OK)                                             { goto error; }   while (mp_cmp_d(t1, 0) == LTC_MP_LT) {      if ((err = mp_add(t1, prime, t1)) != CRYPT_OK)                                          { goto error; }   }   while (mp_cmp(t1, prime) != LTC_MP_LT) {      if ((err = mp_sub(t1, prime, t1)) != CRYPT_OK)                                          { goto error; }   }      /* compare to b */   if (mp_cmp(t1, b) != LTC_MP_EQ) {      err = CRYPT_INVALID_PACKET;   } else {      err = CRYPT_OK;   }   error:   mp_clear_multi(prime, b, t1, t2, NULL);   return err;}/**  Import an ECC key from a binary packet  @param in      The packet to import  @param inlen   The length of the packet  @param key     [out] The destination of the import  @return CRYPT_OK if successful, upon error all allocated memory will be freed*/int ecc_import(const unsigned char *in, unsigned long inlen, ecc_key *key){   return ecc_import_ex(in, inlen, key, NULL);}/**  Import an ECC key from a binary packet, using user supplied domain params rather than one of the NIST ones  @param in      The packet to import  @param inlen   The length of the packet  @param key     [out] The destination of the import  @param dp      pointer to user supplied params; must be the same as the params used when exporting  @return CRYPT_OK if successful, upon error all allocated memory will be freed*/int ecc_import_ex(const unsigned char *in, unsigned long inlen, ecc_key *key, const ltc_ecc_set_type *dp){   unsigned long key_size;   unsigned char flags[1];   int           err;   LTC_ARGCHK(in  != NULL);   LTC_ARGCHK(key != NULL);   LTC_ARGCHK(ltc_mp.name != NULL);   /* init key */   if (mp_init_multi(&key->pubkey.x, &key->pubkey.y, &key->pubkey.z, &key->k, NULL) != CRYPT_OK) {      return CRYPT_MEM;   }   /* find out what type of key it is */   if ((err = der_decode_sequence_multi(in, inlen,                                   LTC_ASN1_BIT_STRING, 1UL, &flags,                                  LTC_ASN1_EOL,        0UL, NULL)) != CRYPT_OK) {      goto done;   }   if (flags[0] == 1) {      /* private key */      key->type = PK_PRIVATE;      if ((err = der_decode_sequence_multi(in, inlen,                                     LTC_ASN1_BIT_STRING,      1UL, flags,                                     LTC_ASN1_SHORT_INTEGER,   1UL, &key_size,                                     LTC_ASN1_INTEGER,         1UL, key->pubkey.x,                                     LTC_ASN1_INTEGER,         1UL, key->pubkey.y,                                     LTC_ASN1_INTEGER,         1UL, key->k,                                     LTC_ASN1_EOL,             0UL, NULL)) != CRYPT_OK) {         goto done;      }   } else {      /* public key */      key->type = PK_PUBLIC;      if ((err = der_decode_sequence_multi(in, inlen,                                     LTC_ASN1_BIT_STRING,      1UL, flags,                                     LTC_ASN1_SHORT_INTEGER,   1UL, &key_size,                                     LTC_ASN1_INTEGER,         1UL, key->pubkey.x,                                     LTC_ASN1_INTEGER,         1UL, key->pubkey.y,                                     LTC_ASN1_EOL,             0UL, NULL)) != CRYPT_OK) {         goto done;      }   }   if (dp == NULL) {     /* find the idx */     for (key->idx = 0; ltc_ecc_sets[key->idx].size && (unsigned long)ltc_ecc_sets[key->idx].size != key_size; ++key->idx);     if (ltc_ecc_sets[key->idx].size == 0) {       err = CRYPT_INVALID_PACKET;       goto done;     }     key->dp = &ltc_ecc_sets[key->idx];   } else {     key->idx = -1;     key->dp = dp;   }   /* set z */   if ((err = mp_set(key->pubkey.z, 1)) != CRYPT_OK) { goto done; }      /* is it a point on the curve?  */   if ((err = is_point(key)) != CRYPT_OK) {      goto done;   }   /* we're good */   return CRYPT_OK;done:   mp_clear_multi(key->pubkey.x, key->pubkey.y, key->pubkey.z, key->k, NULL);   return err;}#endif/* $Source: /cvs/libtom/libtomcrypt/src/pk/ecc/ecc_import.c,v $ *//* $Revision: 1.11 $ *//* $Date: 2006/12/04 02:19:48 $ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费黄色大片| 久久久久久久久一| 91成人免费在线| av在线不卡网| 欧美午夜寂寞影院| 欧美一级片免费看| 欧美电影免费观看高清完整版在线 | 韩国三级在线一区| 另类小说色综合网站| 成人午夜视频免费看| 91福利视频久久久久| 日韩午夜在线影院| 久久久久久久久久看片| 国产色一区二区| 亚洲第一精品在线| 韩国精品久久久| 欧美亚洲一区二区在线观看| 欧美一区二区三区免费大片 | 日本精品免费观看高清观看| 欧美日韩国产另类一区| 国产日韩欧美高清在线| 亚洲第一福利一区| 色国产精品一区在线观看| 欧美一二区视频| 无码av中文一区二区三区桃花岛| 国产自产视频一区二区三区| 在线视频国内自拍亚洲视频| 国产人成亚洲第一网站在线播放| 亚洲18女电影在线观看| 91丨porny丨首页| 国产精品麻豆99久久久久久| 激情图片小说一区| 日韩欧美中文字幕一区| 免费成人在线网站| 欧美一区二区日韩一区二区| 亚洲一区二三区| 在线欧美日韩精品| 五月婷婷激情综合| 7777精品伊人久久久大香线蕉超级流畅| 亚洲欧美日韩久久精品| 成人av午夜电影| 中文字幕佐山爱一区二区免费| 99精品视频在线观看免费| 午夜影视日本亚洲欧洲精品| 成人精品国产福利| 亚洲一区二区三区不卡国产欧美| 欧美丰满美乳xxx高潮www| 性感美女久久精品| 久久精品人人做人人综合| 成人av在线播放网址| 无吗不卡中文字幕| 中文字幕欧美日韩一区| 欧美天堂亚洲电影院在线播放| 日韩高清一级片| 久久99精品视频| 欧美www视频| 亚洲视频中文字幕| 91丝袜美女网| 久久久久九九视频| 99国产精品一区| 亚洲线精品一区二区三区八戒| 紧缚捆绑精品一区二区| 国产精品久久久久桃色tv| 91麻豆免费在线观看| 精一区二区三区| 亚洲成人免费在线| 一区二区三区在线不卡| 国产日韩精品久久久| 日韩欧美国产综合| 麻豆精品一区二区三区| 欧美tickling挠脚心丨vk| 色综合天天综合网天天狠天天 | 欧美亚洲尤物久久| av电影在线观看一区| 成人h动漫精品一区二区| 国模套图日韩精品一区二区| 久久爱www久久做| 韩国在线一区二区| 福利一区二区在线| 91丝袜高跟美女视频| 欧美日韩在线播放一区| 欧美欧美欧美欧美首页| 欧美性做爰猛烈叫床潮| 欧美日韩精品综合在线| 91精品国产乱| 久久久久国产一区二区三区四区 | 国产调教视频一区| 亚洲色图视频网站| 蜜臀av一级做a爰片久久| 国产麻豆精品95视频| 色老综合老女人久久久| 在线不卡免费av| 一区二区在线观看视频在线观看| 香港成人在线视频| av色综合久久天堂av综合| 欧美色手机在线观看| 亚洲欧美自拍偷拍| 久久99精品视频| 日韩一区二区三| 夜夜嗨av一区二区三区| 国产精品一区二区久激情瑜伽| 色综合久久久久久久久| 久久午夜国产精品| 日本视频免费一区| 欧美网站一区二区| 亚洲va欧美va国产va天堂影院| 国产成人自拍在线| 精品国产髙清在线看国产毛片| 中文字幕在线一区| 国产一区二区三区香蕉| 久久网站热最新地址| 国产一区二区在线影院| 欧美mv日韩mv| 国产在线国偷精品产拍免费yy| 日韩视频免费观看高清完整版在线观看 | 亚洲国产视频直播| 欧美一区二区三区系列电影| 日韩高清在线观看| 国产午夜一区二区三区| 春色校园综合激情亚洲| 国产精品伦一区二区三级视频| 丁香另类激情小说| 亚洲一区二区三区四区中文字幕| 欧美日韩精品一区二区天天拍小说| 国产精品丝袜一区| 欧洲一区二区三区在线| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲精品一区二区三区精华液 | 欧美一区二区成人6969| 国产成人免费在线视频| 亚洲人成网站色在线观看| 欧美喷潮久久久xxxxx| 国产老肥熟一区二区三区| 亚洲综合成人在线视频| 国产欧美日韩精品一区| 欧美三级视频在线观看| 成人黄色在线视频| 韩日av一区二区| 久久国产欧美日韩精品| 亚洲在线观看免费| 综合网在线视频| 久久精品一二三| 亚洲精品在线观看网站| 欧美酷刑日本凌虐凌虐| 91久久久免费一区二区| 99re这里只有精品视频首页| 国产露脸91国语对白| 美脚の诱脚舐め脚责91| 亚洲午夜影视影院在线观看| 成人免费视频在线观看| 中文一区二区在线观看| 国产日韩欧美在线一区| 精品国产三级a在线观看| 日韩一区二区免费在线观看| 欧美三级电影网| 91精品国产综合久久香蕉的特点 | 欧美日韩免费一区二区三区视频| 成人免费精品视频| 欧美探花视频资源| 欧美一区二区三区的| 日韩欧美一二区| 国产精品嫩草影院com| 亚洲综合免费观看高清完整版在线| 亚洲午夜久久久久久久久电影院 | 国产精品久久一级| 午夜视频在线观看一区二区三区| 国产精品伊人色| 色久优优欧美色久优优| 日韩欧美国产一区在线观看| 国产三级久久久| 日韩成人精品视频| 成人免费三级在线| 欧美一区二区女人| 亚洲资源在线观看| 国产麻豆精品在线观看| 欧美乱妇23p| 亚洲欧美一区二区三区久本道91| 人人爽香蕉精品| 在线日韩一区二区| 亚洲欧美精品午睡沙发| 国产一区二区三区免费| 777奇米四色成人影色区| 国产精品视频线看| 成人性生交大片免费| 日韩你懂的在线观看| 丝袜亚洲精品中文字幕一区| 一本大道久久a久久精二百| 久久―日本道色综合久久| 麻豆91免费看| 精品剧情在线观看| 国产成人自拍高清视频在线免费播放| 欧美日韩免费视频| 日韩精品亚洲一区| 欧美不卡一二三| 成人av网站免费观看| 中文字幕乱码一区二区免费| 成人网在线播放| 一区二区三区在线播| 欧美亚洲国产一区二区三区va | 国产**成人网毛片九色|