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

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

?? ibealgid.c

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

int VtDerCoderBFType1IBE (
   VtDerCoderInfo *coderInfo,
   Pointer object,
   unsigned int flag
   )
{
  int status;
  unsigned int bufferSize;
  VoltLibCtx *libCtx;
  VoltAlgorithmObject **obj = (VoltAlgorithmObject **)0;
  VoltDerCoderEncodeData *encodeData = &(coderInfo->info.encodeData);
  VoltDerCoderGetAlgData *getAlgData = &(coderInfo->info.getAlgData);
  VoltDerCoderDecodeData *decodeData = &(coderInfo->info.decodeData);
  Asn1AlgorithmId *algId;
  unsigned char ibeEncAlgID[VoltIBET1EncAlgIdBytesLen] =
    { VoltIBET1EncAlgIdBytes };
  unsigned char ibeClientEncOID[VoltIBET1ClientEncOidBytesLen] =
    { VoltIBET1ClientEncOidBytes };
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)
  
  switch (flag)
  {
    default:
      VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_INVALID_TYPE;
      break;

    case VOLT_DER_TYPE_ENCODE_FLAG:
      /* If the flag is ENCODE, return the IBE Enc algID.
       */

      /* Check the args.
       */
      VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NON_NULL_ARG;
      if (object != (Pointer)0)
        break;

      /* We need a place to drop the length.
       */
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NULL_ARG;
      if (encodeData->encodingLen == (unsigned int *)0)
        break;

      /* The IBE info should be NULL.
       */
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NON_NULL_ARG;
      if (encodeData->info != (Pointer)0)
        break;

      bufferSize = encodeData->bufferSize;
      if (encodeData->encoding == (unsigned char *)0)
        bufferSize = 0;

      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_BUFFER_TOO_SMALL;
      *(encodeData->encodingLen) = VoltIBET1EncAlgIdBytesLen;
      if (bufferSize < VoltIBET1EncAlgIdBytesLen)
        break;

      /* There's only one possible IBE alg ID.
       */
      libCtx = encodeData->libCtx;
      Z2Memcpy (encodeData->encoding, ibeEncAlgID, VoltIBET1EncAlgIdBytesLen);
      status = 0;
      break;

    case VOLT_DER_TYPE_DECODE_FLAG:
      /* If the flag is decode, set the object to perform IBE encryption
       */
      VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NULL_ARG;
      if (object == (Pointer)0)
        break;
      obj = (VoltAlgorithmObject **)object;

      /* Check the args, the type should be VOLT_DER_TYPE_ALG_ID_FLAG.
       */
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_UNKNOWN_BER;
      if (decodeData->type != VOLT_DER_TYPE_ALG_ID_FLAG)
        break;

      /* Make sure this is the algId for IBE encryption
       */
      algId = (Asn1AlgorithmId *)(decodeData->asn1Object);
      libCtx = (VoltLibCtx *)((*obj)->voltObject.libraryCtx);

      if (algId->oid->base.length == VoltIBET1EncOidBytesLen)
      {
        VOLT_SET_FNCT_LINE (fnctLine)
        if (Z2Memcmp (algId->oid->base.data, 
          ibeEncAlgID + VoltIBET1EncAlgIdOidOffset,
          VoltIBET1EncOidBytesLen) != 0)
          break;
      }
      else 
      {
        if (algId->oid->base.length == VoltIBET1ClientEncOidBytesLen)
        {
          VOLT_SET_FNCT_LINE (fnctLine)
          if (Z2Memcmp (algId->oid->base.data, 
            ibeClientEncOID ,
            VoltIBET1ClientEncOidBytesLen) != 0)
            break;
        }
        else
        {
          VOLT_SET_FNCT_LINE (fnctLine)
          break;
        }
      }

      VtDestroyAlgorithmObject ((VtAlgorithmObject *)object);

      VOLT_SET_ERROR_TYPE (errorType, 0)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VtCreateAlgorithmObject (
        libCtx, VtAlgorithmImplBFType1IBE, (Pointer)0,
        (VtAlgorithmObject *)object);
      if (status != 0)
        break;
      
      break;

    case VOLT_DER_TYPE_GET_ALG_FLAG:
      /* If the flag is get alg, check the input to see if it's the
       * IBE encryption OID.
       */

      /* Check the args.
       */
      VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NON_NULL_ARG;
      if (object != (Pointer)0)
        break;

      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_NULL_ARG;
      if ( (getAlgData->algorithm == (unsigned int *)0) ||
           (getAlgData->oid == (unsigned char *)0) )
        break;

      /* Is this the IBE encryption OID (either true or client)?
       */
      status = VT_ERROR_UNKNOWN_BER;
      libCtx = getAlgData->libCtx;
      if (getAlgData->oidLen == VoltIBET1EncOidBytesLen)
      {
        VOLT_SET_FNCT_LINE (fnctLine)
        if (Z2Memcmp (
          getAlgData->oid, ibeEncAlgID + VoltIBET1EncAlgIdOidOffset,
          VoltIBET1EncOidBytesLen) != 0)
          break;
      }
      else if (getAlgData->oidLen == VoltIBET1ClientEncOidBytesLen)
      {
        VOLT_SET_FNCT_LINE (fnctLine)
        if (Z2Memcmp (
          getAlgData->oid, ibeClientEncOID,
          VoltIBET1ClientEncOidBytesLen) != 0)
          break;
      }
      else
      {
        /* If we reach this point, the length was not recognized.
         */
        VOLT_SET_FNCT_LINE (fnctLine)
        break;
      }

      /* The OID matches, the algorithm is IBE encryption.
       */
      *(getAlgData->algorithm) = VT_ALG_ID_BF_TYPE1_IBE_ENCRYPT;
      getAlgData->SymKeyParam = (VtKeyParam *)0;
      getAlgData->DigestImpl = (VtAlgorithmImpl *)0;

      status = 0;
  }

  VOLT_LOG_ERROR_INFO_COMPARE (
    status, 0, object, status, 0, errorType,
    (char *)0, "VtDerCoderBFType1IBE", fnctLine, (char *)0)

  return (status);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
