diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2018-03-05 11:36:08 -0400 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2018-03-05 10:36:08 -0500 |
commit | 388d1bd3e9cd953fcc948edbc152d5d140c87eb8 (patch) | |
tree | 2f4706308b3d5846a457bdc4d49e02eed4265576 | |
parent | 96787f954bf89b12dfc3f8744bcb0998b2f0c22f (diff) | |
download | cryptography-388d1bd3e9cd953fcc948edbc152d5d140c87eb8.tar.gz cryptography-388d1bd3e9cd953fcc948edbc152d5d140c87eb8.tar.bz2 cryptography-388d1bd3e9cd953fcc948edbc152d5d140c87eb8.zip |
don't allow GeneralNames to be an empty list (#4128)
* don't allow GeneralNames to be an empty list
* flake8
-rw-r--r-- | src/cryptography/x509/extensions.py | 3 | ||||
-rw-r--r-- | tests/x509/test_x509_ext.py | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py index eb4b927f..af12fa9c 100644 --- a/src/cryptography/x509/extensions.py +++ b/src/cryptography/x509/extensions.py @@ -1160,6 +1160,9 @@ class Extension(object): class GeneralNames(object): def __init__(self, general_names): general_names = list(general_names) + if len(general_names) == 0: + raise ValueError("Must supply at least one general name") + if not all(isinstance(x, GeneralName) for x in general_names): raise TypeError( "Every item in the general_names list must be an " diff --git a/tests/x509/test_x509_ext.py b/tests/x509/test_x509_ext.py index 9f4e1758..b048c140 100644 --- a/tests/x509/test_x509_ext.py +++ b/tests/x509/test_x509_ext.py @@ -2052,6 +2052,10 @@ class TestGeneralNames(object): [x509.DNSName(u"cryptography.io"), "invalid"] ) + def test_does_not_allow_empty_list(self): + with pytest.raises(ValueError): + x509.GeneralNames([]) + def test_repr(self): gns = x509.GeneralNames( [ |