# 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 absolute_import, division, print_function import abc import six @six.add_metaclass(abc.ABCMeta) class MACContext(object): @abc.abstractmethod def update(self, data): """ Processes the provided bytes. """ @abc.abstractmethod def finalize(self): """ Returns the message authentication code as bytes. """ @abc.abstractmethod def copy(self): """ Return a MACContext that is a copy of the current context. """ @abc.abstractmethod def verify(self, signature): """ Checks if the generated message authentication code matches the signature. """