Merge pull request #728 from embray/patch-1

Fixes a serious bug in Random.byte
This commit is contained in:
Moisés Guimarães
2017-02-01 21:07:20 -03:00
committed by GitHub

View File

@@ -46,23 +46,23 @@ class Random(object):
"""
Generate and return a random byte.
"""
result = t2b("\0")
result = _ffi.new('byte[1]')
ret = _lib.wc_RNG_GenerateByte(self.native_object, result)
if ret < 0:
raise WolfCryptError("RNG generate byte error (%d)" % ret)
return result
return _ffi.buffer(result, 1)[:]
def bytes(self, length):
"""
Generate and return a random sequence of length bytes.
"""
result = t2b("\0" * length)
result = _ffi.new('byte[%d]' % length)
ret = _lib.wc_RNG_GenerateBlock(self.native_object, result, length)
if ret < 0:
raise WolfCryptError("RNG generate block error (%d)" % ret)
return result
return _ffi.buffer(result, length)[:]