| 102 | |
| 103 | |
| 104 | void random_bytes (unsigned char* buffer, size_t len) |
| 105 | { |
| 106 | if (RAND_bytes(buffer, len) != 1) { |
| 107 | std::ostringstream message; |
| 108 | while (unsigned long code = ERR_get_error()) { |
| 109 | char error_string[120]; |
| 110 | ERR_error_string_n(code, error_string, sizeof(error_string)); |
| 111 | message << "OpenSSL Error: " << error_string << "; "; |
| 112 | } |
| 113 | throw Crypto_error("random_bytes", message.str()); |
| 114 | } |
| 115 | } |