'Return a copy ("clone") of the MAC object.
The copy will have the same internal state as the original MAC
object.
This can be used to efficiently compute the MAC of strings that
share a common initial substring.
:Returns: An `HMAC` object'

def copy(self):

    other = HMAC(b(''))
    other.digestmod = self.digestmod
    other.inner = self.inner.copy()
    other.outer = self.outer.copy()
    return other
