Don't use self.__class__
diff --git a/cryptography/hazmat/bindings/openssl/backend.py b/cryptography/hazmat/bindings/openssl/backend.py
index 60d5130..4d1be3b 100644
--- a/cryptography/hazmat/bindings/openssl/backend.py
+++ b/cryptography/hazmat/bindings/openssl/backend.py
@@ -344,7 +344,7 @@
copied_ctx, self._ctx
)
assert res != 0
- return self.__class__(
+ return _HMACContext(
self._backend, self._key, self.algorithm, ctx=copied_ctx
)
diff --git a/cryptography/hazmat/primitives/hmac.py b/cryptography/hazmat/primitives/hmac.py
index 27bc0fe..57a908c 100644
--- a/cryptography/hazmat/primitives/hmac.py
+++ b/cryptography/hazmat/primitives/hmac.py
@@ -43,7 +43,7 @@
self._ctx.update(msg)
def copy(self):
- return self.__class__(
+ return HMAC(
self._key, self.algorithm, ctx=self._ctx.copy(),
backend=self._backend
)