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

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

?? sha256algid.c

?? IBE是一種非對稱密碼技術
?? C
字號:
/* Copyright 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 VtDerCoderSHA256 (
   VtDerCoderInfo *coderInfo,
   Pointer object,
   unsigned int flag
   )
{
  int status;
  unsigned int bufferSize;
  VoltAlgorithmObject **obj = (VoltAlgorithmObject **) 0;
  VoltDerCoderEncodeData *encodeData = &(coderInfo->info.encodeData);
  VoltDerCoderGetAlgData *getAlgData = &(coderInfo->info.getAlgData);
  VoltDerCoderDecodeData *decodeData = &(coderInfo->info.decodeData);
  Asn1AlgorithmId *algId;
  VoltLibCtx *libCtx;
  unsigned char sha256AlgID[VoltSHA256AlgIdBytesLen] = { VoltSHA256AlgIdBytes };
  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 SHA-256 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;

      /* The SHA-256 info should be NULL.
       */
      VOLT_SET_FNCT_LINE (fnctLine)
      if (encodeData->info != (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;

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

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

      /* There's only one possible SHA-256 alg ID.
       */
      libCtx = encodeData->libCtx;
      Z2Memcpy (encodeData->encoding, sha256AlgID, VoltSHA256AlgIdBytesLen);

      status = 0;
      break;

    case VOLT_DER_TYPE_DECODE_FLAG:
      /* If the flag is decode, set the object to perform SHA-256.
       */
      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 info should be a pointer to a
       * VoltDerCoderDecodeData struct, with the type
       * 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 SHA-256.
       */
      VOLT_SET_FNCT_LINE (fnctLine)
      algId = (Asn1AlgorithmId *)(decodeData->asn1Object);
      if (algId->oid->base.length != VoltSHA256OidBytesLen)
        break;

      libCtx = (VoltLibCtx *)((*obj)->voltObject.libraryCtx);

      VOLT_SET_FNCT_LINE (fnctLine)
      if (Z2Memcmp (
          algId->oid->base.data, sha256AlgID + VoltSHA256AlgIdOidOffset,
          VoltSHA256OidBytesLen) != 0)
        break;

      VtDestroyAlgorithmObject ((VtAlgorithmObject *)object);

      VOLT_SET_ERROR_TYPE (errorType, 0)
      VOLT_SET_FNCT_LINE (fnctLine)
      status = VtCreateAlgorithmObject (
        libCtx, VtAlgorithmImplSHA256, (Pointer)0,
        (VtAlgorithmObject *)object);

      break;

    case VOLT_DER_TYPE_GET_ALG_FLAG:
      /* If the flag is get alg, check the input to see if it's the
       * SHA-256 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;

      VOLT_SET_FNCT_LINE (fnctLine)
      status = VT_ERROR_UNKNOWN_BER;
      if (getAlgData->oidLen != VoltSHA256OidBytesLen)
        break;

      libCtx = getAlgData->libCtx;

      VOLT_SET_FNCT_LINE (fnctLine)
      if (Z2Memcmp (
        getAlgData->oid, sha256AlgID + VoltSHA256AlgIdOidOffset,
        VoltSHA256OidBytesLen) != 0)
        break;

      /* The OID matches, the algorithm is SHA-256.
       */
      *(getAlgData->algorithm) = VT_ALG_ID_SHA256;
      getAlgData->SymKeyParam = (VtKeyParam *)0;
      getAlgData->DigestImpl = VtAlgorithmImplSHA256;

      status = 0;
  }

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

  return (status);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲18色成人| 日韩成人伦理电影在线观看| 欧美一区二区三区在线| 色999日韩国产欧美一区二区| 成人h精品动漫一区二区三区| 国产成人综合在线播放| 国产精品一区二区免费不卡| 精一区二区三区| 国产一区二区福利视频| 激情国产一区二区| 国产一区二区三区日韩| 国产精品亚洲一区二区三区妖精 | 99精品久久99久久久久| 国产精品一区二区三区99| 国产成人午夜视频| av毛片久久久久**hd| av午夜精品一区二区三区| 色狠狠色狠狠综合| 欧美日韩高清一区| 欧美电影免费观看高清完整版在| 精品国产乱子伦一区| 久久久国产午夜精品| 亚洲午夜免费电影| 性欧美大战久久久久久久久| 琪琪一区二区三区| 国产成人精品综合在线观看 | 欧美日韩二区三区| 欧美日韩亚洲综合一区二区三区 | 国产91在线看| 在线观看亚洲精品| 日韩一区二区免费在线电影| 久久精品无码一区二区三区| 日韩一区日韩二区| 日本不卡一区二区三区高清视频| 韩国精品在线观看| 色婷婷av久久久久久久| 欧美一级黄色片| 中文字幕一区二区在线观看| 午夜欧美一区二区三区在线播放 | 中文字幕精品三区| 亚洲天堂网中文字| 日本v片在线高清不卡在线观看| 国产精品夜夜嗨| 欧美三级在线播放| 欧美国产一区在线| 婷婷久久综合九色国产成人| 国产不卡视频在线观看| 欧美裸体一区二区三区| 国产精品久久久久桃色tv| 日韩激情av在线| 色偷偷一区二区三区| 久久综合色综合88| 午夜激情久久久| 99视频一区二区| 国产亚洲精品超碰| 日本亚洲天堂网| 色综合久久久久| 欧美国产精品中文字幕| 捆绑紧缚一区二区三区视频| 欧美三级三级三级| 一区二区三区久久| 91视频精品在这里| 国产精品久久久久9999吃药| 久久疯狂做爰流白浆xx| 欧美日韩国产小视频| 亚洲精品少妇30p| av影院午夜一区| 国产精品国产精品国产专区不片| 国产在线观看免费一区| 欧美一区二区三区影视| 亚洲成人综合在线| 欧美日韩日日骚| 亚洲无线码一区二区三区| 色婷婷亚洲精品| 亚洲欧美偷拍卡通变态| 99久久久精品免费观看国产蜜| 国产调教视频一区| 国产91精品免费| 国产精品视频观看| 9色porny自拍视频一区二区| 欧美国产禁国产网站cc| 国产高清不卡二三区| 久久青草欧美一区二区三区| 国产毛片精品视频| 久久久久国产精品人| 成人一区二区在线观看| 国产精品美女久久久久久久久久久| 国产伦精品一区二区三区视频青涩 | 中文字幕免费一区| 成人白浆超碰人人人人| 亚洲欧洲制服丝袜| 欧美日韩精品综合在线| 日韩一区精品字幕| 欧美成人一区二区三区在线观看| 精品一区二区三区免费观看| 久久久久国色av免费看影院| av不卡在线播放| 亚洲图片自拍偷拍| 久久综合99re88久久爱| 成人高清免费在线播放| 亚洲一区二区三区在线播放| 9191久久久久久久久久久| 麻豆精品在线视频| 国产日韩高清在线| 在线亚洲+欧美+日本专区| 日韩高清不卡在线| 国产三级三级三级精品8ⅰ区| 99麻豆久久久国产精品免费优播| 一片黄亚洲嫩模| 日韩欧美视频一区| 91视频在线观看| 久久综合综合久久综合| 国产精品久久看| 日韩欧美中文字幕公布| www.欧美日韩国产在线| 蜜臀久久99精品久久久久久9| 国产欧美日产一区| 在线电影院国产精品| 处破女av一区二区| 肉色丝袜一区二区| 国产精品久久久久一区二区三区| 8x福利精品第一导航| 成人av免费在线观看| 日韩av不卡在线观看| 国产精品久久一卡二卡| 日韩无一区二区| 91小视频免费观看| 国产精品一区二区黑丝| 日韩精品电影在线观看| 亚洲码国产岛国毛片在线| 久久综合九色欧美综合狠狠| 欧美日韩国产另类不卡| www.在线成人| 国产成a人亚洲精| 久久福利视频一区二区| 视频一区国产视频| 亚洲影视在线播放| 国产精品国产自产拍高清av| 亚洲精品一区在线观看| 欧美福利电影网| 欧美在线免费观看亚洲| av一本久道久久综合久久鬼色| 国产精品中文字幕一区二区三区| 日韩精品国产精品| 蜜臀av一区二区在线免费观看| 亚洲精品日韩一| 亚洲免费av在线| 一区二区三区在线播放| 亚洲色图欧美偷拍| 国产精品午夜在线| 亚洲国产精品成人综合色在线婷婷| 日韩欧美在线不卡| 欧美成人免费网站| 日韩精品一区二| 久久人人超碰精品| 26uuu国产日韩综合| 日韩区在线观看| 欧美mv日韩mv| 国产三级一区二区| 国产精品久久久久久久久免费相片 | 欧美激情一区二区| 国产精品免费视频一区| 国产欧美视频一区二区| 国产精品毛片久久久久久久| 国产精品久久久久久久久久免费看 | 亚洲一区二三区| 亚洲一区二区三区视频在线播放| 亚洲美女区一区| 天堂久久一区二区三区| 另类小说综合欧美亚洲| 国产老妇另类xxxxx| 不卡电影一区二区三区| 91麻豆免费观看| 欧美精品在线视频| 精品国产1区二区| 中文字幕中文字幕在线一区 | 亚洲高清免费在线| 久久精品国内一区二区三区| 国模冰冰炮一区二区| 成人免费视频网站在线观看| 一本久久综合亚洲鲁鲁五月天| 色婷婷综合久久久中文一区二区| 欧美日本高清视频在线观看| 日韩欧美亚洲国产另类| 国产精品精品国产色婷婷| 亚洲国产精品自拍| 国产 日韩 欧美大片| 欧美日韩和欧美的一区二区| 久久综合色一综合色88| 日韩一区日韩二区| 看片网站欧美日韩| 色噜噜狠狠一区二区三区果冻| 欧美刺激午夜性久久久久久久 | 欧美一级日韩不卡播放免费| 久久久久久免费| 无码av免费一区二区三区试看| 国产成人啪免费观看软件| 欧美日韩国产色站一区二区三区| 久久婷婷综合激情| 亚洲不卡在线观看|