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

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

?? dhkgtype.c

?? IBE是一種非對(duì)稱密碼技術(shù)
?? C
字號(hào):
/* Copyright 2005-2006, Voltage Security, all rights reserved.
 */
#include "vibecrypto.h"
#include "environment.h"
#include "base.h"
#include "libctx.h"
#include "keyobj.h"
#include "dh.h"
#include "mpint.h"
#include "random.h"
#include "errorctx.h"

/* This routine does the work. It allocates and fills in the contexts.
 *
 * @param obj The algorithm object to set.
 * @param primeSizeBits The size of the primeP in bits.
 * @param paramInfo Contains the params from which the keys will be
 * generated.
 * @return an int, 0 if the function completed successfully or a
 * non-zero error code.
 */
static int VOLT_CALLING_CONV SetObjectDHKeyGen VOLT_PROTO_LIST ((
   VoltKeyObject *obj,
   unsigned int primeSizeBits,
   VtDHParamInfo *paramInfo
   ));

int VtKeyPairGenDH (
   VtKeyObject object,
   Pointer info,
   unsigned int flag,
   VtRandomObject random
   )
{
  int status;
  unsigned int msByte, primeSizeBits;
  VoltKeyObject *obj = (VoltKeyObject *)object;
  VtParameterObject pObj = (VtParameterObject)info;
  VtDHParamInfo *paramInfo;
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  do
  {
    /* Check the flag, it should be VOLT_KEY_SET_TYPE_FLAG.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_TYPE;
    if (flag != VOLT_KEY_SET_TYPE_FLAG)
      break;

    /* Check the keyType of the object. It should be 0.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_SET;
    if (obj->keyType != 0)
      break;

    /* The associated info should be a parameter object.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_ASSOCIATED_INFO;
    if (info == (Pointer)0)
      break;

    /* Get the params.
     */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VtGetParameterParam (
      pObj, VtParameterParamDHParams, (Pointer *)&paramInfo);
    if (status != 0)
    {
      if (status == VT_ERROR_GET_INFO_UNAVAILABLE)
        status = VT_ERROR_INVALID_ASSOCIATED_INFO;
      break;
    }

    /* How big is the prime?
     */
    primeSizeBits = 8;
    msByte = (unsigned int)(paramInfo->primeP.data[0]) & 0xff;
    while ((msByte & 0x80) == 0)
    {
      msByte <<= 1;
      primeSizeBits--;
    }
    primeSizeBits += (paramInfo->primeP.len - 1) * 8;

    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = SetObjectDHKeyGen (obj, primeSizeBits, paramInfo);

  } while (0);

  /* If everything worked, return 0.
   */
  if (status == 0)
  {
    /* Set the FIPS bit in the object type, this object is a FIPS
     * object.
     */
    obj->voltObject.objectType |= VOLT_OBJECT_TYPE_FIPS;
    return (0);
  }

  /* If something went wrong, indicate that this object is not usable.
   */
  obj->keyType = 0;

  VOLT_LOG_ERROR_INFO (
    0, object, status, 0, errorType,
    (char *)0, "VtKeyPairGenDH", fnctLine, (char *)0)

    return (status);
}

