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

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

?? sm2params.c

?? IBE是一種非對稱密碼技術
?? C
字號:
/* Copyright 2003-2006, Voltage Security, all rights reserved.
 */
#include "vibe.h"
#include "environment.h"
#include "base.h"
#include "libctx.h"
#include "securemail.h"
#include "stringutil.h"
#include "vtassert.h"
#include "errorctx.h"

int VtSecureMailParamCharacterSet(
  VtSecureMailObject secureMailObj,
  Pointer info,
  unsigned int flag
)
{
  int status = 0;
  VtLibCtx libCtx = (VtLibCtx)0;
  VoltSecureMailWriteCtx* writeCtx;
  VoltSecureMail2ReadCtx* readCtx;
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  VOLT_DECLARE_ERROR_TYPE(errorType)
  
  VOLT_SET_ERROR_TYPE(errorType, VT_ERROR_TYPE_PRIMARY)

  do
  {
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
    if ((secureMailObj == (VtSecureMailObject)0) ||
        (secureMailObj->formatType != VOLT_MESSAGE_FORMAT_SECURE_MAIL_2))
      break;
    
    libCtx = secureMailObj->voltObject.libraryCtx;
    VT_ASSERT(libCtx != (VtLibCtx)0);

    if (flag == VOLT_SECURE_MAIL_SET_TYPE_FLAG)
    {
      writeCtx = (VoltSecureMailWriteCtx*) secureMailObj->localCtx;
      VT_ASSERT(writeCtx != (VoltSecureMailWriteCtx*)0);
      
      /* The SecureMail object must be set to write. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
      if (secureMailObj->state != VOLT_SECURE_MAIL_STATE_WRITE_SET)
        break;

      /* The info must be a UTF-8 string. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_ASSOCIATED_INFO;
      if (info == (Pointer)0)
        break;

      /* Free up existing string */
      if (writeCtx->characterSet != (unsigned char*)0);
      {
        Z2Free(writeCtx->characterSet);
        writeCtx->characterSet = (unsigned char*)0;
      }
      
      /* Copy to writeCtx */
      VOLT_SET_FNCT_LINE(fnctLine)
      VOLT_SET_ERROR_TYPE(errorType, 0)
      status = Strdup(info, (char**)&writeCtx->characterSet, libCtx);
    }
    else if (flag == VOLT_SECURE_MAIL_GET_TYPE_FLAG)
    {
      /* If getting, the SecureMail object must be set to read. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
      if ((secureMailObj->state & VOLT_SECURE_MAIL_STATE_READ) == 0)
        break;
      
      readCtx = (VoltSecureMail2ReadCtx*) secureMailObj->localCtx;
      VT_ASSERT(readCtx != (VoltSecureMail2ReadCtx*)0);
      
      *(Pointer*)info = readCtx->characterSet;
      
      status = 0;
    }
    else
    {
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_TYPE;
    }
  } while (0);

  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, errorType,
    fnctLine, "VtSecureMailParamCharacterSet", (unsigned char*)0)

  return status;
}

int VtSecureMailParamOriginalCharacterSet(
  VtSecureMailObject secureMailObj,
  Pointer info,
  unsigned int flag
)
{
  int status = 0;
  VtLibCtx libCtx = (VtLibCtx)0;
  VoltSecureMailWriteCtx* writeCtx;
  VoltSecureMail2ReadCtx* readCtx;
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  VOLT_DECLARE_ERROR_TYPE(errorType)
  
  VOLT_SET_ERROR_TYPE(errorType, VT_ERROR_TYPE_PRIMARY)

  do
  {
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
    if ((secureMailObj == (VtSecureMailObject)0) ||
        (secureMailObj->formatType != VOLT_MESSAGE_FORMAT_SECURE_MAIL_2))
      break;
    
    libCtx = secureMailObj->voltObject.libraryCtx;
    VT_ASSERT(libCtx != (VtLibCtx)0);

    if (flag == VOLT_SECURE_MAIL_SET_TYPE_FLAG)
    {
      writeCtx = (VoltSecureMailWriteCtx*) secureMailObj->localCtx;
      VT_ASSERT(writeCtx != (VoltSecureMailWriteCtx*)0);
      
      /* The SecureMail object must be set to write. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
      if (secureMailObj->state != VOLT_SECURE_MAIL_STATE_WRITE_SET)
        break;

      /* The info must be a UTF-8 string. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_ASSOCIATED_INFO;
      if (info == (Pointer)0)
        break;

      /* Free up existing string */
      if (writeCtx->originalCharacterSet != (unsigned char*)0);
      {
        Z2Free(writeCtx->originalCharacterSet);
        writeCtx->originalCharacterSet = (unsigned char*)0;
      }
      
      /* Copy to writeCtx */
      VOLT_SET_FNCT_LINE(fnctLine)
      VOLT_SET_ERROR_TYPE(errorType, 0)
      status = Strdup(info, (char**)&writeCtx->originalCharacterSet, libCtx);
    }
    else if (flag == VOLT_SECURE_MAIL_GET_TYPE_FLAG)
    {
      /* If getting, the SecureMail object must be set to read. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
      if ((secureMailObj->state & VOLT_SECURE_MAIL_STATE_READ) == 0)
        break;
      
      readCtx = (VoltSecureMail2ReadCtx*) secureMailObj->localCtx;
      VT_ASSERT(readCtx != (VoltSecureMail2ReadCtx*)0);
      
      *(Pointer*)info = readCtx->originalCharacterSet;
      
      status = 0;
    }
    else
    {
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_TYPE;
    }
  } while (0);

  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, errorType,
    fnctLine, "VtSecureMailParamOriginalCharacterSet", (unsigned char*)0)

  return status;
}

int VtSecureMailParamTemplateCharset(
  VtSecureMailObject secureMailObj,
  Pointer info,
  unsigned int flag
)
{
  int status = 0;
  VtLibCtx libCtx = (VtLibCtx)0;
  VoltSecureMailWriteCtx* writeCtx;
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  VOLT_DECLARE_ERROR_TYPE(errorType)
  
  VOLT_SET_ERROR_TYPE(errorType, VT_ERROR_TYPE_PRIMARY)

  do
  {
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
    if ((secureMailObj == (VtSecureMailObject)0) ||
        (secureMailObj->formatType != VOLT_MESSAGE_FORMAT_SECURE_MAIL_2))
      break;
    
    libCtx = secureMailObj->voltObject.libraryCtx;
    VT_ASSERT(libCtx != (VtLibCtx)0);

    if (flag == VOLT_SECURE_MAIL_SET_TYPE_FLAG)
    {
      writeCtx = (VoltSecureMailWriteCtx*) secureMailObj->localCtx;
      VT_ASSERT(writeCtx != (VoltSecureMailWriteCtx*)0);
      
      /* The SecureMail object must be set to write. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
      if (secureMailObj->state != VOLT_SECURE_MAIL_STATE_WRITE_SET)
        break;

      /* The info must be a UTF-8 string. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_ASSOCIATED_INFO;
      if (info == (Pointer)0)
        break;

      /* Free up existing string */
      if (writeCtx->templateCharset != (unsigned char*)0);
      {
        Z2Free(writeCtx->templateCharset);
        writeCtx->templateCharset = (unsigned char*)0;
      }
      
      /* Copy to writeCtx */
      VOLT_SET_FNCT_LINE(fnctLine)
      VOLT_SET_ERROR_TYPE(errorType, 0)
      status = Strdup(info, (char**)&writeCtx->templateCharset, libCtx);
    }
    else
    {
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_GET;
    }
  } while (0);

  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, errorType,
    fnctLine, "VtSecureMailParamTemplateCharset", (unsigned char*)0)

  return status;
}

