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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? rsa_verify_hash.c

?? 這是一個(gè)提供了各種加密算法的庫(kù)的源代碼
?? C
字號(hào):
/* 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 */#include "tomcrypt.h"/**  @file rsa_verify_hash.c  RSA PKCS #1 v1.5 or v2 PSS signature verification, Tom St Denis and Andreas Lange*/#ifdef MRSA/**  PKCS #1 de-sign then v1.5 or PSS depad  @param sig              The signature data  @param siglen           The length of the signature data (octets)  @param hash             The hash of the message that was signed  @param hashlen          The length of the hash of the message that was signed (octets)  @param padding          Type of padding (LTC_PKCS_1_PSS or LTC_PKCS_1_V1_5)  @param hash_idx         The index of the desired hash  @param saltlen          The length of the salt used during signature  @param stat             [out] The result of the signature comparison, 1==valid, 0==invalid  @param key              The public RSA key corresponding to the key that performed the signature  @return CRYPT_OK on success (even if the signature is invalid)*/int rsa_verify_hash_ex(const unsigned char *sig,      unsigned long siglen,                       const unsigned char *hash,     unsigned long hashlen,                             int            padding,                             int            hash_idx, unsigned long saltlen,                             int           *stat,     rsa_key      *key){  unsigned long modulus_bitlen, modulus_bytelen, x;  int           err;  unsigned char *tmpbuf;  LTC_ARGCHK(hash  != NULL);  LTC_ARGCHK(sig   != NULL);  LTC_ARGCHK(stat  != NULL);  LTC_ARGCHK(key   != NULL);  /* default to invalid */  *stat = 0;  /* valid padding? */  if ((padding != LTC_PKCS_1_V1_5) &&      (padding != LTC_PKCS_1_PSS)) {    return CRYPT_PK_INVALID_PADDING;  }  if (padding == LTC_PKCS_1_PSS) {    /* valid hash ? */    if ((err = hash_is_valid(hash_idx)) != CRYPT_OK) {       return err;    }  }  /* get modulus len in bits */  modulus_bitlen = mp_count_bits( (key->N));  /* outlen must be at least the size of the modulus */  modulus_bytelen = mp_unsigned_bin_size( (key->N));  if (modulus_bytelen != siglen) {     return CRYPT_INVALID_PACKET;  }  /* allocate temp buffer for decoded sig */  tmpbuf = XMALLOC(siglen);  if (tmpbuf == NULL) {     return CRYPT_MEM;  }  /* RSA decode it  */  x = siglen;  if ((err = ltc_mp.rsa_me(sig, siglen, tmpbuf, &x, PK_PUBLIC, key)) != CRYPT_OK) {     XFREE(tmpbuf);     return err;  }  /* make sure the output is the right size */  if (x != siglen) {     XFREE(tmpbuf);     return CRYPT_INVALID_PACKET;  }  if (padding == LTC_PKCS_1_PSS) {    /* PSS decode and verify it */    err = pkcs_1_pss_decode(hash, hashlen, tmpbuf, x, saltlen, hash_idx, modulus_bitlen, stat);  } else {    /* PKCS #1 v1.5 decode it */    unsigned char *out;    unsigned long outlen, loid[16];    int           decoded;    ltc_asn1_list digestinfo[2], siginfo[2];    /* not all hashes have OIDs... so sad */    if (hash_descriptor[hash_idx].OIDlen == 0) {       err = CRYPT_INVALID_ARG;       goto bail_2;    }    /* allocate temp buffer for decoded hash */    outlen = ((modulus_bitlen >> 3) + (modulus_bitlen & 7 ? 1 : 0)) - 3;    out    = XMALLOC(outlen);    if (out == NULL) {      err = CRYPT_MEM;      goto bail_2;    }    if ((err = pkcs_1_v1_5_decode(tmpbuf, x, LTC_PKCS_1_EMSA, modulus_bitlen, out, &outlen, &decoded)) != CRYPT_OK) {      XFREE(out);             goto bail_2;    }    /* now we must decode out[0...outlen-1] using ASN.1, test the OID and then test the hash */    /* construct the SEQUENCE       SEQUENCE {         SEQUENCE {hashoid OID                   blah    NULL         }         hash    OCTET STRING       }   */    LTC_SET_ASN1(digestinfo, 0, LTC_ASN1_OBJECT_IDENTIFIER, loid, sizeof(loid)/sizeof(loid[0]));    LTC_SET_ASN1(digestinfo, 1, LTC_ASN1_NULL,              NULL,                          0);    LTC_SET_ASN1(siginfo,    0, LTC_ASN1_SEQUENCE,          digestinfo,                    2);    LTC_SET_ASN1(siginfo,    1, LTC_ASN1_OCTET_STRING,      tmpbuf,                        siglen);       if ((err = der_decode_sequence(out, outlen, siginfo, 2)) != CRYPT_OK) {       XFREE(out);       goto bail_2;    }    /* test OID */    if ((digestinfo[0].size == hash_descriptor[hash_idx].OIDlen) &&        (XMEMCMP(digestinfo[0].data, hash_descriptor[hash_idx].OID, sizeof(unsigned long) * hash_descriptor[hash_idx].OIDlen) == 0) &&        (siginfo[1].size == hashlen) &&        (XMEMCMP(siginfo[1].data, hash, hashlen) == 0)) {       *stat = 1;    }#ifdef LTC_CLEAN_STACK    zeromem(out, outlen);#endif    XFREE(out);  }bail_2:#ifdef LTC_CLEAN_STACK  zeromem(tmpbuf, siglen);#endif  XFREE(tmpbuf);  return err;}#endif /* MRSA *//* $Source: /cvs/libtom/libtomcrypt/src/pk/rsa/rsa_verify_hash.c,v $ *//* $Revision: 1.11 $ *//* $Date: 2006/12/04 03:09:28 $ */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本vs亚洲vs韩国一区三区二区| 欧美精品一区二区三区视频| 国产精品无遮挡| 日av在线不卡| 欧美优质美女网站| 亚洲日本乱码在线观看| www国产精品av| 日本中文字幕一区二区视频 | 一区二区三区欧美日| 国产白丝网站精品污在线入口| 日韩精品专区在线| 日本aⅴ免费视频一区二区三区| 欧美三级电影精品| 亚洲第一精品在线| 欧美日韩精品电影| 丝袜国产日韩另类美女| 欧美高清一级片在线| 亚洲福利视频一区二区| 欧美日韩国产大片| 日韩精品色哟哟| 欧美一级久久久| 日本不卡123| 日韩欧美成人一区二区| 精品无人码麻豆乱码1区2区 | 97久久精品人人爽人人爽蜜臀| 国产欧美一区二区在线| 国产99精品国产| 国产精品每日更新在线播放网址| 成人三级在线视频| 亚洲人成伊人成综合网小说| 欧洲国产伦久久久久久久| 亚洲va韩国va欧美va精品| 欧美日本乱大交xxxxx| 日韩国产高清在线| 精品美女一区二区三区| 国产精品自在在线| 亚洲欧美日韩国产成人精品影院 | 粉嫩一区二区三区性色av| 欧美国产一区视频在线观看| 91视频观看免费| 同产精品九九九| 久久这里只有精品首页| 91亚洲资源网| 欧美96一区二区免费视频| 国产三级精品在线| 欧美系列亚洲系列| 国产一区二三区| 一区二区三区在线观看动漫 | 99久久久久免费精品国产 | 久久久www成人免费无遮挡大片| 国产在线一区观看| 日本一区二区三区高清不卡| av在线不卡网| 一区二区三区在线免费观看| 欧美日韩免费在线视频| 麻豆国产91在线播放| 久久精品一二三| 国产不卡视频在线观看| 国产三级精品三级| 91麻豆蜜桃一区二区三区| 亚洲午夜久久久久久久久久久 | 亚洲三级电影网站| 欧美日韩国产免费一区二区 | 亚洲一区二区三区在线看| 日韩欧美国产不卡| av电影在线不卡| 亚洲国产欧美在线人成| 欧美成va人片在线观看| 9l国产精品久久久久麻豆| 亚洲大片在线观看| 精品99久久久久久| 国产成人一区在线| 亚洲福利视频三区| 国产精品久久久久久妇女6080| 成人av网站在线观看免费| 亚洲成av人片| 国产精品久久久久aaaa| 欧美日韩免费观看一区二区三区| 美女视频黄久久| 亚洲另类色综合网站| 日韩欧美不卡一区| 91国产成人在线| 紧缚奴在线一区二区三区| 亚洲免费观看视频| 久久精品视频一区二区| 欧美日韩一区二区三区四区| 国产尤物一区二区在线| 亚洲一区二区三区在线| 国产亚洲精品免费| 欧美一区二区久久| 91精品福利视频| 国产成人精品一区二区三区四区 | 国产乱码精品一品二品| 亚洲国产sm捆绑调教视频| 国产一区二区在线免费观看| 一区二区三区在线视频播放| 久久精品这里都是精品| 欧美日韩在线精品一区二区三区激情| 国产乱码精品一区二区三区忘忧草| 伊人一区二区三区| 欧美国产欧美综合| 精品国产一区a| 欧美精三区欧美精三区| 99久久久精品免费观看国产蜜| 精东粉嫩av免费一区二区三区| 午夜精品福利一区二区三区av | 亚洲欧美在线视频| 日韩美女视频一区二区在线观看| 欧美性受xxxx黑人xyx性爽| 成人app网站| 国产精品自在欧美一区| 国产综合久久久久影院| 亚洲一区二区四区蜜桃| 最新中文字幕一区二区三区| 精品成a人在线观看| 欧美电影一区二区三区| 在线国产电影不卡| 99国产欧美久久久精品| 不卡电影一区二区三区| 国产91丝袜在线播放0| 国产精选一区二区三区| 国产精品99久久久久久有的能看| 免费看日韩a级影片| 免费看欧美女人艹b| 免费欧美在线视频| 麻豆精品视频在线观看免费| 日韩中文字幕区一区有砖一区 | 国产盗摄女厕一区二区三区| 精品一区二区免费在线观看| 美女爽到高潮91| 久久99久久精品| 国产精品一级在线| 国产成人一区二区精品非洲| 国产激情一区二区三区四区| 国产成人精品www牛牛影视| 国产成人在线视频播放| 高清在线成人网| 波多野结衣中文字幕一区二区三区| 久久99久久精品| 福利电影一区二区| 国产suv精品一区二区三区 | 粉嫩av一区二区三区| 成人福利视频在线看| 成人97人人超碰人人99| 99国产精品久久久久| 欧美中文一区二区三区| 亚洲自拍偷拍av| 亚洲成av人**亚洲成av**| 奇米在线7777在线精品| 五月天精品一区二区三区| 天天影视色香欲综合网老头| 午夜在线成人av| 日本91福利区| 寂寞少妇一区二区三区| 国产美女久久久久| 99vv1com这只有精品| 色噜噜狠狠色综合中国| 一本久久综合亚洲鲁鲁五月天 | 国产一区亚洲一区| 99久久国产综合精品色伊| 欧美日韩综合不卡| 欧美一区二区大片| 久久久久久久久久久久电影| 国产精品毛片高清在线完整版| 亚洲欧美日韩国产成人精品影院| 亚洲韩国精品一区| 美国av一区二区| 国产电影精品久久禁18| 在线影院国内精品| 欧美成人三级在线| 亚洲青青青在线视频| 日韩高清不卡一区二区三区| 国产精品原创巨作av| 欧美在线免费播放| 久久人人爽人人爽| 亚洲午夜精品久久久久久久久| 国产一区二区在线观看免费| 色偷偷久久人人79超碰人人澡| 91精品国产全国免费观看| 中文字幕av一区二区三区免费看 | 欧美一区二区三区精品| 国产女主播一区| 丝袜亚洲精品中文字幕一区| 国产夫妻精品视频| 欧美丰满少妇xxxxx高潮对白| 国产欧美精品日韩区二区麻豆天美| 午夜精品福利一区二区蜜股av | 亚洲激情六月丁香| 国产裸体歌舞团一区二区| 欧美色精品天天在线观看视频| 国产欧美日韩不卡免费| 蜜桃av一区二区三区| 91免费国产在线观看| 久久久久久久久岛国免费| 亚洲成人在线观看视频| 波多野洁衣一区| 精品国产区一区| 亚洲观看高清完整版在线观看| 国产精品一二三区| 欧美草草影院在线视频|