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

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

?? cipher.h

?? IBE是一種非對稱密碼技術
?? H
字號:
/* Copyright 2003-2006, Voltage Security, all rights reserved.
 */

#include "vibecrypto.h"
#include "environment.h"
#include "base.h"
#include "libctx.h"
#include "algobj.h"
#include "keyobj.h"
#include "pad.h"

#ifndef _CIPHER_H
#define _CIPHER_H

#ifdef __cplusplus
extern "C" {
#endif

/* If the class is CIPHER, this is the classCtx (the data struct and
 * the types that are the fields).
 */

/* The Cipher class treats every algorithm as a block cipher. A stream
 * cipher is a 1-byte block cipher with no feedback and no padding, for
 * example.
 */

/* How big does the output buffer need to be to handle the input?
 * <p>The caller supplies the number of new bytes to process and
 * ignores any bytes in the unprocessedData buffer. This function will
 * determine the size needed based on the size of the input, the
 * number of bytes in the unprocessedData buffer, whether encrypting or
 * decrypting, whether Update or Final and whether padding or not.
 * <p>The caller must supply one of the following flags to indicate
 * whether the operation will be encrypt or decrypt and Update or Final.
 *
 *    VOLT_CALLER_ENCRYPT_UPDATE
 *    VOLT_CALLER_ENCRYPT_FINAL
 *    VOLT_CALLER_DECRYPT_UPDATE
 *    VOLT_CALLER_DECRYPT_FINAL
 *
 * <p>This function also determines the "leftovers", the number of
 * bytes of input not to Update. The caller passes in inputLen (the
 * number of new bytes), calls GetOutputSize and then does Update on
 * input - leftovers bytes (more input is allowed to Final, so it may
 * actually process data). The caller stores the leftover bytes in the
 * unprocessedData buffer. If Final, the caller will actually process
 * them.
 * <p>The impplementation of this typedef must also determine if the
 * input length is valid. For Final calls, the input length given may
 * be invalid depending on padding.
 * <p>The caller also supplies the new input bytes in case the
 * implementation wants to examine them. Most algorithms will ignore
 * them, but for some, the input may need to be of a particular format.
 *
 * @param obj The algorithm object.
 * @param input The new input to process.
 * @param inputLen The length of new input to be processed.
 * @param outputSize The address where the implementation will go to
 * deposit the size required.
 * @param leftovers The address where the implmentation will go to
 * deposit the number of leftover bytes.
 * @return an int, 0 if the function completed successfully or a
 * non-zero error code.
 */
typedef int VOLT_CALLING_CONV (*VGetOutputSize) VOLT_PROTO_LIST ((
   VoltAlgorithmObject *obj,
   unsigned int callFlag,
   unsigned char *input,
   unsigned int inputLen,
   unsigned int *outputSize,
   unsigned int *leftovers,
   VtRandomObject random
));

/* Initialize for encryption. Use the given key to set up the object to
 * perform encryption. With symmetric ciphers, this generally involves
 * building the key table from the key data inside the key object.
 * <p>The key object must match the algorithm object, both in algorithm
 * and platform (platform refers to, for example, software vs. hardware,
 * Acme HW accelerator vs. OtherCompany HW token.
 *
 * @param algObj The object to init.
 * @param keyObj The key object containing the key data (or handle) to
 * use.
 * @return an int, 0 if the function completed successfully or a
 * non-zero error code (e.g., key and object don't match).
 */
typedef int VOLT_CALLING_CONV (*VEncryptInit) VOLT_PROTO_LIST ((
   VoltAlgorithmObject *algObj,
   VoltKeyObject *keyObj
));

#define VOLT_CALLER_ENCRYPT_UPDATE  1
#define VOLT_CALLER_ENCRYPT_FINAL   2
#define VOLT_CALLER_DECRYPT_UPDATE  3
#define VOLT_CALLER_DECRYPT_FINAL   4

/* Encrypt the input data, placing any output (encrypted data) into the
 * output data buffer.
 * <p>This function expects the input length to be a multiple of the
 * block size. For example, if encrypting with AES, the input length
 * must be a multiple of 16 bytes. If encrypting with a stream cipher
 * (or a block cipher in CFB or OFB mode), the "block size" is one
 * byte, so any input length is allowed. The routine will not check the
 * input length, it is the responsibility of the caller to pass in the
 * appropriate length of data.
 * <p>This routine will encrypt all bytes presented. Padding issues
 * must be resolved by the caller.
 * <p>This routine does not return the number of bytes placed into the
 * output buffer. It is the caller's responsibility to know how many
 * bytes will be placed into the output buffer.
 * <p>For most ciphers, the output length is the same as the input
 * length (because the function expects the input to be a multiple of
 * the block size). For example, with AES, 32 bytes of input will
 * produce 32 bytes of output, with a stream cipher, 27 bytes of input
 * generates 27 bytes of output. However, there are ciphers for which
 * the encrypted data is larger than the plaintext. See the
 * VoltCipherCtx fields plainBlockSize and cipherBlockSize to see if
 * there is a difference in input and output sizes.
 * <p>This function will not check the output buffer, it is the
 * responsibility of the caller to make sure there is a buffer (no NULL
 * pointers) and that it is big enough.
 * <p>It is recommended that the input and output buffers not overlap.
 * If the output and input lengths are the same, then it is safe to
 * use the same buffer for both input and output.
 *
 * @param algObj The object initialized for encryption.
 * @param dataToEncrypt The buffer containing the data to encrypt.
 * @param dataToEncryptLen The length, in bytes, of the data to encrypt.
 * @param encryptedData The output buffer into which this routine will
 * place the result.
 * @return an int, 0 if the function completed successfully or a
 * non-zero error code.
 */
typedef int VOLT_CALLING_CONV (*VEncryptUpdate) VOLT_PROTO_LIST ((
   VoltAlgorithmObject *algObj,
   VtRandomObject random,
   unsigned char *dataToEncrypt,
   unsigned int dataToEncryptLen,
   unsigned char *encryptedData
));

/* Encrypt a key. The caller must call EncryptInit before calling this
 * function.
 * <p>Most algorithm objects will simply extract the key data from the
 * key object and encrypt the bytes. Furthermore, these objects may
 * only be able to encrypt symmetric keys. However, some hardware
 * implementations may not allow raw key data to leave the device and
 * so to encrypt the key (for an envelope or storage), it will be
 * necessary to pass the hardware key object to the hardware algorithm
 * object to encrypt the key.
 * <p>The function will place the encrypted key into encryptedKey, a
 * buffer bufferSize bytes big. This routine will go to the address
 * given by encryptedKeyLen and deposit the length of the output (the
 * number of bytes placed into the encryptedKey buffer). If the buffer
 * is not big enough, this function will return the 揃ufferTooSmall

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕乱码日本亚洲一区二区| 白白色 亚洲乱淫| 欧美另类久久久品| 日韩国产欧美在线视频| 67194成人在线观看| 日韩av电影天堂| 精品理论电影在线观看| 国产精品一卡二| 国产精品久久久久久久久久免费看| 99热99精品| 亚洲成人7777| 欧美高清精品3d| 国产久卡久卡久卡久卡视频精品| 国产精品网站在线播放| 91啪亚洲精品| 日本va欧美va精品| 国产欧美日韩久久| 欧洲av一区二区嗯嗯嗯啊| 久久爱www久久做| 中文字幕亚洲区| 欧美美女直播网站| 久久精品国产免费看久久精品| 国产欧美日韩麻豆91| 在线视频你懂得一区| 久久国产婷婷国产香蕉| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲视频在线观看三级| 欧美日韩国产小视频在线观看| 九九九久久久精品| 亚洲综合在线免费观看| 欧美精品一区二区三区视频| 日本高清不卡一区| 国产在线精品免费| 亚洲一区二区三区视频在线播放| xnxx国产精品| 欧美日韩精品欧美日韩精品一 | 色菇凉天天综合网| 国产精品99久久不卡二区| 一区二区视频免费在线观看| 日韩免费视频一区二区| 91丝袜美腿高跟国产极品老师| 日本欧美韩国一区三区| 亚洲欧美精品午睡沙发| 久久蜜臀精品av| 欧美精品久久99久久在免费线 | 国产亚洲欧洲一区高清在线观看| 在线精品视频一区二区三四| 国产黄人亚洲片| 日韩av成人高清| 亚洲第一久久影院| 亚洲乱码国产乱码精品精可以看| 久久久久99精品一区| 欧美一区二区美女| 在线一区二区三区| proumb性欧美在线观看| 国产揄拍国内精品对白| 日韩av一区二| 亚洲成av人影院| 一区二区三区国产精品| 中文字幕视频一区| 日本一区二区三区久久久久久久久不 | 一区二区中文字幕在线| 久久久久久久电影| 精品日韩一区二区三区免费视频| 欧美日韩在线一区二区| 欧美艳星brazzers| 91美女片黄在线观看| 成人免费va视频| 顶级嫩模精品视频在线看| 国产主播一区二区三区| 久久成人18免费观看| 老汉av免费一区二区三区| 蜜桃久久精品一区二区| 日韩国产欧美在线视频| 日韩av中文在线观看| 欧美bbbbb| 国模大尺度一区二区三区| 久久99精品国产.久久久久久| 久热成人在线视频| 久久精品国产精品青草| 精品一区二区三区免费| 国内精品免费在线观看| 国产精品一区二区久久精品爱涩| 国产在线不卡一区| 成人午夜激情在线| 色综合久久天天| 欧美系列亚洲系列| 7777精品伊人久久久大香线蕉完整版 | 国产电影一区在线| 成人18视频日本| 色综合中文字幕国产 | 日韩电影免费一区| 久久精品国产99| 国产精品88888| 91亚洲午夜精品久久久久久| 色综合视频在线观看| 欧美色图免费看| 欧美成人vr18sexvr| 国产亚洲成aⅴ人片在线观看 | 亚洲激情一二三区| 日本va欧美va精品| 国产99久久久国产精品| 色婷婷综合五月| 欧美卡1卡2卡| 2020国产精品| 国产精品高清亚洲| 亚洲成人综合在线| 久久99久久久久久久久久久| 国产成人在线影院| 欧美性色黄大片| 久久久三级国产网站| 综合激情网...| 免费日韩伦理电影| 成人av在线播放网站| 91麻豆精品国产91| 国产精品久久看| 青青草国产成人99久久| 成人aaaa免费全部观看| 日韩一卡二卡三卡| 国产精品灌醉下药二区| 美女视频第一区二区三区免费观看网站| 国产美女主播视频一区| 在线视频你懂得一区| 久久久99精品久久| 图片区日韩欧美亚洲| 国产成a人亚洲| 日韩欧美国产电影| 一区二区三区中文免费| 国产一区二区三区在线观看免费| 欧美在线影院一区二区| 国产精品免费aⅴ片在线观看| 天天免费综合色| 91蜜桃视频在线| 欧美国产一区二区| 美女视频黄频大全不卡视频在线播放| 91蝌蚪国产九色| 久久亚洲春色中文字幕久久久| 亚洲一区二区三区四区五区中文| 国产不卡在线播放| 精品成人在线观看| 午夜婷婷国产麻豆精品| 91麻豆福利精品推荐| 欧美经典一区二区| 精品影视av免费| 欧美一区中文字幕| 亚洲va天堂va国产va久| 91性感美女视频| 国产女人18毛片水真多成人如厕 | 欧美三级三级三级| 亚洲欧美韩国综合色| 成人a级免费电影| 国产欧美精品一区二区色综合| 久久99精品国产麻豆婷婷| 3d成人动漫网站| 亚洲va欧美va人人爽| 欧美性受极品xxxx喷水| 亚洲综合色自拍一区| 91蝌蚪国产九色| 一区二区三区久久久| 色综合久久天天| 亚洲精品欧美激情| 91丨porny丨户外露出| 国产精品久久久久久亚洲毛片| 国产精品一区二区在线播放 | 色综合天天综合网天天看片| 国产精品久久一级| 91免费精品国自产拍在线不卡 | 一区二区免费在线播放| 99久久久久免费精品国产| 中文字幕一区av| 91欧美一区二区| 亚洲一二三专区| 欧美精品tushy高清| 麻豆精品蜜桃视频网站| 精品国产91乱码一区二区三区| 韩国女主播一区| 欧美激情一区三区| 99久久久精品| 亚洲mv在线观看| 91精品视频网| 国产精品18久久久久久久久久久久| 国产午夜亚洲精品理论片色戒| 成人综合婷婷国产精品久久 | 欧美日韩在线播放三区四区| 天天av天天翘天天综合网色鬼国产| 91精品国模一区二区三区| 精品一区二区三区影院在线午夜| 国产视频在线观看一区二区三区| 成人精品国产免费网站| 亚洲精品乱码久久久久久久久| 欧美影院精品一区| 理论片日本一区| 国产精品毛片久久久久久| 日本久久电影网| 日av在线不卡| 国产精品久久久久久久久免费樱桃| 欧美专区亚洲专区| 国产一区视频网站| 亚洲欧美另类久久久精品| 日韩美女一区二区三区四区|