⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse.cpp

📁 含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种CheckSum校验、多种MAC校验等几十种加密算法的程序
💻 CPP
字号:
/************************************************** Parsing Functions Source File                  ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/util.h>#include <botan/exceptn.h>namespace Botan {/************************************************** Parse a SCAN-style algorithm name              **************************************************/std::vector<std::string> parse_algorithm_name(const std::string& namex)   {   if(namex.find('(') == std::string::npos &&      namex.find(')') == std::string::npos)      return std::vector<std::string>(1, namex);   std::string name = namex, substring;   std::vector<std::string> elems;   std::string::const_iterator i;   u32bit level = 0;   elems.push_back(name.substr(0, name.find('(')));   name = name.substr(name.find('('));   for(i = name.begin(); i != name.end(); i++)      {      char c = *i;      if(c == '(')         level++;      if(c == ')')         {         if(level == 1 && i == name.end() - 1)            {            if(elems.size() == 1)               elems.push_back(substring.substr(1));            else               elems.push_back(substring);            return elems;            }         if(level == 0 || (level == 1 && i != name.end() - 1))            throw Invalid_Algorithm_Name(namex);         level--;         }      if(c == ',' && level == 1)         {         if(elems.size() == 1)            elems.push_back(substring.substr(1));         else            elems.push_back(substring);         substring = "";         }      else         substring += c;      }   if(substring != "")      throw Invalid_Algorithm_Name(namex);   return elems;   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -