aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-04 09:18:10 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-04 09:18:10 -0600
commit8d4d9ff129e12bd02f0a88ddb359cf228bcf1e4e (patch)
tree4e07a13ce0ef2a4a2aace171abb62c517e6d0db7
parentb930b1289a5ba729c26a8fd25daddc90f497ddf9 (diff)
downloadcryptography-8d4d9ff129e12bd02f0a88ddb359cf228bcf1e4e.tar.gz
cryptography-8d4d9ff129e12bd02f0a88ddb359cf228bcf1e4e.tar.bz2
cryptography-8d4d9ff129e12bd02f0a88ddb359cf228bcf1e4e.zip
cryptgenrandom returns all requested bytes or errors, so no loop required
-rw-r--r--cryptography/hazmat/bindings/openssl/osrand_engine.py13
1 files changed, 3 insertions, 10 deletions
diff --git a/cryptography/hazmat/bindings/openssl/osrand_engine.py b/cryptography/hazmat/bindings/openssl/osrand_engine.py
index 2313a61f..4163668b 100644
--- a/cryptography/hazmat/bindings/openssl/osrand_engine.py
+++ b/cryptography/hazmat/bindings/openssl/osrand_engine.py
@@ -48,20 +48,13 @@ static int osrandom_init(ENGINE *e) {
}
static int osrandom_rand_bytes(unsigned char *buffer, int size) {
- size_t chunk;
-
if (hCryptProv == 0) {
return 0;
}
- while (size > 0) {
- chunk = size;
- if (!CryptGenRandom(hCryptProv, (DWORD)chunk, buffer)) {
- ERR_put_error(ERR_LIB_RAND, 0, ERR_R_RAND_LIB, "osrandom.py", 0);
- return 0;
- }
- buffer += chunk;
- size -= chunk;
+ if (!CryptGenRandom(hCryptProv, (DWORD)size, buffer)) {
+ ERR_put_error(ERR_LIB_RAND, 0, ERR_R_RAND_LIB, "osrandom.py", 0);
+ return 0;
}
return 1;
}