"""Crypto monomers — hash_sha256 real, rest stubs."""

import hashlib

_STUB = "Extended monomer stub"


def hash_sha256(data: bytes | str) -> str:
    if isinstance(data, str):
        data = data.encode("utf-8")
    return hashlib.sha256(data).hexdigest()


def encrypt(data: bytes, key: bytes) -> bytes:
    raise NotImplementedError(_STUB)


def decrypt(data: bytes, key: bytes) -> bytes:
    raise NotImplementedError(_STUB)


def sign(data: bytes, key: bytes) -> bytes:
    raise NotImplementedError(_STUB)


def verify(data: bytes, signature: bytes, key: bytes) -> bool:
    raise NotImplementedError(_STUB)


def rng(n: int) -> bytes:
    raise NotImplementedError(_STUB)


def derive(key: bytes, salt: bytes) -> bytes:
    raise NotImplementedError(_STUB)


def seal(data: bytes, key: bytes) -> bytes:
    raise NotImplementedError(_STUB)
