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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? secmem.h

?? QT安全系統(tǒng)
?? H
字號:
/*Copyright (C) 1999-2007 The Botan Project. All rights reserved.Redistribution and use in source and binary forms, for any use, with or withoutmodification, is permitted provided that the following conditions are met:1. Redistributions of source code must retain the above copyright notice, thislist of conditions, and the following disclaimer.2. Redistributions in binary form must reproduce the above copyright notice,this list of conditions, and the following disclaimer in the documentationand/or other materials provided with the distribution.THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) "AS IS" AND ANY EXPRESS OR IMPLIEDWARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE FOR ANY DIRECT,INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCEOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IFADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/// LICENSEHEADER_ENDnamespace QCA { // WRAPNS_LINE/************************************************** Secure Memory Buffers Header File              ** (C) 1999-2007 The Botan Project                **************************************************/#ifndef BOTAN_SECURE_MEMORY_BUFFERS_H__#define BOTAN_SECURE_MEMORY_BUFFERS_H__} // WRAPNS_LINE#include <botan/allocate.h>namespace QCA { // WRAPNS_LINE} // WRAPNS_LINE#include <botan/mem_ops.h>namespace QCA { // WRAPNS_LINEnamespace Botan {/************************************************** Variable Length Memory Buffer                  **************************************************/template<typename T>class MemoryRegion   {   public:      u32bit size() const { return used; }      u32bit is_empty() const { return (used == 0); }      u32bit has_items() const { return (used != 0); }      operator T* () { return buf; }      operator const T* () const { return buf; }      T* begin() { return buf; }      const T* begin() const { return buf; }      T* end() { return (buf + size()); }      const T* end() const { return (buf + size()); }      bool operator==(const MemoryRegion<T>& other) const         {         return (size() == other.size() &&                 same_mem(buf, other.buf, size()));         }      bool operator<(const MemoryRegion<T>&) const;      bool operator!=(const MemoryRegion<T>& in) const         { return (!(*this == in)); }      MemoryRegion<T>& operator=(const MemoryRegion<T>& in)         { if(this != &in) set(in); return (*this); }      void copy(const T in[], u32bit n)         { copy(0, in, n); }      void copy(u32bit off, const T in[], u32bit n)         { copy_mem(buf + off, in, (n > size() - off) ? (size() - off) : n); }      void set(const T in[], u32bit n)    { create(n); copy(in, n); }      void set(const MemoryRegion<T>& in) { set(in.begin(), in.size()); }      void append(const T data[], u32bit n)         { grow_to(size()+n); copy(size() - n, data, n); }      void append(T x) { append(&x, 1); }      void append(const MemoryRegion<T>& x) { append(x.begin(), x.size()); }      void clear() { clear_mem(buf, allocated); }      void destroy() { create(0); }      void create(u32bit);      void grow_to(u32bit) const;      void swap(MemoryRegion<T>&);      ~MemoryRegion() { deallocate(buf, allocated); }   protected:      MemoryRegion() { buf = 0; alloc = 0; used = allocated = 0; }      MemoryRegion(const MemoryRegion<T>& copy)         {         buf = 0;         used = allocated = 0;         alloc = copy.alloc;         set(copy.buf, copy.used);         }      void init(bool locking, u32bit size = 0)         { alloc = Allocator::get(locking); create(size); }   private:      T* allocate(u32bit n) const { return (T*)alloc->allocate(sizeof(T)*n); }      void deallocate(T* p, u32bit n) const         { alloc->deallocate(p, sizeof(T)*n); }      mutable T* buf;      mutable u32bit used;      mutable u32bit allocated;      mutable Allocator* alloc;   };/************************************************** Create a new buffer                            **************************************************/template<typename T>void MemoryRegion<T>::create(u32bit n)   {   if(n <= allocated) { clear(); used = n; return; }   deallocate(buf, allocated);   buf = allocate(n);   allocated = used = n;   }/************************************************** Increase the size of the buffer                **************************************************/template<typename T>void MemoryRegion<T>::grow_to(u32bit n) const   {   if(n > used && n <= allocated)      {      clear_mem(buf + used, n - used);      used = n;      return;      }   else if(n > allocated)      {      T* new_buf = allocate(n);      copy_mem(new_buf, buf, used);      deallocate(buf, allocated);      buf = new_buf;      allocated = used = n;      }   }/************************************************** Compare this buffer with another one           **************************************************/template<typename T>bool MemoryRegion<T>::operator<(const MemoryRegion<T>& in) const   {   if(size() < in.size()) return true;   if(size() > in.size()) return false;   for(u32bit j = 0; j != size(); j++)      {      if(buf[j] < in[j]) return true;      if(buf[j] > in[j]) return false;      }   return false;   }/************************************************** Swap this buffer with another one              **************************************************/template<typename T>void MemoryRegion<T>::swap(MemoryRegion<T>& x)   {   std::swap(buf, x.buf);   std::swap(used, x.used);   std::swap(allocated, x.allocated);   std::swap(alloc, x.alloc);   }/************************************************** Unlocked Variable Length Buffer                **************************************************/template<typename T>class MemoryVector : public MemoryRegion<T>   {   public:      MemoryVector<T>& operator=(const MemoryRegion<T>& in)         { if(this != &in) set(in); return (*this); }      MemoryVector(u32bit n = 0) { MemoryRegion<T>::init(false, n); }      MemoryVector(const T in[], u32bit n)         { MemoryRegion<T>::init(false); set(in, n); }      MemoryVector(const MemoryRegion<T>& in)         { MemoryRegion<T>::init(false); set(in); }      MemoryVector(const MemoryRegion<T>& in1, const MemoryRegion<T>& in2)         { MemoryRegion<T>::init(false); set(in1); append(in2); }   };/************************************************** Locked Variable Length Buffer                  **************************************************/template<typename T>class SecureVector : public MemoryRegion<T>   {   public:      SecureVector<T>& operator=(const MemoryRegion<T>& in)         { if(this != &in) set(in); return (*this); }      SecureVector(u32bit n = 0) { MemoryRegion<T>::init(true, n); }      SecureVector(const T in[], u32bit n)         { MemoryRegion<T>::init(true); set(in, n); }      SecureVector(const MemoryRegion<T>& in)         { MemoryRegion<T>::init(true); set(in); }      SecureVector(const MemoryRegion<T>& in1, const MemoryRegion<T>& in2)         { MemoryRegion<T>::init(true); set(in1); append(in2); }   };/************************************************** Locked Fixed Length Buffer                     **************************************************/template<typename T, u32bit L>class SecureBuffer : public MemoryRegion<T>   {   public:      SecureBuffer<T,L>& operator=(const SecureBuffer<T,L>& in)         { if(this != &in) set(in); return (*this); }      SecureBuffer() { MemoryRegion<T>::init(true, L); }      SecureBuffer(const T in[], u32bit n)         { MemoryRegion<T>::init(true, L); copy(in, n); }   private:      SecureBuffer<T, L>& operator=(const MemoryRegion<T>& in)         { if(this != &in) set(in); return (*this); }   };}#endif} // WRAPNS_LINE

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合精品自拍| 国产乱码精品一区二区三区五月婷| 亚洲视频在线一区观看| 五月天视频一区| 国产麻豆一精品一av一免费| 91看片淫黄大片一级在线观看| 一本一本大道香蕉久在线精品| 在线精品视频免费观看| 欧美一级久久久久久久大片| 久久精品亚洲麻豆av一区二区| 国产精品久久三区| 奇米777欧美一区二区| 国产成人高清视频| 日韩限制级电影在线观看| 国产精品色哟哟网站| 亚洲成人tv网| 成人av电影在线播放| 精品国产欧美一区二区| 亚洲美女淫视频| 国产成人亚洲综合a∨婷婷| 欧美日韩视频专区在线播放| 亚洲国产成人一区二区三区| 美女视频黄a大片欧美| 成人av网站免费| 26uuu亚洲综合色| 日本女人一区二区三区| 欧美日韩亚洲综合| 一区二区三区四区五区视频在线观看| 极品美女销魂一区二区三区免费| 欧美日韩1234| 亚洲成人1区2区| 在线精品视频免费播放| 亚洲精品ww久久久久久p站| 成人综合激情网| 国产精品久久毛片av大全日韩| 国产精品资源在线看| 国产精品网站导航| 欧美亚洲国产一区二区三区| 精品99久久久久久| 久久99精品国产91久久来源| 日韩精品在线网站| 久99久精品视频免费观看| 日韩三区在线观看| 国内精品免费在线观看| 精品福利视频一区二区三区| 国产自产2019最新不卡| 国产日韩成人精品| 日韩三级中文字幕| 中文字幕中文字幕在线一区 | 制服丝袜一区二区三区| 首页欧美精品中文字幕| 欧美一区二区三区四区高清| 美国毛片一区二区三区| 久久蜜桃av一区精品变态类天堂| 国产成人夜色高潮福利影视| 亚洲欧美区自拍先锋| 欧美日韩不卡一区二区| 国产一区二区主播在线| 亚洲色图清纯唯美| 日韩欧美国产麻豆| 99视频在线观看一区三区| 亚洲风情在线资源站| 精品国精品国产尤物美女| a在线播放不卡| 日本午夜精品一区二区三区电影 | 国产精品18久久久| 性做久久久久久久久| 国产午夜精品美女毛片视频| 91福利国产精品| 国产一区二区在线观看视频| 亚洲欧美欧美一区二区三区| 精品久久久久久最新网址| 欧美日韩中文另类| 国产精品乡下勾搭老头1| 亚洲一区二区三区三| 久久久亚洲午夜电影| 欧美日韩专区在线| 日本韩国视频一区二区| 国产精品一二三四区| 午夜精品在线看| 亚洲精品视频自拍| 亚洲视频一二区| 综合分类小说区另类春色亚洲小说欧美| 欧美一区二区三区在线电影| 欧美午夜精品免费| 91网站在线播放| 91一区二区在线| 99久久99久久精品国产片果冻| 国产成人精品免费| 国产91精品在线观看| 国产剧情一区在线| 国产一区二区成人久久免费影院| 青青草国产成人99久久| 免费成人你懂的| 蜜臀av一区二区| 久久草av在线| 国产精品亚洲一区二区三区妖精 | 色www精品视频在线观看| 99久久99久久免费精品蜜臀| 99热在这里有精品免费| 91尤物视频在线观看| 91搞黄在线观看| 欧美精品一卡两卡| 久久婷婷成人综合色| 国产精品无遮挡| 亚洲最色的网站| 日本vs亚洲vs韩国一区三区 | 一本色道久久综合亚洲91| 国产精品18久久久久久vr| 91香蕉视频污在线| 3d动漫精品啪啪一区二区竹菊| 欧美精三区欧美精三区| 久久免费偷拍视频| 亚洲三级免费电影| 卡一卡二国产精品 | 欧美成人猛片aaaaaaa| 国产午夜精品久久久久久免费视 | 亚洲国产成人tv| 狠狠色综合播放一区二区| 成人黄动漫网站免费app| 欧美性xxxxxx少妇| 久久综合九色综合欧美98 | 国产精品亚洲专一区二区三区| 色综合一个色综合| 欧美v日韩v国产v| 17c精品麻豆一区二区免费| 久久精品二区亚洲w码| 精品视频在线看| 精品国产髙清在线看国产毛片 | 亚洲va韩国va欧美va精品| 丁香一区二区三区| 91精品国产色综合久久| 亚洲一区二区美女| 91色九色蝌蚪| 亚洲天堂精品在线观看| 国产精品亚洲人在线观看| 日韩精品一区在线观看| 亚洲国产精品麻豆| 91国偷自产一区二区三区观看| 国产精品伦一区| 国产精品综合一区二区三区| 91精品国产品国语在线不卡| 五月天久久比比资源色| 91.com在线观看| 久久 天天综合| 欧美大白屁股肥臀xxxxxx| 婷婷六月综合网| 日韩视频在线一区二区| 奇米精品一区二区三区四区| 欧美一区二区三区成人| 色丁香久综合在线久综合在线观看| 国产精品免费av| 97超碰欧美中文字幕| 亚洲精品久久7777| 欧美色老头old∨ideo| 青椒成人免费视频| 日韩精品一区二区三区四区| 精品一区二区免费| 国产日韩欧美综合在线| 成人免费va视频| 亚洲高清视频的网址| 欧美一级免费观看| 国产精品一区久久久久| 日韩理论片在线| 欧美日韩国产中文| 国产真实乱对白精彩久久| 国产日韩av一区二区| 色综合色综合色综合色综合色综合| 一区二区三区视频在线看| 6080日韩午夜伦伦午夜伦| 国产在线精品一区二区夜色| 国产精品久久久久一区二区三区 | 日韩欧美卡一卡二| av在线不卡网| 丝袜亚洲另类欧美综合| 国产精品全国免费观看高清| 欧美精品xxxxbbbb| 处破女av一区二区| 日本vs亚洲vs韩国一区三区 | 亚洲成人av在线电影| 国产欧美一区二区精品性色 | 91精品国产色综合久久久蜜香臀| 国产.欧美.日韩| 国产精品综合二区| 亚洲国产精品影院| 成人欧美一区二区三区在线播放| 欧美xxxx老人做受| 欧美日韩mp4| 欧美日韩国产另类一区| 91麻豆精东视频| 成人黄色片在线观看| 韩国一区二区视频| 蜜桃视频一区二区三区在线观看 | 国产一区二区看久久| 午夜电影网一区| 亚洲午夜免费电影| 伊人开心综合网| 亚洲欧美日韩系列| 亚洲婷婷在线视频| 亚洲人妖av一区二区|