"""
Auto-generated Python stub file from hashlib.__sha256.py
Module: hashlib.__sha256
"""


import t, c

SHA256_BLOCK_LEN:  t.CDefine = 64
SHA256_DIGEST_LEN: t.CDefine = 32
sha256_K: t.CExtern | t.CArray[t.CUInt32T, 64]

def s0(x: t.CUInt32T) -> t.CUInt32T: pass

def s1(x: t.CUInt32T) -> t.CUInt32T: pass

def S0(x: t.CUInt32T) -> t.CUInt32T: pass

def S1(x: t.CUInt32T) -> t.CUInt32T: pass

def Ch(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass

def Maj(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass


@t.Object
class sha256:
    state: t.CArray[t.CUInt32T, 8]
    count: t.CUInt64T
    buf: t.CArray[t.CUInt8T, SHA256_BLOCK_LEN]
    def __init__(self: sha256) -> t.CInt: pass
    def transform(self: sha256, block: t.CUInt8T | t.CPtr) -> t.CInt: pass
    def update(self: sha256, s: str) -> t.CInt: pass
    def final(self: sha256, out: t.CArray[t.CUInt8T, SHA256_DIGEST_LEN]) -> t.CInt: pass