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

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

?? aestype.c

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

/* Implements VoltBlockAlgSetter.
 */
int VOLT_CALLING_CONV VoltBlockAlgSetAES VOLT_PROTO_LIST ((
   VoltAlgorithmObject *obj,
   Pointer info,
   unsigned int flag
));

/* This routine does the work. It allocates and fills in the contexts.
 * @param obj The algorithm object to set.
 * @param cipherCtx The Cipher Class context to set.
 * @param blockCtx The BlockCipher context to set.
 * @return an int, 0 if the function completed successfully or a
 * non-zero error code.
 */
static int VOLT_CALLING_CONV SetObjectAES VOLT_PROTO_LIST ((
   VoltAlgorithmObject *obj,
   VoltCipherClassCtx *cipherCtx,
   VoltBlockCipherCtx *blockCtx
));

int VtAlgorithmImplAES (
   VtAlgorithmObject *object,
   Pointer info,
   unsigned int flag
   )
{
  int status;
  VoltAlgorithmObject *obj = (VoltAlgorithmObject *)(*object);
  VtBlockCipherInfo *blockInfo;
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  do
  {
    /* Check the flag, it should be VOLT_ALG_SET_TYPE_FLAG.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_TYPE;
    if (flag != VOLT_ALG_SET_TYPE_FLAG)
      break;

    /* Check the args.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_ASSOCIATED_INFO;
    if (info == (Pointer)0)
      break;

    blockInfo = (VtBlockCipherInfo *)info;

    /* Check the class of the object. It should be 0 (not yet set)
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_SET;
    if (obj->algClass != 0)
      break;

    /* Call the general purpose block cipher Setter.
     */
    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VoltAlgorithmSetBlockCipher (obj, VoltBlockAlgSetAES, blockInfo);
    if (status != 0)
      break;

    /* If successful, set the FIPS bit in the object type, this object
     * is a FIPS object.
     */
    obj->voltObject.objectType |= VOLT_OBJECT_TYPE_FIPS;

  } while (0);

  VOLT_LOG_ERROR_COMPARE (
    status, obj->voltObject.libraryCtx, status, errorType, fnctLine,
    "VtAlgorithmImplAES", (char *)0)

  return (status);
}

