update ripemd module for python3
This commit is contained in:
parent
4df5997940
commit
227a553a99
|
@ -279,9 +279,8 @@ def hash_160(public_key):
|
|||
md = hashlib.new('ripemd160')
|
||||
md.update(sha256(public_key))
|
||||
return md.digest()
|
||||
except Exception:
|
||||
# not available in Android SL4a
|
||||
import ripemd
|
||||
except BaseException:
|
||||
from . import ripemd
|
||||
md = ripemd.new(sha256(public_key))
|
||||
return md.digest()
|
||||
|
||||
|
|
|
@ -37,12 +37,6 @@
|
|||
## * ftp://ftp.rsasecurity.com/pub/cryptobytes/crypto3n2.pdf
|
||||
## */
|
||||
|
||||
try:
|
||||
import psyco
|
||||
psyco.full()
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
#block_size = 1
|
||||
digest_size = 20
|
||||
digestsize = 20
|
||||
|
@ -77,7 +71,7 @@ class RIPEMD160:
|
|||
dig = self.digest()
|
||||
hex_digest = ''
|
||||
for d in dig:
|
||||
hex_digest += '%02x' % ord(d)
|
||||
hex_digest += '%02x' % d
|
||||
return hex_digest
|
||||
|
||||
def copy(self):
|
||||
|
@ -155,7 +149,7 @@ import struct
|
|||
def RMD160Transform(state, block): #uint32 state[5], uchar block[64]
|
||||
x = [0]*16
|
||||
if sys.byteorder == 'little':
|
||||
x = struct.unpack('<16L', ''.join([chr(x) for x in block[0:64]]))
|
||||
x = struct.unpack('<16L', bytes([x for x in block[0:64]]))
|
||||
else:
|
||||
raise "Error!!"
|
||||
a = state[0]
|
||||
|
@ -362,13 +356,13 @@ def RMD160Update(ctx, inp, inplen):
|
|||
if type(inp) == str:
|
||||
inp = [ord(i)&0xff for i in inp]
|
||||
|
||||
have = (ctx.count / 8) % 64
|
||||
have = (ctx.count // 8) % 64
|
||||
need = 64 - have
|
||||
ctx.count += 8 * inplen
|
||||
off = 0
|
||||
if inplen >= need:
|
||||
if have:
|
||||
for i in xrange(need):
|
||||
for i in range(need):
|
||||
ctx.buffer[have+i] = inp[i]
|
||||
RMD160Transform(ctx.state, ctx.buffer)
|
||||
off = need
|
||||
|
@ -378,12 +372,12 @@ def RMD160Update(ctx, inp, inplen):
|
|||
off += 64
|
||||
if off < inplen:
|
||||
# memcpy(ctx->buffer + have, input+off, len-off);
|
||||
for i in xrange(inplen - off):
|
||||
for i in range(inplen - off):
|
||||
ctx.buffer[have+i] = inp[off+i]
|
||||
|
||||
def RMD160Final(ctx):
|
||||
size = struct.pack("<Q", ctx.count)
|
||||
padlen = 64 - ((ctx.count / 8) % 64)
|
||||
padlen = 64 - ((ctx.count // 8) % 64)
|
||||
if padlen < 1+8:
|
||||
padlen += 64
|
||||
RMD160Update(ctx, PADDING, padlen-8)
|
||||
|
@ -392,8 +386,8 @@ def RMD160Final(ctx):
|
|||
|
||||
|
||||
assert '37f332f68db77bd9d7edd4969571ad671cf9dd3b' == \
|
||||
new('The quick brown fox jumps over the lazy dog').hexdigest()
|
||||
new(b'The quick brown fox jumps over the lazy dog').hexdigest()
|
||||
assert '132072df690933835eb8b6ad0b77e7b6f14acad7' == \
|
||||
new('The quick brown fox jumps over the lazy cog').hexdigest()
|
||||
new(b'The quick brown fox jumps over the lazy cog').hexdigest()
|
||||
assert '9c1185a5c5e9fc54612808977ee8f548b2258d31' == \
|
||||
new('').hexdigest()
|
||||
|
|
Loading…
Reference in New Issue