diff options
Diffstat (limited to 'chromium/third_party/libjingle/source/talk/base/helpers.cc')
-rw-r--r-- | chromium/third_party/libjingle/source/talk/base/helpers.cc | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/chromium/third_party/libjingle/source/talk/base/helpers.cc b/chromium/third_party/libjingle/source/talk/base/helpers.cc index b10a3f742a7..691a8131f84 100644 --- a/chromium/third_party/libjingle/source/talk/base/helpers.cc +++ b/chromium/third_party/libjingle/source/talk/base/helpers.cc @@ -29,6 +29,7 @@ #include <limits> +#if defined(FEATURE_ENABLE_SSL) #include "talk/base/sslconfig.h" #if defined(SSL_USE_OPENSSL) #include <openssl/rand.h> @@ -40,7 +41,8 @@ #include <windows.h> #include <ntsecapi.h> #endif // WIN32 -#endif +#endif // else +#endif // FEATURE_ENABLED_SSL #include "talk/base/base64.h" #include "talk/base/basictypes.h" @@ -153,6 +155,28 @@ class SecureRandomGenerator : public RandomGenerator { RtlGenRandomProc rtl_gen_random_; }; +#elif !defined(FEATURE_ENABLE_SSL) + +// No SSL implementation -- use rand() +class SecureRandomGenerator : public RandomGenerator { + public: + virtual bool Init(const void* seed, size_t len) { + if (len >= 4) { + srand(*reinterpret_cast<const int*>(seed)); + } else { + srand(*reinterpret_cast<const char*>(seed)); + } + return true; + } + virtual bool Generate(void* buf, size_t len) { + char* bytes = reinterpret_cast<char*>(buf); + for (size_t i = 0; i < len; ++i) { + bytes[i] = static_cast<char>(rand()); + } + return true; + } +}; + #else #error No SSL implementation has been selected! |