# This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.

from cryptography.utils import Buffer

class Cobblestone128Encryptor:
    def __init__(self, key: Buffer, context: Buffer) -> None: ...
    @staticmethod
    def generate_key() -> bytes: ...
    def update(self, data: Buffer) -> bytes: ...
    def update_into(self, data: Buffer, buf: Buffer) -> int: ...
    def finalize(self) -> bytes: ...

class Cobblestone128Decryptor:
    def __init__(self, key: Buffer, context: Buffer) -> None: ...
    def update(self, data: Buffer) -> bytes: ...
    def update_into(self, data: Buffer, buf: Buffer) -> int: ...
    def finalize(self) -> bytes: ...

class Cobblestone256Encryptor:
    def __init__(self, key: Buffer, context: Buffer) -> None: ...
    @staticmethod
    def generate_key() -> bytes: ...
    def update(self, data: Buffer) -> bytes: ...
    def update_into(self, data: Buffer, buf: Buffer) -> int: ...
    def finalize(self) -> bytes: ...

class Cobblestone256Decryptor:
    def __init__(self, key: Buffer, context: Buffer) -> None: ...
    def update(self, data: Buffer) -> bytes: ...
    def update_into(self, data: Buffer, buf: Buffer) -> int: ...
    def finalize(self) -> bytes: ...
