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

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

?? ibecacheimpl.c

?? IBE是一種非對稱密碼技術
?? C
?? 第 1 頁 / 共 4 頁
字號:
    {
      if (indexT == 0)
        theMul = bbCtx->common->mulg;
      else if (indexT == 1)
        theMul = bbCtx->common->mulg1;
      else
        theMul = bbCtx->common->mulg3;

      zTableX = theMul->prex;
      zTableY = theMul->prey;

      for (index = 0; index < accelCount; ++index)
      {
        offset += PlaceBuffer (
          libCtx, zTableX[index], (unsigned char *)0, 0, primeSize,
          element + offset);
        offset += PlaceBuffer (
          libCtx, zTableY[index], (unsigned char *)0, 0, primeSize,
          element + offset);
      }
    }

    status = 0;

  } while (0);

  VoltDemolishBBIBEParams (libCtx, &theParams);

  VOLT_LOG_ERROR_INFO_COMPARE (
    status, 0, ctx, status, 0, errorType,
    (char *)0, "VoltBuildCacheElementBB", fnctLine, (char *)0)

  return (status);
}

static void PlaceIntegerBE (
   unsigned char *buffer,
   unsigned int value,
   unsigned int byteCount
   )
{
  int index;

  index = (int)(byteCount -1);
  do
  {
    buffer[index] = (unsigned char)value;
    index--;
    value >>= 8;
  } while (index >= 0);
}

static unsigned int GetIntegerBE (
   unsigned char *buffer,
   unsigned int integerSize
   )
{
  unsigned int index, value;

  value = 0;
  for (index = 0; index < integerSize; ++index)
  {
    value <<= 8;
    value += (unsigned int)(buffer[index]);
  }

  return (value);
}

static unsigned int PlaceBuffer (
   VoltLibCtx *libCtx,
   z_t *zValue,
   unsigned char *inputBuffer,
   unsigned int inputLen,
   unsigned int size,
   unsigned char *outputBuffer
   )
{
  unsigned int sign, outLen;
  VoltMpIntCtx *ctx;
  VoltMpInt *mpInt;

  if (zValue != (z_t *)0)
  {
    ctx = zValue->mpCtx;
    mpInt = (VoltMpInt *)(zValue->mpInt);
    ctx->MpIntToOctetString (mpInt, &sign, outputBuffer, size, &outLen);
    if (outLen == size)
      return (size);

    Z2Memmove (outputBuffer + (size - outLen), outputBuffer, outLen);
    Z2Memset (outputBuffer, 0, size - outLen);
    return (size);
  }

  Z2Memcpy (outputBuffer + (size - inputLen), inputBuffer, inputLen);
  if (inputLen == size)
    return (size);

  Z2Memset (outputBuffer, 0, size - inputLen);
  return (size);
}

static int BuildBfCtxFromCacheEntry (
   VoltLibCtx *libCtx,
   VoltMpIntCtx *mpCtx,
   unsigned int primeLen,
   unsigned int subprimeLen,
   unsigned int accelCount,
   unsigned char *element,
   bf_context_t **bfCtx
   )
{
  int status;
  unsigned char *prime, *subprime, *baseX, *baseY, *pubX, *pubY, *accelTable;
  bf_context_t *newBf = (bf_context_t *)0;
  VtBFType1IBECurveInfo curve;
  VtBFType1IBEPoint pubPoint;
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  do
  {
    /* Find the prime, subprime, etc.
     */
    prime = element + 14;
    subprime = prime + primeLen;
    baseX = subprime + subprimeLen;
    baseY = baseX + primeLen;
    pubX = baseY + primeLen;
    pubY = pubX + primeLen;
    accelTable = pubY + primeLen;

    curve.primeP.data = prime;
    curve.primeP.len = primeLen;
    curve.subprimeQ.data = subprime;
    curve.subprimeQ.len = subprimeLen;
    curve.basePointG.isInfinity = 0;
    curve.basePointG.xCoord.data = baseX;
    curve.basePointG.xCoord.len = primeLen;
    curve.basePointG.yCoord.data = baseY;
    curve.basePointG.yCoord.len = primeLen;
    pubPoint.isInfinity = 0;
    pubPoint.xCoord.data = pubX;
    pubPoint.xCoord.len = primeLen;
    pubPoint.yCoord.data = pubY;
    pubPoint.yCoord.len = primeLen;
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltGetBfCtxFromIBEParams (
      libCtx, (VtMpIntCtx)mpCtx, &curve, &pubPoint, accelCount, accelTable,
      &newBf);
    if (status != 0)
      break;

    *bfCtx = newBf;

  } while (0);

  if (status == 0)
    return (0);

  /* If there was an error, destroy anything we created.
   */
  VoltReleaseBfCtx (libCtx, &newBf);

  VOLT_LOG_ERROR_INFO_COMPARE (
    status, libCtx, 0, status, 0, errorType,
    (char *)0, "BuildBfCtx", fnctLine, (char *)0)

  return (status);
}

