You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
769 B
35 lines
769 B
10 months ago
|
import importlib
|
||
|
if importlib.util.find_spec('hashlib') != None:
|
||
|
import hashlib
|
||
|
else:
|
||
|
hashlib = None
|
||
|
|
||
|
if hasattr(hashlib, "sha512"):
|
||
|
from hashlib import sha512 as ext_sha512
|
||
|
else:
|
||
|
from .SHA512 import sha512 as ext_sha512
|
||
|
|
||
|
if hasattr(hashlib, "sha256"):
|
||
|
from hashlib import sha256 as ext_sha256
|
||
|
else:
|
||
|
from .SHA256 import sha256 as ext_sha256
|
||
|
|
||
|
"""
|
||
|
The SHA primitives are abstracted here to allow platform-
|
||
|
aware hardware acceleration in the future. Currently only
|
||
|
uses Python's internal SHA-256 implementation. All SHA-256
|
||
|
calls in RNS end up here.
|
||
|
"""
|
||
|
|
||
|
def sha256(data):
|
||
|
digest = ext_sha256()
|
||
|
digest.update(data)
|
||
|
|
||
|
return digest.digest()
|
||
|
|
||
|
def sha512(data):
|
||
|
digest = ext_sha512()
|
||
|
digest.update(data)
|
||
|
|
||
|
return digest.digest()
|