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

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

?? sm2write.c

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

#define VOLT_SECURE_MAIL_BASE_64_LINE_LENGTH     64

static int VoltSecureMail2InitMessageAttributes(
  VtSecureMailObject secureMailObj,
  VtDataNodeObject attributesNode,
  const unsigned char* contentType,
  const unsigned char* characterSet,
  const unsigned char* originalCharacterSet
)
{
  int status;
  VtLibCtx libCtx;
  VoltSecureMailWriteCtx* writeCtx;
  VtDataNodeObject node;
  unsigned char version[64];
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  
  VT_ASSERT(secureMailObj != (VtSecureMailObject)0);
  VT_ASSERT(attributesNode != (VtDataNodeObject)0);
  
  libCtx = secureMailObj->voltObject.libraryCtx;
  writeCtx = (VoltSecureMailWriteCtx*) secureMailObj->localCtx;
  
  do
  {
    status = VoltNumToDecimalString(secureMailObj->version,
      version, sizeof(version), libCtx);
    VT_ASSERT(status == 0);

    /* Set the current version */
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2VersionAttributeName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, version);
    if (status != 0)
      break;
      
    /* Set the compatible version */
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2CompatibleVersionAttributeName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, version);
    if (status != 0)
      break;
    
    /* Set the recipients node. We don't actually populate it with
     * any recipients, because they really should only be used for ZDM
     * messages, but the existing Voltage core code expects it to be
     * there, even for non-ZDM messages, so we need to add an empty
     * element so we're compatible
     */
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2RecipientsAttributeName, 1, &node);
    if (status != 0)
      break;

    if (contentType == (unsigned char*)0)
      contentType = VoltZDM2DefaultContentType;
      
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2ContentTypeAttributeName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, contentType);
    if (status != 0)
      break;
    
    if (characterSet == (unsigned char*)0)
      characterSet = VoltZDM2DefaultCharacterSet;
      
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2CharacterSetAttributeName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, characterSet);
    if (status != 0)
      break;
    
    if (originalCharacterSet == (unsigned char*)0)
      originalCharacterSet = VoltZDM2DefaultCharacterSet;
      
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2OriginalCharacterSetAttributeName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, originalCharacterSet);
    if (status != 0)
      break;
  }
  while (0);

  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, 0,
    fnctLine, "VoltSecureMail2InitMessageAttributes", (unsigned char*)0)
  
  return status;
}

int VoltSecureMail2InitTemplateVariables(
  VtSecureMailObject secureMailObj,
  VtDataNodeObject attributesNode,
  const unsigned char* messageHeader,
  const unsigned char* messageStartTag,
  const unsigned char* messageEndTag,
  const unsigned char* charset
)
{
  int status;
  VtLibCtx libCtx;
  VtDataNodeObject node;
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  
  VT_ASSERT(secureMailObj != (VtSecureMailObject)0);
  VT_ASSERT(attributesNode != (VtDataNodeObject)0);
  
  libCtx = secureMailObj->voltObject.libraryCtx;
  
  do
  {
    /* Set the message header */
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2HeaderVariableName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, messageHeader);
    if (status != 0)
      break;
      
    /* Set the message start tag */
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2MessageStartTagVariableName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, messageStartTag);
    if (status != 0)
      break;

    /* Set the message end tag */
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2MessageEndTagVariableName, 1, &node);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, messageEndTag);
    if (status != 0)
      break;
      
    /* Set the charset */
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeResolveChild(attributesNode,
      VoltZDM2CharSetVariableName, 1, &node);
    if (status != 0)
      break;
    
    if (charset == (const unsigned char*)0)
      charset = VoltZDM2DefaultCharacterSet;
      
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtDataNodeSetStringValue(node, charset);
    if (status != 0)
      break;    
  }
  while (0);

  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, 0,
    fnctLine, "VoltSecureMail2InitTemplateVariables", (unsigned char*)0)
  
  return status;
}

static int VoltSecureMail2ExpandTemplate(
  VtLibCtx libCtx,
  unsigned char* templateText,
  unsigned int templateLength,
  VtDataNodeObject templateVariables,
  VtItem* item
)
{
  int status;
  VtStreamObject outputStream = (VtStreamObject)0;
  VtStreamSize outputSize, readSize;
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  VOLT_DECLARE_ERROR_TYPE(errorType)
  
  VOLT_SET_ERROR_TYPE(errorType, 0)

  do
  {
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VoltZDM2ExpandTemplate(libCtx, templateText,
      templateLength, templateVariables, &outputStream);
    if (status != 0)
      break;

    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtStreamGetSize(outputStream, &outputSize);
    if (status != 0)
      break;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtStreamSetPosition(outputStream, 0, VT_STREAM_FROM_START);
    if (status != 0)
      break;
    
    item->data = (unsigned char*) Z3Malloc(outputSize);
    item->len = (unsigned int) outputSize;
    
    VOLT_SET_FNCT_LINE(fnctLine)
    status = VtStreamRead(outputStream, item->data, item->len, &readSize);
    if (item->len != (unsigned int)readSize)
    {
      VOLT_SET_FNCT_LINE(fnctLine)
      VOLT_SET_ERROR_TYPE(errorType, VT_ERROR_TYPE_PRIMARY)
      status = VT_ERROR_STREAM_READ;
    }
    if (status != 0)
      break;
  }
  while (0);

  VtDestroyStreamObject(&outputStream);
  
  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, errorType,
    fnctLine, "VoltSecureMail2ExpandTemplate", (unsigned char*)0)
  
  return status;
}