static int BuildBbCtxFromCacheEntry (
   VoltLibCtx *libCtx,
   VoltMpIntCtx *mpCtx,
   unsigned int primeLen,
   unsigned int subprimeLen,
   unsigned int accelCount,
   unsigned char *element,
   bb1_context_t **bbCtx
   )
{
  int status;
  unsigned char *prime, *subprime, *baseX, *baseY, *pubAlphaX, *pubAlphaY;
  unsigned char *pubBetaX, *pubBetaY, *pubGammaX, *pubGammaY;
  unsigned char *accelG, *accelG1, *accelG3;
  bb1_context_t *newBb = (bb1_context_t *)0;
  VtBBType1IBEParamInfo paramInfo;
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  do
  {
    /* Find the prime, subprime, etc.
     */
    prime = element + 14;
    subprime = prime + primeLen;
    baseX = subprime + subprimeLen;
    baseY = baseX + primeLen;
    pubAlphaX = baseY + primeLen;
    pubAlphaY = pubAlphaX + primeLen;
    pubBetaX = pubAlphaY + primeLen;
    pubBetaY = pubBetaX + primeLen;
    pubGammaX = pubBetaY + primeLen;
    pubGammaY = pubGammaX + primeLen;
    accelG = pubGammaY + primeLen;
    accelG1 = accelG + (accelCount * primeLen * 2);
    accelG3 = accelG1 + (accelCount * primeLen * 2);

    paramInfo.primeP.data = prime;
    paramInfo.primeP.len = primeLen;
    paramInfo.subprimeQ.data = subprime;
    paramInfo.subprimeQ.len = subprimeLen;
    paramInfo.basePointG.isInfinity = 0;
    paramInfo.basePointG.xCoord.data = baseX;
    paramInfo.basePointG.xCoord.len = primeLen;
    paramInfo.basePointG.yCoord.data = baseY;
    paramInfo.basePointG.yCoord.len = primeLen;
    paramInfo.pubPointAlpha.isInfinity = 0;
    paramInfo.pubPointAlpha.xCoord.data = pubAlphaX;
    paramInfo.pubPointAlpha.xCoord.len = primeLen;
    paramInfo.pubPointAlpha.yCoord.data = pubAlphaY;
    paramInfo.pubPointAlpha.yCoord.len = primeLen;
    paramInfo.pubPointBeta.isInfinity = 0;
    paramInfo.pubPointBeta.xCoord.data = pubBetaX;
    paramInfo.pubPointBeta.xCoord.len = primeLen;
    paramInfo.pubPointBeta.yCoord.data = pubBetaY;
    paramInfo.pubPointBeta.yCoord.len = primeLen;
    paramInfo.pubPointGamma.isInfinity = 0;
    paramInfo.pubPointGamma.xCoord.data = pubGammaX;
    paramInfo.pubPointGamma.xCoord.len = primeLen;
    paramInfo.pubPointGamma.yCoord.data = pubGammaY;
    paramInfo.pubPointGamma.yCoord.len = primeLen;

    /* This function will build the bbCtx and load it into the IBE
     * cache.
     */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltGetBbCtxFromIBEParams (
      libCtx, (VtMpIntCtx)mpCtx, &paramInfo,
      accelCount, accelG, accelG1, accelG3, &newBb);
    if (status != 0)
      break;

    *bbCtx = newBb;

  } while (0);

  if (status == 0)
    return (0);

  /* If there was an error, destroy anything we created.
   */
  VoltReleaseBbCtx (libCtx, &newBb);

  VOLT_LOG_ERROR_INFO_COMPARE (
    status, libCtx, 0, status, 0, errorType,
    (char *)0, "BuildBbCtxFromCacheEntry", fnctLine, (char *)0)

  return (status);
}