int VoltBlockAlgSetAES (
   VoltAlgorithmObject *obj,
   Pointer info,
   unsigned int flag
   )
{
  int status;
  VoltCipherClassCtx *cipherCtx;
  VoltBlockCipherCtx *blockCtx;
  VOLT_DECLARE_ERROR_TYPE (errorType)
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  do
  {
    /* Check the class of the object. It should be
     * VOLT_CLASS_BLOCK_CIPHER.
     */
    VOLT_SET_ERROR_TYPE (errorType, VT_ERROR_TYPE_PRIMARY)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_INVALID_TYPE;
    if (obj->algClass != VOLT_CLASS_BLOCK_CIPHER)
      break;

    /* We have a block cipher object, which means we have a CipherCtx
     * and a BlockCtx.
     */
    cipherCtx = (VoltCipherClassCtx *)(obj->classCtx);
    blockCtx = (VoltBlockCipherCtx *)(cipherCtx->localCipherCtx);

    /* Make sure the setState in the CipherCtx is correct.
     * status is currently VT_ERROR_INVALID_TYPE;
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    if (cipherCtx->setState != VOLT_BLOCK_SET_STATE_BLOCK)
      break;

    VOLT_SET_ERROR_TYPE (errorType, 0)
    VOLT_SET_FNCT_LINE (fnctLine)
    status = SetObjectAES (obj, cipherCtx, blockCtx);

  } while (0);

  VOLT_LOG_ERROR_COMPARE (
    status, obj->voltObject.libraryCtx, status, errorType, fnctLine,
    "VoltBlockAlgSetAES", (char *)0)

  return (status);
}

static int SetObjectAES (
   VoltAlgorithmObject *obj,
   VoltCipherClassCtx *cipherCtx,
   VoltBlockCipherCtx *blockCtx
   )
{
  int status;
  VoltLibCtx *libCtx = (VoltLibCtx *)(obj->voltObject.libraryCtx);
  VoltAESCtx *aesCtx = (VoltAESCtx *)0;
  VOLT_DECLARE_FNCT_LINE (fnctLine)

  do
  {
    /* Allocate enough space for an AES Ctx.
     */
    VOLT_SET_FNCT_LINE (fnctLine)
    status = VT_ERROR_MEMORY;
    aesCtx = (VoltAESCtx *)Z2Malloc (
      sizeof (VoltAESCtx), VOLT_MEMORY_SENSITIVE);
    if (aesCtx == (VoltAESCtx *)0)
      break;
    Z2Memset (aesCtx, 0, sizeof (VoltAESCtx));

    /* Populate the contexts.
     */
    blockCtx->algCtx = (Pointer)aesCtx;
    blockCtx->AlgCtxDestroy = VoltSimpleCtxDestroy;

    cipherCtx->SymKeyParam = VtKeyParamAES;
    cipherCtx->EncryptInit = AESEncryptInit;
    cipherCtx->EncryptUpdate = AESEncryptUpdate;
    cipherCtx->DecryptInit = AESDecryptInit;
    cipherCtx->DecryptUpdate = AESDecryptUpdate;
    cipherCtx->plainBlockSize = 16;
    cipherCtx->cipherBlockSize = 16;
    cipherCtx->setState = VOLT_BLOCK_SET_STATE_ALG;

    obj->subAlg1 = VOLT_SUB_ALG_AES;

    status = 0;

  } while (0);

  /* If everything worked, return 0.
   */
  if (status == 0)
    return (0);

  /* If something went wrong, destroy anything we created and indicate
   * that this object is not usable.
   */
  if (aesCtx != (VoltAESCtx *)0)
    Z2Free (aesCtx);

  obj->state = VOLT_STATE_ERROR;

  VOLT_LOG_ERROR (
    obj->voltObject.libraryCtx, status, VT_ERROR_TYPE_PRIMARY, fnctLine,
    "SetObjectAES", (char *)0)

  return (status);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲丰满少妇videoshd| 欧美成人a在线| 亚洲免费观看高清完整版在线观看熊 | 成人性生交大片免费看在线播放| xfplay精品久久| 国产一区二区三区国产| 国产日韩欧美精品综合| 99精品视频一区二区| 亚洲精品免费电影| 欧美日韩电影在线播放| 美女视频黄a大片欧美| 洋洋av久久久久久久一区| 欧美色老头old∨ideo| 日日欢夜夜爽一区| 久久亚洲精品小早川怜子| 成人精品免费网站| 亚洲午夜一二三区视频| 日韩欧美激情在线| 成人动漫中文字幕| 亚洲gay无套男同| 精品国产不卡一区二区三区| 成人av网站免费| 亚洲 欧美综合在线网络| 欧美大片顶级少妇| av成人老司机| 麻豆国产一区二区| 国产精品久久久久影视| 欧美三级电影在线观看| 国内久久精品视频| 亚洲另类在线视频| 26uuu精品一区二区在线观看| 不卡欧美aaaaa| 丝袜美腿成人在线| 国产精品高潮呻吟| 日韩一区二区电影在线| av在线不卡免费看| 美女网站在线免费欧美精品| 亚洲视频中文字幕| 久久综合色综合88| 欧美日韩国产免费| av在线一区二区三区| 久久国产精品无码网站| av在线一区二区三区| 麻豆精品视频在线观看免费| 亚洲特级片在线| 久久久777精品电影网影网 | 丁香另类激情小说| 日本不卡在线视频| 亚洲午夜精品17c| 国产精品美女久久福利网站| 欧美成人aa大片| 欧美人与禽zozo性伦| 不卡高清视频专区| 国产传媒日韩欧美成人| 免费人成在线不卡| 天堂影院一区二区| 亚洲午夜精品久久久久久久久| 中文字幕乱码亚洲精品一区| 欧美sm美女调教| 欧美精品99久久久**| 日本道在线观看一区二区| 丁香啪啪综合成人亚洲小说| 国产一区二区三区日韩| 秋霞av亚洲一区二区三| 午夜私人影院久久久久| 亚洲在线观看免费| 洋洋成人永久网站入口| 一区二区视频在线| 亚洲男帅同性gay1069| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品久久久久影院亚瑟| 国产欧美精品在线观看| 久久日韩粉嫩一区二区三区| 欧美精品一区二区三| 日韩你懂的在线播放| 精品日韩av一区二区| 日韩精品一区二区三区视频播放 | 欧美xxxxxxxx| 亚洲高清免费在线| 亚洲午夜久久久久中文字幕久| 亚洲欧洲制服丝袜| 夜夜精品视频一区二区| 亚洲大型综合色站| 日韩精品亚洲一区二区三区免费| 日韩电影在线免费观看| 日本免费新一区视频| 免费不卡在线视频| 极品美女销魂一区二区三区| 久久精工是国产品牌吗| 国产精品香蕉一区二区三区| 国产**成人网毛片九色 | 麻豆精品一区二区三区| 精品无码三级在线观看视频 | 成人丝袜18视频在线观看| 不卡的av电影| 日本黄色一区二区| 欧美猛男男办公室激情| 精品理论电影在线| 国产精品你懂的| 一区二区欧美精品| 麻豆91在线播放免费| 国产一区二区导航在线播放| 99久久99久久久精品齐齐| 欧美日韩在线观看一区二区 | 欧美日韩不卡一区二区| 26uuu亚洲| 国产精品美女久久久久久2018| 亚洲最新视频在线播放| 免费观看91视频大全| 成人精品小蝌蚪| 欧美猛男男办公室激情| 国产日韩成人精品| 亚洲韩国一区二区三区| 国产一区二区三区视频在线播放| 91免费国产在线观看| 欧美精品日韩一本| 国产精品免费观看视频| 日韩二区三区四区| 成人av电影在线| 69堂成人精品免费视频| 国产午夜精品一区二区三区四区 | 欧美日韩美女一区二区| 久久久噜噜噜久久中文字幕色伊伊| 中文字幕一区二| 男女视频一区二区| 在线中文字幕一区二区| 久久欧美一区二区| 无吗不卡中文字幕| av男人天堂一区| 精品久久一区二区| 午夜精品福利在线| 91丨porny丨最新| 国产人妖乱国产精品人妖| 无码av免费一区二区三区试看| 大胆亚洲人体视频| 精品人在线二区三区| 亚洲香肠在线观看| 91免费观看在线| 国产欧美精品一区aⅴ影院| 午夜婷婷国产麻豆精品| 国产三区在线成人av| 日本不卡一区二区| 欧美做爰猛烈大尺度电影无法无天| 国产亚洲一区二区三区在线观看 | 日本韩国精品一区二区在线观看| 久久色.com| 日韩二区三区四区| 欧美人牲a欧美精品| 亚洲乱码中文字幕| www.欧美精品一二区| 亚洲精品一线二线三线| 免费成人美女在线观看.| 欧美日韩三级一区二区| 1024成人网| 99国产精品久久久久| 国产日韩av一区| 国产一区二区三区国产| 日韩欧美亚洲国产精品字幕久久久| 亚洲国产成人高清精品| 欧美亚洲国产一区二区三区 | 午夜亚洲福利老司机| 色老头久久综合| 亚洲欧美另类小说视频| 91在线观看免费视频| 亚洲桃色在线一区| 91论坛在线播放| 亚洲激情图片qvod| 日本大香伊一区二区三区| 中文字幕一区二区三区蜜月| 国产91丝袜在线播放九色| 久久久美女毛片| 国产91富婆露脸刺激对白 | 国产精品久久看| 丰满亚洲少妇av| 国产精品白丝在线| 成人免费毛片app| 国产精品水嫩水嫩| 99综合影院在线| 亚洲精品亚洲人成人网| 91久久精品一区二区三区| 亚洲国产综合91精品麻豆| 欧美日韩在线不卡| 老司机一区二区| 久久久夜色精品亚洲| 国产成人av电影免费在线观看| 中文字幕中文字幕在线一区 | 一本久久a久久免费精品不卡| 亚洲精品欧美专区| 欧美乱熟臀69xxxxxx| 精品在线一区二区三区| 国产精品美女久久久久久久| 日本高清无吗v一区| 奇米影视7777精品一区二区| 久久蜜桃av一区精品变态类天堂| 福利电影一区二区三区| 一区二区三区**美女毛片| 91精品国产麻豆国产自产在线| 精彩视频一区二区| 中文字幕中文字幕一区| 欧美日韩aaaaa|