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