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

📄 rng_seed.cpp

📁 含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种CheckSum校验、多种MAC校验等几十种加密算法的程序
💻 CPP
字号:
/************************************************** Global RNG Seeding Source File                 ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/rng.h>#include <botan/es_file.h>#if defined(BOTAN_EXT_ENTROPY_SRC_UNIX)  #include <botan/es_unix.h>#endif#if defined(BOTAN_EXT_ENTROPY_SRC_FTW)  #include <botan/es_ftw.h>#endif#if defined(BOTAN_EXT_ENTROPY_SRC_EGD)  #include <botan/es_egd.h>#endifnamespace Botan {namespace {/************************************************** Try to do a poll on an EntropySource           **************************************************/bool poll_es(EntropySource& es, u32bit buf_size = 256)   {   SecureVector<byte> buffer(buf_size);   u32bit got = es.slow_poll(buffer, buffer.size());   Global_RNG::add_entropy(buffer, got);   return (got > (buffer.size() / 2));   }}namespace Global_RNG {/************************************************** Seed the global RNG                            **************************************************/bool seed(u32bit level, const std::string& egd_path)   {   if(level > 2)      level = 2;   bool seeded = false;   File_EntropySource es_file;   seeded = poll_es(es_file, 512);   if(level == 0 || (seeded && level == 1))      return seeded;   if(egd_path != "")      {#if defined(BOTAN_EXT_ENTROPY_SRC_EGD)      EGD_EntropySource es_egd(egd_path);      seeded = poll_es(es_egd) || seeded;#endif      }   if(level == 1 || (seeded && level == 2))      return seeded;#if defined(BOTAN_EXT_ENTROPY_SRC_UNIX)   Unix_EntropySource es_unix;   seeded = poll_es(es_unix) || seeded;#endif#if defined(BOTAN_EXT_ENTROPY_SRC_FTW)   FTW_EntropySource es_ftw;   seeded = poll_es(es_ftw) || seeded;#endif   return seeded;   }}}

⌨️ 快捷键说明

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