diff options
author | weidai <weidai11@users.noreply.github.com> | 2006-12-13 04:08:09 +0000 |
---|---|---|
committer | weidai <weidai11@users.noreply.github.com> | 2006-12-13 04:08:09 +0000 |
commit | 5766de54efd991ee4de896e658abfb95f7872276 (patch) | |
tree | 8f14443db57670fc9e6b3e4ff3a4bbc396740916 /osrng.cpp | |
parent | 5184d7c8f3e63a9af63ad7f731241b8ef9d06f2d (diff) | |
download | cryptopp-git-5766de54efd991ee4de896e658abfb95f7872276.tar.gz |
fix BlockingRng for OpenBSD
Diffstat (limited to 'osrng.cpp')
-rw-r--r-- | osrng.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -101,11 +101,19 @@ void NonblockingRng::GenerateBlock(byte *output, size_t size) #ifdef BLOCKING_RNG_AVAILABLE +#ifndef CRYPTOPP_BLOCKING_RNG_FILENAME +#ifdef __OpenBSD__ +#define CRYPTOPP_BLOCKING_RNG_FILENAME "/dev/srandom" +#else +#define CRYPTOPP_BLOCKING_RNG_FILENAME "/dev/random" +#endif +#endif + BlockingRng::BlockingRng() { - m_fd = open("/dev/random",O_RDONLY); + m_fd = open(CRYPTOPP_BLOCKING_RNG_FILENAME,O_RDONLY); if (m_fd == -1) - throw OS_RNG_Err("open /dev/random"); + throw OS_RNG_Err("open " CRYPTOPP_BLOCKING_RNG_FILENAME); } BlockingRng::~BlockingRng() @@ -128,7 +136,7 @@ void BlockingRng::GenerateBlock(byte *output, size_t size) // are available, on others it will returns immediately ssize_t len = read(m_fd, output, size); if (len < 0) - throw OS_RNG_Err("read /dev/random"); + throw OS_RNG_Err("read " CRYPTOPP_BLOCKING_RNG_FILENAME); size -= len; output += len; if (size) |