#if 0
int VoltSecureMail2EncloseInHTMLComment(
  VtLibCtx libCtx,
  unsigned char* str,
  unsigned char** commentedStr
)
{
  int status = 0;
  unsigned char commentStart[] = "<!--";
  unsigned char commentEnd[] = "-->";
  unsigned int commentStartLength = sizeof(commentStart) - 1;
  unsigned int commentEndLength = sizeof(commentEnd) - 1;
  unsigned int strLength;
  unsigned char* p;
  VOLT_DECLARE_FNCT_LINE(fnctLine)

  VT_ASSERT(str != (unsigned char*)0);
  VT_ASSERT(commentedStr != (unsigned char**)0);
  
  do
  {
    strLength = Z2Strlen(str);
    
    p = (unsigned char*)
      Z3Malloc(commentStartLength + strLength + commentEndLength + 1);
    if (p == (unsigned char*)0)
    {
      VOLT_SET_FNCT_LINE(fnctLine)
      status = VT_ERROR_MEMORY;
      break;
    }
    *commentedStr = p;
    Z2Memcpy(p, commentStart, commentStartLength);
    p += commentStartLength;
    Z2Memcpy(p, str, strLength);
    p += strLength;
    Z2Memcpy(p, commentEnd, commentEndLength);
    p += commentEndLength;
    *p = 0;
  }
  while (0);

  VOLT_LOG_ERROR_COMPARE(status, libCtx, status, VT_ERROR_TYPE_PRIMARY,
    fnctLine, "VoltSecureMail2EncloseInHTMLComment", (unsigned char*)0)
  
  return status;
}
#endif

