move asymmetric padding interface to primitives.asymmetric.padding
diff --git a/docs/hazmat/backends/interfaces.rst b/docs/hazmat/backends/interfaces.rst
index 407140b..0ce8f5f 100644
--- a/docs/hazmat/backends/interfaces.rst
+++ b/docs/hazmat/backends/interfaces.rst
@@ -244,7 +244,7 @@
         Check if the specified ``padding`` is supported by the backend.
 
         :param padding: An instance of an
-            :class:`~cryptography.hazmat.primitives.interfaces.AsymmetricPadding`
+            :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
             provider.
 
         :returns: ``True`` if the specified ``padding`` is supported by this
diff --git a/docs/hazmat/primitives/asymmetric/rsa.rst b/docs/hazmat/primitives/asymmetric/rsa.rst
index 4855a45..19b716e 100644
--- a/docs/hazmat/primitives/asymmetric/rsa.rst
+++ b/docs/hazmat/primitives/asymmetric/rsa.rst
@@ -186,7 +186,13 @@
 Padding
 ~~~~~~~
 
-.. currentmodule:: cryptography.hazmat.primitives.asymmetric.padding
+.. module:: cryptography.hazmat.primitives.asymmetric.padding
+
+.. class:: AsymmetricPadding
+
+    .. versionadded:: 0.2
+
+    .. attribute:: name
 
 .. class:: PSS(mgf, salt_length)
 
@@ -425,7 +431,7 @@
         Sign data which can be verified later by others using the public key.
 
         :param padding: An instance of a
-            :class:`~cryptography.hazmat.primitives.interfaces.AsymmetricPadding`
+            :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
             provider.
 
         :param algorithm: An instance of a
@@ -444,7 +450,7 @@
         :param bytes ciphertext: The ciphertext to decrypt.
 
         :param padding: An instance of an
-            :class:`~cryptography.hazmat.primitives.interfaces.AsymmetricPadding`
+            :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
             provider.
 
         :return bytes: Decrypted data.
@@ -495,7 +501,7 @@
         :param bytes signature: The signature to verify.
 
         :param padding: An instance of a
-            :class:`~cryptography.hazmat.primitives.interfaces.AsymmetricPadding`
+            :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
             provider.
 
         :param algorithm: An instance of a
@@ -514,7 +520,7 @@
         :param bytes plaintext: The plaintext to encrypt.
 
         :param padding: An instance of a
-            :class:`~cryptography.hazmat.primitives.interfaces.AsymmetricPadding`
+            :class:`~cryptography.hazmat.primitives.asymmetric.padding.AsymmetricPadding`
             provider.
 
         :return bytes: Encrypted data.
diff --git a/docs/hazmat/primitives/interfaces.rst b/docs/hazmat/primitives/interfaces.rst
index 67c6b3d..2d40352 100644
--- a/docs/hazmat/primitives/interfaces.rst
+++ b/docs/hazmat/primitives/interfaces.rst
@@ -44,11 +44,8 @@
             not validate.
 
 
-.. class:: AsymmetricPadding
-
-    .. versionadded:: 0.2
-
-    .. attribute:: name
+In 0.8 the asymmetric padding interface was moved to the
+:mod:`cryptography.hazmat.primitives.asymmetric.padding` module.
 
 DSA
 ~~~
