Subversion Repositories pub

Compare Revisions

Ignore whitespace Rev 182 → Rev 183

/relevation/ext/cryptopy-1.2.5.patched/crypto/hash/hash.py
0,0 → 1,36
""" crypto.cipher.hash
Base class for cryptographic hash algorithms
An alternate interface (no 'new').
Copyright © (c) 2002 by Paul A. Lambert.
"""
from binascii import b2a_hex
 
class Hash:
def __init__( self ):
raise 'must overload'
def reset(self):
raise 'must overload'
def __call__(self, data, more=None):
return self.hash(data,more)
def hash(self,data,more=None):
self.update(data)
digest = self.digest()
if more==None:
self.reset() # no more data, reset
return digest
def update(self,data):
""" Update the hash object with the data. Repeated calls are
equivalent to a single call with the concatenation of all the
arguments: m.update(a); m.update(b) is equivalent to m.update(a+b).
"""
raise 'must overload'
def digest(self):
raise 'must overload'
def final(self,data):
return self.hash(data)
def hexdigest(self):
""" Return the digest of the data in ascii-hex format """
return b2a_hex(self.digest())
# def hexdigest(self): not supported yet
# def copy(self): not supported yet ... may change