static int VoltSecureMail2WriteInitCommon(
  VtSecureMailObject secureMailObj,
  VtPolicyCtx policyCtx,
  unsigned int version
)
{
  int status;
  unsigned int i, elementLen, newLineLen;
  VoltSecureMailWriteCtx* writeCtx = (VoltSecureMailWriteCtx*)(secureMailObj->localCtx);
  VoltLibCtx* libCtx = (VoltLibCtx*)(secureMailObj->voltObject.libraryCtx);
  VtBase64Info b64Info;
  int useHTMLWrapping;
  unsigned char* messageStartTag = (unsigned char*)0;
  unsigned char* secureBlockStartTag = (unsigned char*)0;
  unsigned char* secureBlockEndTag = (unsigned char*)0;
  unsigned char* messageEndTag = (unsigned char*)0;
  unsigned char* messageHeader = (unsigned char*)0;
  VtItem* messageHeaderItem = (VtItem*)0;
  VtItem* templateItem = (VtItem*)0;
  VtItem temp;
  VtDataNodeObject templateVariablesNode = (VtDataNodeObject)0;
  unsigned char* headerText;
  unsigned int headerLength;
  unsigned char* trailerText;
  unsigned int trailerLength;
  VOLT_DECLARE_FNCT_LINE(fnctLine)
  VOLT_DECLARE_ERROR_TYPE(errorType)
  
  VOLT_SET_ERROR_TYPE(errorType, 0)

  do

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区精品在线观看| 亚洲美女视频在线| 欧美人xxxx| 欧美三级日韩三级| 在线观看视频91| 色综合天天狠狠| 色婷婷久久久综合中文字幕 | 成人晚上爱看视频| 国产乱码一区二区三区| 久99久精品视频免费观看| 免费观看在线综合| 美国欧美日韩国产在线播放| 另类中文字幕网| 蜜臀av一区二区三区| 午夜电影久久久| 免费人成黄页网站在线一区二区 | 欧美日韩一级片在线观看| 欧美性做爰猛烈叫床潮| 欧美少妇xxx| 欧美精品 日韩| 精品卡一卡二卡三卡四在线| 国产亚洲欧美日韩在线一区| 国产精品色哟哟网站| |精品福利一区二区三区| 一区二区三区四区高清精品免费观看 | 国产精品日韩成人| 亚洲精选免费视频| 日韩av高清在线观看| 国内精品久久久久影院一蜜桃| 国产丶欧美丶日本不卡视频| 成人av网站免费| 欧美日韩一区二区三区四区| 91麻豆精品国产91久久久久| 2024国产精品视频| 国产精品久久久久久久久晋中| 亚洲黄色性网站| 美洲天堂一区二卡三卡四卡视频| 国产成人精品影视| 精品视频在线看| 久久精品视频免费| 一区二区三区不卡在线观看| 蜜桃av噜噜一区| 91网站在线播放| 日韩午夜激情av| 成人欧美一区二区三区在线播放| 亚洲va欧美va国产va天堂影院| 久久99精品久久只有精品| 99久久国产综合色|国产精品| 欧美亚洲国产一区二区三区va| 日韩精品一区二| 亚洲素人一区二区| 久久精品理论片| 色网站国产精品| 精品久久国产字幕高潮| 亚洲六月丁香色婷婷综合久久| 欧美a级理论片| 不卡的av在线播放| 欧美成人一级视频| 玉足女爽爽91| 国产麻豆欧美日韩一区| 欧美性受极品xxxx喷水| 国产日韩精品一区二区浪潮av| 午夜精品在线看| 99热在这里有精品免费| 日韩视频免费观看高清完整版在线观看| 国产人妖乱国产精品人妖| 免费欧美高清视频| 欧美亚洲综合一区| 自拍偷拍亚洲综合| 国产一区二区三区最好精华液| 在线观看免费一区| 中文字幕制服丝袜成人av| 免费观看30秒视频久久| 在线影院国内精品| 亚洲人精品午夜| 国产不卡一区视频| 精品国产乱码久久久久久1区2区| 亚洲网友自拍偷拍| www.在线成人| 久久久久久麻豆| 欧美亚一区二区| 中文字幕在线一区免费| 国产suv精品一区二区6| 日韩视频永久免费| 午夜视频久久久久久| 色婷婷综合五月| 综合久久国产九一剧情麻豆| 国产成人鲁色资源国产91色综| 欧美电影免费观看高清完整版在线| 午夜伦欧美伦电影理论片| 欧美影院一区二区| 一区二区三区美女| 日本韩国精品在线| 亚洲女性喷水在线观看一区| 成人视屏免费看| 日本一区二区三区国色天香| 国产成人午夜99999| 久久综合国产精品| 国产一区二区三区在线观看精品| 日韩欧美美女一区二区三区| 日本视频一区二区三区| 欧美日韩一二三区| 五月天婷婷综合| 欧美一级二级在线观看| 免费欧美在线视频| 欧美成人在线直播| 精品一二线国产| 精品乱码亚洲一区二区不卡| 精品亚洲成a人在线观看| 精品国产亚洲一区二区三区在线观看| 麻豆91精品视频| 欧美刺激脚交jootjob| 精品一区二区成人精品| 久久久不卡影院| 懂色av一区二区三区蜜臀| 日本一二三不卡| 北条麻妃国产九九精品视频| 亚洲女与黑人做爰| 欧美日韩免费一区二区三区| 日韩中文欧美在线| 久久综合色婷婷| 成人免费av网站| 亚洲综合一区二区| 这里只有精品电影| 国内精品伊人久久久久影院对白| 国产亚洲视频系列| 成人精品视频网站| 一区二区三区四区不卡视频| 欧美妇女性影城| 国产综合色在线视频区| 国产无人区一区二区三区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日韩欧美在线观看一区二区三区| 久久不见久久见免费视频7| 久久久另类综合| 91天堂素人约啪| 日本成人在线不卡视频| 久久免费看少妇高潮| 91在线观看免费视频| 亚洲国产成人av网| 久久老女人爱爱| 色婷婷亚洲精品| 秋霞成人午夜伦在线观看| 国产视频911| 欧美性受xxxx| 国模套图日韩精品一区二区 | 日韩精品色哟哟| 国产亚洲欧美一区在线观看| 欧洲精品视频在线观看| 久久精品国产77777蜜臀| 国产精品动漫网站| 欧美一区二区在线观看| 成人动漫精品一区二区| 日本成人在线网站| 亚洲人xxxx| 精品剧情v国产在线观看在线| 色综合久久精品| 韩国v欧美v亚洲v日本v| 一区二区日韩av| 久久精品欧美一区二区三区麻豆| 一区二区三区高清不卡| 精品国精品自拍自在线| 色国产综合视频| 国产麻豆一精品一av一免费| 亚洲一区av在线| 国产精品黄色在线观看| 欧美一区二区三区视频免费| 99国产精品久久久久久久久久| 美女一区二区久久| 亚洲精品久久嫩草网站秘色| 久久久综合激的五月天| 777色狠狠一区二区三区| 色综合久久久久综合99| 丰满少妇在线播放bd日韩电影| 亚洲高清不卡在线| 亚洲欧洲精品成人久久奇米网| 日韩欧美国产电影| 欧美三级视频在线| 972aa.com艺术欧美| 国产综合久久久久久久久久久久| 性做久久久久久免费观看| 国产精品乱码妇女bbbb| 日韩欧美一二三区| 欧美男人的天堂一二区| 91蝌蚪国产九色| 国产激情91久久精品导航| 美女精品自拍一二三四| 日日摸夜夜添夜夜添亚洲女人| 国产精品理论片| 国产欧美精品在线观看| 久久亚洲综合av| 日韩一级视频免费观看在线| 精品视频资源站| 欧美视频自拍偷拍| 欧美亚洲国产一区二区三区va| 色哟哟国产精品| 91精品福利视频| 日本精品一级二级| 一本大道久久a久久综合婷婷| 不卡一区二区中文字幕|