diff --git a/src/cryptography/hazmat/backends/openssl/rsa.py b/src/cryptography/hazmat/backends/openssl/rsa.py
index 310b994..a4bb283 100644
--- a/src/cryptography/hazmat/backends/openssl/rsa.py
+++ b/src/cryptography/hazmat/backends/openssl/rsa.py
@@ -13,7 +13,7 @@
 from cryptography.hazmat.primitives import hashes, interfaces
 from cryptography.hazmat.primitives.asymmetric import rsa
 from cryptography.hazmat.primitives.asymmetric.padding import (
-    MGF1, OAEP, PKCS1v15, PSS
+    AsymmetricPadding, MGF1, OAEP, PKCS1v15, PSS
 )
 from cryptography.hazmat.primitives.interfaces import (
     RSAPrivateKeyWithNumbers, RSAPublicKeyWithNumbers
@@ -34,7 +34,7 @@
 
 
 def _enc_dec_rsa(backend, key, data, padding):
-    if not isinstance(padding, interfaces.AsymmetricPadding):
+    if not isinstance(padding, AsymmetricPadding):
         raise TypeError("Padding must be an instance of AsymmetricPadding.")
 
     if isinstance(padding, PKCS1v15):
@@ -150,9 +150,8 @@
         self._backend = backend
         self._private_key = private_key
 
-        if not isinstance(padding, interfaces.AsymmetricPadding):
-            raise TypeError(
-                "Expected provider of interfaces.AsymmetricPadding.")
+        if not isinstance(padding, AsymmetricPadding):
+            raise TypeError("Expected provider of AsymmetricPadding.")
 
         self._pkey_size = self._backend._lib.EVP_PKEY_size(
             self._private_key._evp_pkey
@@ -339,9 +338,8 @@
         self._public_key = public_key
         self._signature = signature
 
-        if not isinstance(padding, interfaces.AsymmetricPadding):
-            raise TypeError(
-                "Expected provider of interfaces.AsymmetricPadding.")
+        if not isinstance(padding, AsymmetricPadding):
+            raise TypeError("Expected provider of AsymmetricPadding.")
 
         self._pkey_size = self._backend._lib.EVP_PKEY_size(
             self._public_key._evp_pkey
diff --git a/src/cryptography/hazmat/primitives/asymmetric/padding.py b/src/cryptography/hazmat/primitives/asymmetric/padding.py
index d0c3ead..c796d8e 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/padding.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/padding.py
@@ -4,18 +4,29 @@
 
 from __future__ import absolute_import, division, print_function
 
+import abc
+
 import six
 
 from cryptography import utils
-from cryptography.hazmat.primitives import hashes, interfaces
+from cryptography.hazmat.primitives import hashes
 
 
-@utils.register_interface(interfaces.AsymmetricPadding)
+@six.add_metaclass(abc.ABCMeta)
+class AsymmetricPadding(object):
+    @abc.abstractproperty
+    def name(self):
+        """
+        A string naming this padding (e.g. "PSS", "PKCS1").
+        """
+
+
+@utils.register_interface(AsymmetricPadding)
 class PKCS1v15(object):
     name = "EMSA-PKCS1-v1_5"
 
 
-@utils.register_interface(interfaces.AsymmetricPadding)
+@utils.register_interface(AsymmetricPadding)
 class PSS(object):
     MAX_LENGTH = object()
     name = "EMSA-PSS"
@@ -33,7 +44,7 @@
         self._salt_length = salt_length
 
 
-@utils.register_interface(interfaces.AsymmetricPadding)
+@utils.register_interface(AsymmetricPadding)
 class OAEP(object):
     name = "EME-OAEP"
 
diff --git a/src/cryptography/hazmat/primitives/interfaces/__init__.py b/src/cryptography/hazmat/primitives/interfaces/__init__.py
index 5de7fb8..75426aa 100644
--- a/src/cryptography/hazmat/primitives/interfaces/__init__.py
+++ b/src/cryptography/hazmat/primitives/interfaces/__init__.py
@@ -9,9 +9,12 @@
 import six
 
 from cryptography import utils
-from cryptography.hazmat.primitives import ciphers, hashes, padding
-from cryptography.hazmat.primitives.asymmetric import dsa, ec, rsa
+from cryptography.hazmat.primitives import ciphers, hashes
+from cryptography.hazmat.primitives.asymmetric import (
+    dsa, ec, padding, rsa
+)
 from cryptography.hazmat.primitives.ciphers import modes
+from cryptography.hazmat.primitives.padding import PaddingContext
 
 
 BlockCipherAlgorithm = utils.deprecated(
@@ -241,7 +244,7 @@
 
 
 PaddingContext = utils.deprecated(
-    padding.PaddingContext,
+    PaddingContext,
     __name__,
     (
         "The PaddingContext interface has moved to the "
@@ -313,6 +316,16 @@
     utils.DeprecatedIn08
 )
 
+AsymmetricPadding = utils.deprecated(
+    padding.AsymmetricPadding,
+    __name__,
+    (
+        "The AsymmetricPadding interface has moved to the "
+        "cryptography.hazmat.primitives.asymmetric.padding module"
+    ),
+    utils.DeprecatedIn08
+)
+
 
 @six.add_metaclass(abc.ABCMeta)
 class AsymmetricSignatureContext(object):
@@ -346,15 +359,6 @@
 
 
 @six.add_metaclass(abc.ABCMeta)
-class AsymmetricPadding(object):
-    @abc.abstractproperty
-    def name(self):
-        """
-        A string naming this padding (e.g. "PSS", "PKCS1").
-        """
-
-
-@six.add_metaclass(abc.ABCMeta)
 class KeyDerivationFunction(object):
     @abc.abstractmethod
     def derive(self, key_material):
diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py
index 6e3d80e..21e902f 100644
--- a/tests/hazmat/backends/test_openssl.py
+++ b/tests/hazmat/backends/test_openssl.py
@@ -19,7 +19,7 @@
     Backend, backend
 )
 from cryptography.hazmat.backends.openssl.ec import _sn_to_elliptic_curve
-from cryptography.hazmat.primitives import hashes, interfaces
+from cryptography.hazmat.primitives import hashes
 from cryptography.hazmat.primitives.asymmetric import dsa, padding
 from cryptography.hazmat.primitives.ciphers import (
     BlockCipherAlgorithm, Cipher, CipherAlgorithm
@@ -45,7 +45,7 @@
     key_size = None
 
 
-@utils.register_interface(interfaces.AsymmetricPadding)
+@utils.register_interface(padding.AsymmetricPadding)
 class DummyPadding(object):
     name = "dummy-cipher"
 
diff --git a/tests/hazmat/primitives/test_rsa.py b/tests/hazmat/primitives/test_rsa.py
index 33e5373..6d8e687 100644
--- a/tests/hazmat/primitives/test_rsa.py
+++ b/tests/hazmat/primitives/test_rsa.py
@@ -37,7 +37,7 @@
 )
 
 
-@utils.register_interface(interfaces.AsymmetricPadding)
+@utils.register_interface(padding.AsymmetricPadding)
 class DummyPadding(object):
     name = "UNSUPPORTED-PADDING"