- try {
- size_t bytesRead = mReader().read(data, length);
- if (bytesRead != length) { // short read (shouldn't happen)
- Syslog::error("DevRandomGenerator: wanted %ld got %ld bytes",
- length, bytesRead);
- UnixError::throwMe(EIO);
- }
- } catch(const UnixError &uerr) {
- Syslog::error("DevRandomGenerator: error %d reading /dev/random",
- uerr.error);
- throw;
- }
+ if (CCRandomCopyBytes(kCCRandomDefault, data, length)) {
+ Syslog::error("DevRandomGenerator: failed to generate random");
+ UnixError::throwMe(EIO);
+ }