HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //opt/imunify360/venv/lib64/python3.11/site-packages/cryptography/hazmat/primitives/kdf/__init__.py
# 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 __future__ import annotations

import abc


class KeyDerivationFunction(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def derive(self, key_material: bytes) -> bytes:
        """
        Deterministically generates and returns a new key based on the existing
        key material.
        """

    @abc.abstractmethod
    def verify(self, key_material: bytes, expected_key: bytes) -> None:
        """
        Checks whether the key generated by the key material matches the
        expected derived key. Raises an exception if they do not match.
        """