jumpserver/apps/common/sdk/gm/piico/digest.py

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()