mirror of https://github.com/jumpserver/jumpserver
33 lines
716 B
Python
33 lines
716 B
Python
|
hash_alg_id = {
|
||
|
"sm3": 0x00000001,
|
||
|
"sha1": 0x00000002,
|
||
|
"sha256": 0x00000004,
|
||
|
"sha512": 0x00000008,
|
||
|
}
|
||
|
|
||
|
|
||
|
class Digest:
|
||
|
|
||
|
def __init__(self, session, alg_name="sm3"):
|
||
|
if hash_alg_id[alg_name] is None:
|
||
|
raise Exception("unsupported hash alg {}".format(alg_name))
|
||
|
|
||
|
self._alg_name = alg_name
|
||
|
self._session = session
|
||
|
self.__init_hash()
|
||
|
|
||
|
def __init_hash(self):
|
||
|
self._session.hash_init(hash_alg_id[self._alg_name])
|
||
|
|
||
|
def update(self, data):
|
||
|
self._session.hash_update(data)
|
||
|
|
||
|
def final(self):
|
||
|
return self._session.hash_final()
|
||
|
|
||
|
def reset(self):
|
||
|
self.__init_hash()
|
||
|
|
||
|
def destroy(self):
|
||
|
self._session.close()
|