int VoltBuildIBECacheRefAlloc (
   VoltLibCtx *libCtx,
   VtBFType1IBEParamInfo *bfParams,
   VtBBType1IBEParamInfo *bbParams,
   unsigned char **reference,
   unsigned int *referenceLen
   )
{
  int status;
  unsigned int primeLen, bufLen, offset;
  unsigned char *refBuf;
  VtItem baseX, baseY, pubX, pubY;
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  *reference = (unsigned char *)0;
  *referenceLen = 0;
  baseX.data = (unsigned char *)0;
  baseX.len = 0;
  baseY.data = (unsigned char *)0;
  baseY.len = 0;
  pubX.data = (unsigned char *)0;
  pubX.len = 0;
  pubY.data = (unsigned char *)0;
  pubY.len = 0;

  /* The reference is the base point and public point. If some
   * coordinates are not available, just leave them blank (00 bytes).
   */
  do
  {
    status = 0;
    if (bfParams != (VtBFType1IBEParamInfo *)0)
    {
      primeLen = bfParams->curve.primeP.len;
      if (bfParams->curve.basePointG.xCoord.data != (unsigned char *)0)
        baseX = bfParams->curve.basePointG.xCoord;
      if (bfParams->curve.basePointG.yCoord.data == (unsigned char *)0)
      {
        if (bfParams->curve.basePointG.xCoord.data == (unsigned char *)0)
          break;
        baseX.data += 1;
        baseX.len -= 1;
      }
      else
      {
        baseY = bfParams->curve.basePointG.yCoord;
      }

      if (bfParams->pubPointP.xCoord.data != (unsigned char *)0)
        pubX = bfParams->pubPointP.xCoord;
      if (bfParams->pubPointP.yCoord.data == (unsigned char *)0)
      {
        if (bfParams->pubPointP.xCoord.data == (unsigned char *)0)
          break;
        pubX.data += 1;
        pubX.len -= 1;
      }
      else
      {
        pubY = bfParams->pubPointP.yCoord;
      }
    }
    else
    {
      VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NULL_ARG;
      if (bbParams == (VtBBType1IBEParamInfo *)0)
        break;

      primeLen = bbParams->primeP.len;
      if (bbParams->basePointG.xCoord.data != (unsigned char *)0)
        baseX = bbParams->basePointG.xCoord;
      if (bbParams->basePointG.xCoord.data == (unsigned char *)0)
      {
        if (bbParams->basePointG.xCoord.data == (unsigned char *)0)
          break;
        baseX.data += 1;
        baseX.len -= 1;
      }
      else
      {
        baseY = bbParams->basePointG.yCoord;
      }

      if (bbParams->pubPointAlpha.xCoord.data != (unsigned char *)0)
        pubX = bbParams->pubPointAlpha.xCoord;
      if (bbParams->pubPointAlpha.yCoord.data == (unsigned char *)0)
      {
        if (bbParams->pubPointAlpha.xCoord.data == (unsigned char *)0)
          break;
        pubX.data += 1;
        pubX.len -= 1;
      }
      else
      {
        pubY = bbParams->pubPointAlpha.yCoord;
      }
    }

    bufLen = primeLen * 4;
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_MEMORY;
    refBuf = (unsigned char *)Z2Malloc (bufLen, 0);
    if (refBuf == (unsigned char *)0)
      break;

    Z2Memset (refBuf, 0, bufLen);
    if (baseX.data != (unsigned char *)0)
      Z2Memcpy (refBuf, baseX.data, baseX.len);
    if (baseY.data != (unsigned char *)0)
      Z2Memcpy (refBuf + primeLen, baseY.data, baseY.len);
    offset = 2 * primeLen;
    if (pubX.data != (unsigned char *)0)
      Z2Memcpy (refBuf + offset, pubX.data, pubX.len);
    offset += primeLen;
    if (pubY.data != (unsigned char *)0)
      Z2Memcpy (refBuf + offset, pubY.data, pubY.len);

    *reference = refBuf;
    *referenceLen = bufLen;

    status = 0;

  } while (0);

  /* If no error, we're done.
   */
  if (status == 0)
    return (0);

  /* If there was an error, free any memory we would have returned but
   * didn't because of the error.
   */
  if (refBuf != (unsigned char *)0)
    Z2Free (refBuf);

  VOLT_LOG_ERROR_INFO (
    libCtx, 0, status, 0, errorType,
    (char *)0, "VoltBuildIBECacheRefAlloc", fnctLine, (char *)0)

  return (status);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜免费av| 免费观看久久久4p| 91成人国产精品| 蜜桃一区二区三区在线| 精品理论电影在线观看| 波多野结衣中文一区| 亚洲一区二区三区四区五区中文| 精品少妇一区二区三区免费观看| 欧美综合在线视频| bt7086福利一区国产| 国产精品一卡二| 麻豆精品国产传媒mv男同| 亚洲成人av一区二区三区| 亚洲国产精品激情在线观看| 日韩亚洲欧美成人一区| 56国语精品自产拍在线观看| 91成人网在线| 在线观看日韩高清av| 91蜜桃在线观看| 久久久一区二区| 5858s免费视频成人| 蜜桃视频一区二区| 国产成人在线视频免费播放| 国产成人免费在线视频| 一区二区三区在线观看视频| 中文字幕中文字幕一区二区 | 久久久久久一二三区| 国产精品国产自产拍高清av| 亚洲成a人片在线观看中文| 国产一区二区三区日韩| 亚洲黄色小视频| 亚洲综合色区另类av| 亚洲欧美日韩久久| 国产精品不卡一区二区三区| 久久久久久影视| 在线播放91灌醉迷j高跟美女 | 欧美日韩在线精品一区二区三区激情| 国产91高潮流白浆在线麻豆| av成人动漫在线观看| 色综合久久久久久久久| 99re8在线精品视频免费播放| 粉嫩欧美一区二区三区高清影视| 懂色av中文字幕一区二区三区| 另类小说视频一区二区| 日韩高清中文字幕一区| 最新国产成人在线观看| 国产精品午夜在线观看| 国产一区999| 国产揄拍国内精品对白| 最新日韩av在线| 亚洲欧洲性图库| 蜜臀av性久久久久av蜜臀妖精| 91美女视频网站| 中文字幕在线一区免费| www.日韩av| 中文字幕一区二| 日本精品裸体写真集在线观看| 国产99久久久国产精品免费看| 欧洲国内综合视频| 国产精品久久久久久久第一福利| 日韩精品亚洲一区| 欧美三级视频在线| 精品一区二区三区在线播放视频| 在线不卡中文字幕播放| 日本一区二区综合亚洲| 亚洲综合免费观看高清完整版在线| 亚洲精品乱码久久久久久黑人| 亚洲视频免费观看| 偷偷要91色婷婷| 盗摄精品av一区二区三区| 91国产免费观看| 国产欧美日韩激情| 成人一区二区三区视频| 亚洲欧洲日韩在线| caoporen国产精品视频| 亚洲女同一区二区| 欧美午夜电影一区| 成人黄色av网站在线| 久久夜色精品一区| 国产精品一品二品| 亚洲欧洲日产国产综合网| 91麻豆精品视频| 日韩精彩视频在线观看| 久久久久亚洲综合| 色综合久久久久网| 调教+趴+乳夹+国产+精品| 精品国产网站在线观看| 国产suv精品一区二区三区| 亚洲第一在线综合网站| 欧美一级搡bbbb搡bbbb| 日本一区二区高清| 久久激情五月激情| 欧美一区二区三区公司| 中文字幕在线一区二区三区| 成人av在线影院| 久久精品人人爽人人爽| a亚洲天堂av| 日韩影视精彩在线| 国产欧美日韩一区二区三区在线观看| 成人免费毛片aaaaa**| 久久久综合视频| 性做久久久久久久久| 国产一区二区三区四区五区美女| 精品国产91亚洲一区二区三区婷婷| 国产黄色91视频| 亚洲成人激情自拍| 欧美日韩亚洲国产综合| 国产精品一区二区你懂的| 亚洲精品ww久久久久久p站| 精品国精品国产| 色妞www精品视频| 国产成人精品免费网站| 日韩和欧美一区二区三区| 国产精品黄色在线观看| 久久久久国产精品厨房| 欧美xxxxx裸体时装秀| 在线播放一区二区三区| 欧美性一二三区| 91高清视频在线| 91免费视频网| 91捆绑美女网站| 91啪亚洲精品| 欧美中文字幕久久| 91视频在线看| 日本久久一区二区| 欧美性欧美巨大黑白大战| 在线看日本不卡| 欧美日韩mp4| 91精品欧美一区二区三区综合在| 欧美女孩性生活视频| 欧美日韩国产小视频在线观看| 欧美日韩亚洲综合在线 | 在线观看精品一区| 欧美性色欧美a在线播放| 色综合久久综合网97色综合| 99精品热视频| 在线播放/欧美激情| 日韩欧美国产精品| 欧美精彩视频一区二区三区| 国产精品久久久久影院| 伊人婷婷欧美激情| 蜜桃视频一区二区三区在线观看| 久久国产人妖系列| 成人av在线影院| 欧美一级理论性理论a| 国产欧美日韩三区| 亚洲国产精品尤物yw在线观看| 蜜桃传媒麻豆第一区在线观看| 亚洲另类中文字| 久久99久久久久| 一本到一区二区三区| 欧美大片在线观看一区二区| 日本一区二区三区视频视频| 亚洲综合色成人| 北条麻妃国产九九精品视频| 欧美日韩激情在线| 亚洲欧美日韩中文播放 | www..com久久爱| 在线看日本不卡| 精品久久一区二区| 最新热久久免费视频| 蜜桃久久精品一区二区| 精品视频1区2区3区| 国产精品福利av| 成人国产精品免费| 久久久久久免费毛片精品| 日韩黄色小视频| 欧美日韩一区不卡| 亚洲最新在线观看| av电影在线观看不卡| 国产精品私人影院| 国产高清不卡一区二区| 久久免费的精品国产v∧| 蜜桃av一区二区| 精品美女在线播放| 老色鬼精品视频在线观看播放| 欧美一级片在线看| 另类的小说在线视频另类成人小视频在线 | 国产在线精品视频| 精品成人一区二区| 国产91精品久久久久久久网曝门| 久久久亚洲高清| 丁香亚洲综合激情啪啪综合| 日本一区二区三区久久久久久久久不 | 成人一区二区三区中文字幕| 国产精品你懂的在线| 色综合久久综合网欧美综合网| 亚洲一区二区三区精品在线| 在线一区二区三区| 日本怡春院一区二区| 亚洲精品在线一区二区| 懂色av一区二区三区免费看| 中文字幕一区视频| 欧美高清视频一二三区 | 一色屋精品亚洲香蕉网站| 91国偷自产一区二区开放时间 | 国产福利一区二区| 亚洲免费视频成人| 精品欧美久久久| 一本一道久久a久久精品 |