support indexing on GeneralNames and SubjectAlternativeName
diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py
index 0eed21b..f5fb134 100644
--- a/src/cryptography/x509/extensions.py
+++ b/src/cryptography/x509/extensions.py
@@ -894,6 +894,9 @@
     def __ne__(self, other):
         return not self == other
 
+    def __getitem__(self, idx):
+        return self._general_names[idx]
+
 
 @utils.register_interface(ExtensionType)
 class SubjectAlternativeName(object):
@@ -920,6 +923,9 @@
 
         return self._general_names == other._general_names
 
+    def __getitem__(self, idx):
+        return self._general_names[idx]
+
     def __ne__(self, other):
         return not self == other
 
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index a12a48f..e725262 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -1483,6 +1483,19 @@
             x509.DNSName(u"crypto.local"),
         ]
 
+    def test_indexing(self):
+        gn = x509.GeneralNames([
+            x509.DNSName(u"cryptography.io"),
+            x509.DNSName(u"crypto.local"),
+            x509.DNSName(u"another.local"),
+            x509.RFC822Name(u"email@another.local"),
+            x509.UniformResourceIdentifier(u"http://another.local"),
+        ])
+        assert gn[-1] == gn[4]
+        assert len(gn[1:3]) == 2
+        assert gn[2:4][0] == gn[2]
+        assert gn[2:5:2][1] == gn[4]
+
     def test_invalid_general_names(self):
         with pytest.raises(TypeError):
             x509.GeneralNames(
@@ -1637,6 +1650,19 @@
             x509.DNSName(u"crypto.local"),
         ]
 
+    def test_indexing(self):
+        san = x509.SubjectAlternativeName([
+            x509.DNSName(u"cryptography.io"),
+            x509.DNSName(u"crypto.local"),
+            x509.DNSName(u"another.local"),
+            x509.RFC822Name(u"email@another.local"),
+            x509.UniformResourceIdentifier(u"http://another.local"),
+        ])
+        assert san[-1] == san[4]
+        assert len(san[1:3]) == 2
+        assert san[2:4][0] == san[2]
+        assert san[2:5:2][1] == san[4]
+
     def test_invalid_general_names(self):
         with pytest.raises(TypeError):
             x509.SubjectAlternativeName(