| # 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. |
| """ |