int VtSecureMailParamMessageFormat(
  VtSecureMailObject secureMailObj,
  Pointer info,
  unsigned int flag
)
{
  int status = 0;
  VtLibCtx libCtx = (VtLibCtx)0;
  VoltSecureMailWriteCtx* writeCtx;
  unsigned int messageFormat;
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  VOLT_DECLARE_ERROR_TYPE(errorType)
  
  VOLT_SET_ERROR_TYPE(errorType, VT_ERROR_TYPE_PRIMARY)

  do
  {
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
    if ((secureMailObj == (VtSecureMailObject)0) ||
        (secureMailObj->formatType != VOLT_MESSAGE_FORMAT_SECURE_MAIL_2))
      break;
    
    libCtx = secureMailObj->voltObject.libraryCtx;
    VT_ASSERT(libCtx != (VtLibCtx)0);

    if (flag == VOLT_SECURE_MAIL_SET_TYPE_FLAG)
    {
      writeCtx = (VoltSecureMailWriteCtx*) secureMailObj->localCtx;
      VT_ASSERT(writeCtx != (VoltSecureMailWriteCtx*)0);
      
      /* The SecureMail object must be set to write. */
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_SECURE_MAIL_OBJ;
      if (secureMailObj->state != VOLT_SECURE_MAIL_STATE_WRITE_SET)
        break;

      status = VT_ERROR_INVALID_ASSOCIATED_INFO;
      
      /* The info must be a pointer to an unsigned int. */
      VOLT_SET_FNCT_LINE(fnctLine)
      if (info == (Pointer)0)
        break;

      messageFormat = *(unsigned int*)info;
      
      /* Check that it's one of the valid values for the format */
      VOLT_SET_FNCT_LINE(fnctLine)
      if ((messageFormat != VT_MESSAGE_FORMAT_SECURE_MAIL_PLAIN) &&
          (messageFormat != VT_MESSAGE_FORMAT_SECURE_MAIL_HTML))
      {
        break;
      }
      
      writeCtx->messageFormat = messageFormat;
      status = 0;
    }
    else
    {
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_INVALID_GET;
    }
  } while (0);

  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, errorType,
    fnctLine, "VtSecureMailParamMessageFormat", (unsigned char*)0)

  return status;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美视频一区| 欧美蜜桃一区二区三区| 国产精品无遮挡| 成人av在线播放网址| 国产99精品国产| 污片在线观看一区二区| 日韩av中文在线观看| 欧美少妇xxx| 日韩国产在线一| 欧美va在线播放| 丁香网亚洲国际| 亚洲激情欧美激情| 日韩一级视频免费观看在线| 国产一区二区三区蝌蚪| 国产精品素人一区二区| 欧美午夜宅男影院| 激情综合网天天干| 亚洲欧美偷拍卡通变态| 制服丝袜国产精品| 暴力调教一区二区三区| 午夜精品一区在线观看| 久久久久国产一区二区三区四区 | 色综合久久久久综合体| 亚洲高清免费视频| 精品裸体舞一区二区三区| 99精品视频一区| 日韩精品亚洲一区二区三区免费| 久久日一线二线三线suv| a美女胸又www黄视频久久| 五月天婷婷综合| 中文字幕久久午夜不卡| 666欧美在线视频| 成人黄色免费短视频| 午夜影院久久久| 国产精品另类一区| 欧美一激情一区二区三区| 99精品在线免费| 精品一区二区在线视频| 一区二区三区久久| 国产日韩欧美高清| 日韩一区二区在线看| 色婷婷久久99综合精品jk白丝| 久久精品国产在热久久| 一卡二卡欧美日韩| 日本一区二区成人在线| 日韩一二三区视频| 欧美色图激情小说| aaa亚洲精品| 国产精品一区二区在线观看网站| 午夜婷婷国产麻豆精品| 亚洲欧美日韩综合aⅴ视频| 欧美videossexotv100| 欧美美女一区二区| 91久久线看在观草草青青| 国产·精品毛片| 激情成人综合网| 日韩av网站免费在线| 亚洲激情男女视频| 日韩毛片视频在线看| 国产欧美一区二区精品性| 欧美大片在线观看| 8v天堂国产在线一区二区| 欧美亚洲国产bt| 色婷婷精品久久二区二区蜜臀av| av不卡在线观看| www..com久久爱| av影院午夜一区| www.亚洲免费av| 99r国产精品| 91亚洲大成网污www| av一区二区三区黑人| 99久久婷婷国产综合精品电影| 国产91高潮流白浆在线麻豆| 国产精品小仙女| 成人永久免费视频| 岛国av在线一区| jiyouzz国产精品久久| a美女胸又www黄视频久久| 丁香网亚洲国际| 91视频一区二区| 色av一区二区| 3d动漫精品啪啪一区二区竹菊| 欧美日韩在线免费视频| 欧美喷水一区二区| 91精品国产综合久久久蜜臀粉嫩 | 欧美在线小视频| 欧美日韩国产精选| 欧美一级艳片视频免费观看| 日韩三级在线观看| 久久免费视频一区| 国产精品蜜臀av| 一区二区免费在线| 五月婷婷激情综合| 久久激情五月激情| 成人一区在线观看| 色猫猫国产区一区二在线视频| 欧美中文字幕亚洲一区二区va在线| 欧美日本国产视频| 精品久久一区二区三区| 中文一区二区在线观看| 亚洲午夜久久久| 另类小说图片综合网| 成人性视频网站| 欧美性大战久久久久久久蜜臀| 欧美麻豆精品久久久久久| 26uuu精品一区二区在线观看| 中文字幕第一区第二区| 亚洲综合清纯丝袜自拍| 国产在线精品免费av| 91看片淫黄大片一级在线观看| 欧美另类变人与禽xxxxx| 久久久久久久性| 亚洲一区免费观看| 国内精品视频666| 欧美在线看片a免费观看| 欧美sm美女调教| 亚洲免费av高清| 国产在线一区二区| 在线观看三级视频欧美| 久久久www成人免费无遮挡大片 | 欧美少妇一区二区| 久久免费看少妇高潮| 亚洲一区在线观看网站| 国产在线看一区| 欧美色精品在线视频| 日本一区二区三区久久久久久久久不 | 日韩精品一区二区在线观看| 中文子幕无线码一区tr| 蜜桃久久av一区| 在线日韩一区二区| 欧美国产一区视频在线观看| 天堂在线一区二区| 99久久国产免费看| 久久香蕉国产线看观看99| 亚洲国产精品嫩草影院| caoporn国产精品| 精品少妇一区二区三区视频免付费| 亚洲精品五月天| 不卡欧美aaaaa| 久久麻豆一区二区| 另类专区欧美蜜桃臀第一页| 欧美日韩综合一区| 亚洲欧洲中文日韩久久av乱码| 精东粉嫩av免费一区二区三区| 欧美日韩精品一区二区三区| 国产精品久久久久三级| 国产呦萝稀缺另类资源| 日韩三级精品电影久久久| 亚洲精品欧美在线| 91小宝寻花一区二区三区| 欧美激情一区在线| 国产精品一区二区你懂的| 欧美一区二区三区视频| 午夜欧美2019年伦理| 欧美三级视频在线观看| 亚洲精品乱码久久久久久久久 | 中文字幕欧美国产| 国模娜娜一区二区三区| 久久综合色婷婷| 青青草97国产精品免费观看 | 久久久久久久一区| 国产精品一区二区视频| 久久综合视频网| 国产成人午夜高潮毛片| 国产欧美综合在线观看第十页| 国产老妇另类xxxxx| 久久人人爽人人爽| 成人性生交大片| 国产精品国产a级| 91老师片黄在线观看| 亚洲精品高清视频在线观看| 日本福利一区二区| 亚洲网友自拍偷拍| 91麻豆精品国产91久久久久 | 99久久精品国产一区二区三区| 国产精品色在线| 99r精品视频| 香蕉乱码成人久久天堂爱免费| 欧美人牲a欧美精品| 老司机免费视频一区二区| 精品国一区二区三区| 国产精品中文有码| 国产精品久久久久久久久搜平片| 国产成人免费视频精品含羞草妖精| 国产精品免费av| 欧美三级视频在线观看| 水蜜桃久久夜色精品一区的特点| 日韩视频一区二区| 成人久久久精品乱码一区二区三区| 欧美韩国日本一区| 欧美三级三级三级爽爽爽| 捆绑调教一区二区三区| 欧美激情在线免费观看| 91官网在线免费观看| 免费在线观看一区| 国产女人18毛片水真多成人如厕| 91视频免费播放| 老司机午夜精品| 亚洲乱码中文字幕| 日韩一区二区三区精品视频|