51精品视频一区二区三区| 丰满放荡岳乱妇91ww| 色婷婷av久久久久久久| 中文字幕一区二区三区不卡在线| 99久久伊人精品| 洋洋av久久久久久久一区| 91精品国产aⅴ一区二区| 蜜桃精品视频在线| 国产精品污www在线观看| 色综合夜色一区| 视频一区视频二区在线观看| 精品日韩成人av| 国产aⅴ精品一区二区三区色成熟| 国产精品亲子乱子伦xxxx裸| 91久久久免费一区二区| 日本不卡视频一二三区| 久久嫩草精品久久久精品| www.日韩精品| 日韩福利视频导航| 中文字幕不卡一区| 欧美色图片你懂的| 国产在线精品一区二区三区不卡| 综合av第一页| 欧美一级xxx| 成人黄色免费短视频| 午夜精品福利视频网站| 国产欧美综合在线观看第十页| 在线欧美日韩国产| 国产综合久久久久久久久久久久| 国产精品久久毛片av大全日韩| 欧美午夜在线观看| 国产精品69久久久久水密桃| 亚洲国产精品久久一线不卡| 久久久久久久久久看片| 欧美日韩三级视频| 国产**成人网毛片九色 | 久久久久88色偷偷免费| 91一区在线观看| 久久99精品视频| 亚洲综合一区二区三区| 久久嫩草精品久久久精品| 欧美日韩视频在线一区二区| 成人av网在线| 久久国产免费看| 亚洲6080在线| 亚洲三级久久久| 欧美经典三级视频一区二区三区| 欧美精品乱人伦久久久久久| 91麻豆.com| 懂色av一区二区在线播放| 麻豆精品一区二区三区| 一区二区三区不卡在线观看| 亚洲欧洲av另类| 久久精品人人爽人人爽| 日韩美女一区二区三区四区| 欧美色图免费看| 色婷婷综合在线| 成人黄色国产精品网站大全在线免费观看| 肉丝袜脚交视频一区二区| 亚洲欧洲av在线| 国产精品久久久久久久久快鸭| 精品久久久久久久久久久院品网| 555夜色666亚洲国产免| 欧美区一区二区三区| 欧美亚洲另类激情小说| 色悠悠久久综合| 99国产一区二区三精品乱码| 国产成人夜色高潮福利影视| 麻豆精品一区二区综合av| 日日夜夜精品视频天天综合网| 亚洲一二三区在线观看| 亚洲国产cao| 日韩专区欧美专区| 亚洲成人精品在线观看| 手机精品视频在线观看| 天堂精品中文字幕在线| 亚洲成精国产精品女| 亚洲午夜激情av| 亚洲电影欧美电影有声小说| 尤物在线观看一区| 亚洲综合成人在线视频| 午夜精品久久一牛影视| 日韩高清不卡一区| 久久国产精品露脸对白| 久久99在线观看| 国产一区二区0| 成人成人成人在线视频| 99re这里只有精品首页| 91久久精品午夜一区二区| 欧美性受极品xxxx喷水| 欧美精品vⅰdeose4hd| 日韩欧美自拍偷拍| 国产亚洲成年网址在线观看| 国产精品色在线| 亚洲黄色尤物视频| 日本在线不卡视频| 国产精品一区二区免费不卡 | 欧美日韩一区二区在线观看 | 亚洲午夜久久久久久久久电影网| 午夜精品在线看| 精久久久久久久久久久| 国产精品一二三四| 99麻豆久久久国产精品免费 | 蜜桃视频一区二区三区在线观看| 免费高清在线一区| 成人黄色电影在线| 欧美三级电影在线看| 日韩亚洲欧美在线观看| 欧美国产97人人爽人人喊| 亚洲曰韩产成在线| 麻豆成人久久精品二区三区红| 懂色av一区二区夜夜嗨| 欧美日韩一级黄| 国产亚洲精品久| 亚洲一区二区高清| 国产精品中文字幕日韩精品 | 麻豆国产精品官网| 99久久精品免费看| 欧美一区三区四区| 国产精品久久久久桃色tv| 日韩中文字幕91| 不卡电影一区二区三区| 欧美另类高清zo欧美| 国产午夜亚洲精品羞羞网站| 五月开心婷婷久久| 成人免费视频caoporn| 欧美另类高清zo欧美| 中文字幕一区二区在线播放| 免费人成黄页网站在线一区二区| 成人高清视频免费观看| 欧美大片一区二区三区| 亚洲欧美一区二区三区极速播放 | 久久综合九色综合欧美亚洲| 亚洲男同性恋视频| 国产精品一区二区视频| 777奇米成人网| 一区二区三区精品在线观看| 国产成人一区二区精品非洲| 日韩一区二区在线观看视频| 亚洲一区二区三区四区中文字幕 | 成人精品视频一区二区三区| 日韩一级视频免费观看在线| 亚洲一区二区三区国产| 9久草视频在线视频精品| 26uuu色噜噜精品一区二区| 亚洲国产成人91porn| 日本韩国视频一区二区| 国产精品国产精品国产专区不片| 久久精品国产精品青草| 制服.丝袜.亚洲.中文.综合| 一区二区视频在线| 94-欧美-setu| 最好看的中文字幕久久| 成人高清伦理免费影院在线观看| 久久久一区二区三区捆绑**| 麻豆极品一区二区三区| 91精品欧美久久久久久动漫 | 日本久久一区二区三区| 亚洲图片欧美激情| 99久久久久免费精品国产| 欧美国产禁国产网站cc| 国产91精品一区二区麻豆亚洲| 久久久噜噜噜久久人人看| 国产一区二区三区蝌蚪| 精品捆绑美女sm三区| 黄色日韩网站视频| 精品区一区二区| 韩国女主播成人在线观看| 日韩免费看的电影| 久久99久久精品欧美| 欧美电影免费观看高清完整版在线观看| 视频一区视频二区中文字幕| 欧美一区二区三区不卡| 美女一区二区视频| 精品国产乱码久久久久久老虎| 国产精品自拍一区| 国产精品理论片在线观看| 99免费精品在线观看| 亚洲黄网站在线观看| 欧美日韩亚洲另类| 青青青爽久久午夜综合久久午夜| 日韩三级在线观看| 国产成人啪免费观看软件| 国产精品你懂的在线欣赏| 91在线精品秘密一区二区| 亚洲综合一区在线| 日韩一区二区在线看| 国产激情视频一区二区三区欧美 | 99精品国产一区二区三区不卡 | 日韩黄色一级片| 久久精品这里都是精品| 91在线无精精品入口| 亚洲成人在线网站| 欧美成人一区二区三区| 成人美女视频在线看| 亚洲第一久久影院| 精品国产乱码久久久久久久| 99久久伊人久久99| 亚洲h动漫在线| 国产亚洲短视频|