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

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

?? icinputstream.h

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

#include "vibe.h"
#include "environment.h"
#include "base.h"
#include "libctx.h"
#include "stringutil.h"

#ifndef _ICINPUTSTREAM_H_
#define _ICINPUTSTREAM_H_

#ifdef __cplusplus
extern "C" {
#endif

typedef struct icInputStreamDef *icInputStreamPtr;

/* Place count bytes from in into buf. If there are fewer than count
 * bytes in the stream, place all the bytes in the stream into the
 * buffer. Set bytesRead to the number of bytes read.
 * <p>If bytesRead < count, we reached the end of stream.
 * <p>This function will move the stream along by the number of bytes
 * read.
 */
typedef int (*ICRead) (
   icInputStreamPtr in, unsigned char *buf, int count, int *bytesRead,
   VoltLibCtx *libCtx);

/* Place count bytes from in into buf. If there are fewer than count
 * bytes in the stream, place all the bytes in the stream into the
 * buffer. Set bytesRead to the number of bytes read.
 * <p>If bytesRead < count, we reached the end of stream.
 * <p>This function will NOT move the stream along.
 */
typedef int (*ICPeek) (
   icInputStreamPtr in, unsigned char *buf, int count, int *bytesRead,
   VoltLibCtx *libCtx);

/* Move the stream along count bytes. If there are fewer than count
 * bytes in the stream, move to the end of the stream. Set bytesRead to
 * the number of bytes we moved ahead.
 * <p>If bytesRead < count, we reached the end of stream.
 * <p>This function is equivalent to the read function, except it does
 * not copy the stream bytes into a caller-supplied buffer.
 */
typedef int (*ICSkip) (
   icInputStreamPtr in, int count, int *bytesRead, VoltLibCtx *libCtx);

/* Free all memory associated with the stream.
 */
typedef void (*ICFree) (
   icInputStreamPtr in, VoltLibCtx *libCtx);

typedef struct icInputStreamDef
{
  ICRead           read;
  ICPeek           peek;
  ICSkip           skip;
  ICFree           free;
	Pointer          localStream;
} icInputStream;

typedef int (*ICInputStreamImpl) (
   unsigned char *str, int len, int copyFlag, icInputStream *in,
   VoltLibCtx *libCtx);
   
/* Create a new stream that deals with the kind of streams specified in
 * the StreamImpl.
 * <p>This function sets the contents of the stream to the data in str.
 * <p>The copyFlag is either VOLT_IC_STREAM_COPY_DATA or
 * VOLT_IC_STREAM_COPY_REFERENCE.
 * <p>If copying DATA, the implementation must make its own copy of the
 * input data. If the caller passes in REFERENCE, the implementation
 * can simply copy a reference to the data. However, an implementation
 * can decide to copy the data itself. That is, after calling the
 * create with REFERENCE, there is no guarantee that any manipulations
 * to the buffer outside the stream will be reflected inside the stream.
 */
int icInputStreamCreate (
   ICInputStreamImpl StreamImpl,
   unsigned char *str,
   int len,
   int copyFlag,
   icInputStream **in,
   VoltLibCtx *libCtx
   );

#define VOLT_IC_STREAM_COPY_REFERENCE  0
#define VOLT_IC_STREAM_COPY_DATA       1

/* This is currently the only input stream impl supported.
 * It deals with streams that are byte arrays in memory.
 */
int ICInputStreamImplString (
   unsigned char *str, int len, int copyFlag, icInputStream *in,
   VoltLibCtx *libCtx);

/* Reads count or maximum number of bytes from input stream, and stored
 * read bytes into buf.
 * Pointer is advanced to the end of the read sector.
 * If the return is 0 and bytesRead < count, we reached the end.
 *
 * @param in - input stream;
 * @param buf - pointer to the storage buffer for the read bytes;
 * @param count - number of bytes to be read;
 * @param bytesRead - address where actual number of bytes read will be
 * returned.
 * @param libCtx - memory context;
 * @return int - zero if success, or nonzero error code
 */
int icInputStreamRead (
   icInputStream *in,
   unsigned char *buf,
   int count,
   int *bytesRead,
   VoltLibCtx *libCtx
   );

/* Reads count or maximum number of bytes from input stream, and stored
 * read bytes into buf;
 * Pointer is NOT being advanced to the end of the read sector.
 * If the return is 0 and bytesRead < count, we reached the end.
 *
 * @param in - input stream;
 * @param buf - pointer to the storage buffer for the read bytes;
 * @param count - number of bytes to be read;
 * @param bytesRead - address where actual number of bytes read will be
 * returned.
 * @param libCtx - memory context;
 * @return int - 0 for success or nonzero error code.
 */
int icInputStreamPeek (
   icInputStream *in,
   unsigned char *buf,
   int count,
   int *bytesRead,
   VoltLibCtx *libCtx
   );

/* This moves the stream position to the first character in the stream
 * that is not whitespace.
 * <p>Upon return, the bytesRead variable will have been set to how
 * many bytes of whitespace were read and skipped.
 * <p>If this function reaches the end of the stream finding only
 * whitespace, it will still return 0. In other words, there's no way
 * to know, using this routine, whether there is non-whitespace data in
 * the stream, the caller must simply call Peek or Read.
 */
int icInputStreamSkipWhitespace (
   icInputStream *in,
   int *bytesRead,
   VoltLibCtx *libCtx
   );

/* Frees input stream;
	@param in - input stream;
	@param libCtx - memory context;
 */
void icInputStreamFree (
   icInputStream **in,
   VoltLibCtx *libCtx
   );

/* Structure for the localStream of a StringInputStream.
   str - pinter to the stream itself
   position - position of pointer in the stream
   length - length of the stream 
   freeStr - indicates whether the str pointer should be freed or not,
   the str pointer was originally either a reference copy or a data
   copy.
 */
typedef struct
{
  unsigned char   *str;
  int              position;
  int              length;
  int              copyFlag;
} icStringInputStreamData;

int icStringInputStreamRead (
   icInputStreamPtr in,
   unsigned char *buf,
   int count,
   int *bytesRead,
   VoltLibCtx *libCtx
   );

void icStringInputStreamFree (
   icInputStreamPtr in,
   VoltLibCtx *libCtx
   );

#ifdef __cplusplus
}
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩av一区二区| 2023国产精品自拍| 成人av在线电影| 国产成人免费视频网站 | 欧美在线不卡一区| 91麻豆成人久久精品二区三区| 国产成人a级片| 成人性生交大片免费看视频在线| 国产大陆a不卡| 成人av电影免费观看| 96av麻豆蜜桃一区二区| av网站免费线看精品| 色综合天天综合网国产成人综合天| 色噜噜狠狠成人网p站| 欧美日本国产一区| 欧美成人激情免费网| 国产精品久久99| 亚洲精选一二三| 日韩影院精彩在线| 国产精品夜夜嗨| 99re亚洲国产精品| 88在线观看91蜜桃国自产| 精品国产123| 中文字幕亚洲不卡| 天堂在线亚洲视频| 高清不卡在线观看av| 在线观看亚洲成人| 精品国产精品网麻豆系列 | 欧美视频在线不卡| 日韩一区二区电影网| 久久久国产精品麻豆| 国产精品色一区二区三区| 亚洲国产一区二区三区| 国产专区欧美精品| 欧美系列日韩一区| 亚洲同性gay激情无套| 亚洲同性gay激情无套| 青青草精品视频| 91麻豆精东视频| 精品噜噜噜噜久久久久久久久试看 | 91丨porny丨国产| 欧美一区二区三区四区高清| 国产精品理论片| 蜜桃av一区二区三区| 成人av先锋影音| 日韩欧美国产三级| 亚洲高清免费一级二级三级| 国产成人免费av在线| 欧美一级日韩一级| 亚洲一二三区不卡| 97精品国产露脸对白| 精品少妇一区二区三区免费观看| 一区二区三区四区蜜桃| 国产成人亚洲综合色影视| 4438亚洲最大| 亚洲综合色噜噜狠狠| 99久久夜色精品国产网站| 精品国产91乱码一区二区三区| 一区二区三区在线观看国产| 国产不卡在线视频| 久久―日本道色综合久久| 婷婷成人激情在线网| 91国模大尺度私拍在线视频| 国产日韩欧美在线一区| 麻豆精品久久久| 日韩一区二区三区在线视频| 日韩精品久久久久久| 欧美三区免费完整视频在线观看| 中文字幕一区在线观看视频| 国产一区二区三区蝌蚪| 精品国内二区三区| 毛片av一区二区三区| 日韩午夜小视频| 麻豆国产欧美日韩综合精品二区| 4438x成人网最大色成网站| 偷窥国产亚洲免费视频| 欧美日韩午夜在线| 天天影视涩香欲综合网| 欧美丰满一区二区免费视频| 亚洲人成在线播放网站岛国| 91啦中文在线观看| 亚洲一区二区三区视频在线| 在线精品视频一区二区| 亚洲国产精品久久久男人的天堂| 欧美午夜精品电影| 午夜精品久久久久久久99水蜜桃| 欧美久久一二三四区| 日本亚洲最大的色成网站www| 欧美一二三区在线| 丰满少妇久久久久久久| 自拍偷拍欧美激情| 欧美四级电影在线观看| 免费视频一区二区| 国产清纯在线一区二区www| 不卡欧美aaaaa| 午夜精品成人在线| 精品国产凹凸成av人导航| 国产精品 日产精品 欧美精品| 中文字幕在线一区二区三区| 在线视频欧美区| 久久99精品国产麻豆婷婷洗澡| 国产喷白浆一区二区三区| 色激情天天射综合网| 日本成人中文字幕| 国产精品每日更新| 91.com在线观看| 粉嫩av一区二区三区在线播放| 亚洲精品写真福利| 日韩精品一区二区三区中文不卡| 国产精品亚洲人在线观看| 一区二区三区欧美久久| 久久众筹精品私拍模特| 99国产精品99久久久久久| 美腿丝袜一区二区三区| 亚洲美女在线一区| 精品国产人成亚洲区| 一本大道久久a久久综合| 麻豆免费精品视频| 亚洲精品成人少妇| 国产欧美精品一区二区色综合| 欧美日韩高清在线| 91免费观看视频在线| 久久97超碰色| 日本欧美一区二区三区| 亚洲美女在线一区| 国产精品免费aⅴ片在线观看| 777午夜精品免费视频| 日本精品一区二区三区高清| 国产精品小仙女| 久久国产精品一区二区| 一片黄亚洲嫩模| 国产精品美女久久久久久久 | 中文字幕乱码亚洲精品一区| 欧美一区二区三区播放老司机| 99久久亚洲一区二区三区青草| 国产一区二区三区精品欧美日韩一区二区三区 | 精品国产亚洲在线| 日韩一区二区在线观看视频| 色婷婷综合久久久久中文| 大桥未久av一区二区三区中文| 蜜臀久久99精品久久久久久9| 亚洲高清在线视频| 亚洲综合丝袜美腿| 亚洲主播在线播放| 亚洲精品视频自拍| 亚洲人成影院在线观看| 亚洲欧美乱综合| 亚洲女同一区二区| 一区二区三区不卡在线观看| 亚洲美女免费在线| 亚洲自拍偷拍九九九| 亚洲免费在线看| 一区二区成人在线视频| 亚洲午夜精品在线| 水蜜桃久久夜色精品一区的特点| 午夜精彩视频在线观看不卡| 亚洲国产美女搞黄色| 亚洲二区在线视频| 日韩国产精品大片| 狠狠色2019综合网| 国产成人在线观看免费网站| 国产1区2区3区精品美女| 成人黄色片在线观看| 色婷婷久久久综合中文字幕| 欧美日韩五月天| 欧美福利电影网| 久久久www免费人成精品| 国产精品视频麻豆| 一区二区在线观看视频| 日本大胆欧美人术艺术动态| 国产一区二区三区不卡在线观看| 国产在线一区观看| 91美女片黄在线观看91美女| 欧美性猛交xxxx黑人交| 日韩手机在线导航| 中文字幕国产一区| 亚洲一区二区三区三| 精品一区二区影视| 色噜噜狠狠成人中文综合| 欧美一级黄色片| 国产精品国产三级国产普通话三级| 亚洲老司机在线| 久久99热国产| 色婷婷精品大在线视频| 精品国产电影一区二区| 亚洲精品日产精品乱码不卡| 奇米一区二区三区av| aaa欧美日韩| 精品久久久久久久久久久久久久久久久 | 欧美色偷偷大香| 欧美激情在线免费观看| 亚洲成人高清在线| 成人午夜电影小说| 欧美一三区三区四区免费在线看 | 91久久精品日日躁夜夜躁欧美| 日韩一级大片在线| 一区二区三区在线观看网站| 国产在线精品一区二区不卡了 | 日韩成人一级片| 91丝袜美腿高跟国产极品老师|