static int SetObjectDHKeyGen (
   VoltKeyObject *obj,
   unsigned int primeSizeBits,
   VtDHParamInfo *paramInfo
   )
{
  int status;
  unsigned int bufferSize, pLen, qLen, gLen;
  unsigned char *buffer = (unsigned char *)0;
  VoltLibCtx *libCtx = (VoltLibCtx *)(obj->voltObject.libraryCtx);
  VoltDHKeyGenCtx *dhGenCtx;
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  do
  {
    /* Get the lengths from the params.
     */
    pLen = paramInfo->primeP.len;
    qLen = paramInfo->subprimeQ.len;
    gLen = paramInfo->baseG.len;

#if VOLT_BUILD == VOLT_BUILD_FIPS_SHARED
    /* If this is the FIPS build, there must be a subprimeQ.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_ASSOCIATED_INFO;
    if (qLen == 0)
      break;
#endif

    /* Allocate enough space for a DHKeyGenCtx. The buffers after the
     * struct will be byte arrays, so no need to worry about alignment.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_MEMORY;
    bufferSize = sizeof (VoltDHKeyGenCtx) + pLen + qLen + gLen;
    buffer = (unsigned char *)Z2Malloc (bufferSize, VOLT_MEMORY_SENSITIVE);
    if (buffer == (unsigned char *)0)
      break;
    Z2Memset (buffer, 0, bufferSize);

    /* Locate the context.
     */
    dhGenCtx = (VoltDHKeyGenCtx *)buffer;

    /* Populate the context.
     */
    dhGenCtx->mpCtx = (VtMpIntCtx)(obj->mpCtx);
    dhGenCtx->primeSizeBits = primeSizeBits;
    dhGenCtx->primeP.data = buffer + sizeof (VoltDHKeyGenCtx);
    if (qLen != 0)
      dhGenCtx->subprimeQ.data = dhGenCtx->primeP.data + pLen;
    dhGenCtx->baseG.data = dhGenCtx->primeP.data + pLen + qLen;

    /* Copy the params.
     */
    Z2Memcpy (dhGenCtx->primeP.data, paramInfo->primeP.data, pLen);
    dhGenCtx->primeP.len = pLen;
    if (qLen != 0)
    {
      Z2Memcpy (dhGenCtx->subprimeQ.data, paramInfo->subprimeQ.data, qLen);
      dhGenCtx->subprimeQ.len = qLen;
    }
    Z2Memcpy (dhGenCtx->baseG.data, paramInfo->baseG.data, gLen);
    dhGenCtx->baseG.len = gLen;

    obj->keyType = VOLT_KEY_ALG_DH | VOLT_KEY_TYPE_GEN_PAIR;
    obj->GenerateKey = DHGenerateKeyPair;
    obj->localGenerateCtx = (Pointer)dhGenCtx;
    obj->LocalGenerateCtxDestroy = VoltSimpleCtxDestroy;

    status = 0;

  } while (0);

  /* If everything worked, return 0.
   */
  if (status == 0)
    return (0);

  /* If something went wrong, destroy anything we created and indicate
   * that this object is not usable.
   */
  if (buffer != (unsigned char *)0)
    Z2Free (buffer);

  obj->keyType = 0;

  VOLT_LOG_ERROR_INFO (
    0, obj, status, 0, VT_ERROR_TYPE_PRIMARY,
    (char *)0, "SetObjectDHKeyGen", fnctLine, (char *)0)

  return (status);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人动漫在线一区| 欧美四级电影在线观看| 成人精品电影在线观看| 91在线观看高清| 在线观看亚洲精品| 欧美精品xxxxbbbb| 精品国产青草久久久久福利| 中文字幕一区在线观看| 亚洲一二三四区不卡| 看片网站欧美日韩| 粉嫩av一区二区三区| 色综合久久中文综合久久牛| 欧美一区二区在线观看| 欧美国产综合一区二区| 亚洲国产视频一区| 捆绑变态av一区二区三区| av在线综合网| 欧美精品亚洲二区| 国产情人综合久久777777| 亚洲一区二三区| 国产一区二区在线免费观看| 色94色欧美sute亚洲13| 日韩精品一区二| 亚洲女子a中天字幕| 美女看a上一区| 福利91精品一区二区三区| 正在播放亚洲一区| 亚洲婷婷综合色高清在线| 国产成人啪免费观看软件| 91国在线观看| 中文字幕免费不卡| 99久久99久久免费精品蜜臀| 色婷婷综合在线| 国产欧美日韩视频在线观看| 蜜臀久久久久久久| 91福利小视频| 爽爽淫人综合网网站| 亚洲黄色在线视频| 国产一区二区三区免费播放| 欧美色综合天天久久综合精品| 欧美精品一区二区三区蜜臀| 五月天婷婷综合| av电影天堂一区二区在线| 日韩午夜激情av| 亚洲韩国一区二区三区| 国产aⅴ综合色| 日韩女优电影在线观看| 亚洲成在线观看| 91免费视频观看| 日本一区免费视频| 极品少妇一区二区三区精品视频| 欧美亚洲一区三区| √…a在线天堂一区| 国产成人精品综合在线观看| 久久这里只有精品首页| 性做久久久久久免费观看| 91蝌蚪porny成人天涯| 久久日韩精品一区二区五区| 美国三级日本三级久久99| 欧美人xxxx| 亚洲成av人片在线观看| 欧洲一区二区三区免费视频| 亚洲三级理论片| 成人av网站免费观看| 国产拍揄自揄精品视频麻豆| 国产在线播放一区| 亚洲精品一区二区三区在线观看| 天天综合色天天综合| 欧美日韩三级视频| 夜夜夜精品看看| 色综合久久久久综合体桃花网| 国产精品女同一区二区三区| 国产成a人无v码亚洲福利| 久久久99久久| 国产精品456| 久久久一区二区三区| 国产一区二区三区蝌蚪| 日韩免费一区二区| 日韩专区中文字幕一区二区| 69堂国产成人免费视频| 日欧美一区二区| 日韩欧美专区在线| 欧美视频在线一区二区三区| 麻豆一区二区99久久久久| 亚洲成人高清在线| 国产精品久久久一本精品| 在线看国产日韩| 国产69精品久久777的优势| 国产盗摄一区二区三区| 欧美国产丝袜视频| 欧美日韩国产首页| 国产成人在线视频播放| 日本美女视频一区二区| 亚洲成a人v欧美综合天堂| 蜜桃免费网站一区二区三区| 欧美性视频一区二区三区| 亚洲成年人网站在线观看| 欧美日韩国产高清一区二区| 日韩高清电影一区| 久久综合成人精品亚洲另类欧美 | 国产精品1区2区| 国产日韩欧美不卡在线| 99精品国产视频| 亚洲成人一区二区| 欧美一二三在线| 国产馆精品极品| 亚洲人成在线播放网站岛国| 欧美日韩国产小视频| 极品少妇一区二区三区精品视频 | 成人黄页在线观看| 一区二区在线看| 欧美妇女性影城| 国产一区二区主播在线| 亚洲欧美日韩国产手机在线 | 久久精品国产免费| 国产女人18水真多18精品一级做| 色哦色哦哦色天天综合| 亚洲成av人片一区二区三区| 久久这里只有精品首页| 色综合一区二区| 日本亚洲最大的色成网站www| 国产片一区二区| 欧美精品日韩一区| 高清视频一区二区| 亚洲线精品一区二区三区八戒| 日韩精品在线看片z| 91尤物视频在线观看| 久色婷婷小香蕉久久| 最新日韩av在线| 日韩一级免费一区| 91丨porny丨最新| 久久国产精品区| 一区二区三区在线视频免费观看 | 国产精品夜夜爽| 一区二区三区日本| 2024国产精品视频| 91猫先生在线| 国产露脸91国语对白| 欧美美女一区二区在线观看| 26uuu久久天堂性欧美| 一区二区三区欧美亚洲| 91久久精品国产91性色tv| 日韩视频在线你懂得| 亚洲色图丝袜美腿| 蜜臀久久久久久久| 91免费在线视频观看| 国产人伦精品一区二区| 亚洲乱码一区二区三区在线观看| 蜜臀av亚洲一区中文字幕| 99这里只有精品| 欧美电视剧在线看免费| 一区二区久久久| 99精品久久免费看蜜臀剧情介绍| 日本不卡视频在线| 亚洲女与黑人做爰| 国产女主播一区| 精品久久久久一区| 91精品免费观看| 欧美亚日韩国产aⅴ精品中极品| av不卡一区二区三区| 国产精品一区不卡| 美国欧美日韩国产在线播放| 婷婷夜色潮精品综合在线| 一区二区三区四区亚洲| 中文字幕一区二区三区不卡| 国产亚洲欧美色| 2017欧美狠狠色| 欧美变态tickle挠乳网站| 欧美一区二区国产| 精品视频在线看| 在线一区二区三区四区五区| av福利精品导航| av高清不卡在线| 99精品久久久久久| 不卡一区二区中文字幕| 国产精品1区2区3区在线观看| 韩国欧美一区二区| 久久国产精品99久久人人澡| 久久成人久久鬼色| 奇米精品一区二区三区在线观看一| 视频一区视频二区在线观看| 午夜精品免费在线观看| 丝袜诱惑制服诱惑色一区在线观看| 一区二区三区免费在线观看| 一区二区三区四区蜜桃| 亚洲精品视频在线观看免费| 亚洲欧美另类综合偷拍| 日韩美女精品在线| 亚洲理论在线观看| 亚洲美女视频在线| 亚洲黄色性网站| 亚洲电影一级黄| 日韩高清在线不卡| 麻豆精品视频在线观看视频| 韩国精品主播一区二区在线观看| 国产一区美女在线| 成人黄色在线视频| 91在线观看视频| 欧美日韩成人综合| 欧美一区二区三区日韩|