Beispiel #1
0
 def test_all(self):
     for test in ['', 'a', 'b', 'abc', 'abc'*50, 'hello world']:
         #print test
         #print sha256.sha256(test).hexdigest()
         #print hashlib.sha256(test).hexdigest()
         #print
         assert sha256.sha256(test).hexdigest() == hashlib.sha256(test).hexdigest()
     def random_str(l):
         return ''.join(chr(random.randrange(256)) for i in xrange(l))
     for length in xrange(150):
         test = random_str(length)
         a = sha256.sha256(test).hexdigest()
         b = hashlib.sha256(test).hexdigest()
         assert a == b
     for i in xrange(100):
         test = random_str(int(random.expovariate(1/100)))
         test2 = random_str(int(random.expovariate(1/100)))
         
         a = sha256.sha256(test)
         a = a.copy()
         a.update(test2)
         a = a.hexdigest()
         
         b = hashlib.sha256(test)
         b = b.copy()
         b.update(test2)
         b = b.hexdigest()
         assert a == b
Beispiel #2
0
def prefix_to_hash_link(prefix, const_ending=''):
    assert prefix.endswith(const_ending), (prefix, const_ending)
    x = sha256.sha256(prefix)
    return dict(state=x.state,
                extra_data=x.buf[:max(0,
                                      len(x.buf) - len(const_ending))],
                length=x.length // 8)
Beispiel #3
0
def check_hash_link(hash_link, data, const_ending=''):
    extra_length = hash_link['length'] % (512 // 8)
    assert len(hash_link['extra_data']) == max(
        0, extra_length - len(const_ending))
    extra = (hash_link['extra_data'] +
             const_ending)[len(hash_link['extra_data']) + len(const_ending) -
                           extra_length:]
    assert len(extra) == extra_length
    return pack.IntType(256).unpack(
        hashlib.sha256(
            sha256.sha256(data, (hash_link['state'], extra,
                                 8 * hash_link['length'])).digest()).digest())
Beispiel #4
0
def check_hash_link(hash_link, data, const_ending=''):
    extra_length = hash_link['length'] % (512//8)
    assert len(hash_link['extra_data']) == max(0, extra_length - len(const_ending))
    extra = (hash_link['extra_data'] + const_ending)[len(hash_link['extra_data']) + len(const_ending) - extra_length:]
    assert len(extra) == extra_length
    return pack.IntType(256).unpack(hashlib.sha256(sha256.sha256(data, (hash_link['state'], extra, 8*hash_link['length'])).digest()).digest())
Beispiel #5
0
def prefix_to_hash_link(prefix, const_ending=''):
    assert prefix.endswith(const_ending), (prefix, const_ending)
    x = sha256.sha256(prefix)
    return dict(state=x.state, extra_data=x.buf[:max(0, len(x.buf)-len(const_ending))], length=x.length//8)