aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Cordasco <graffatcolmingov@gmail.com>2015-06-21 10:09:18 -0500
committerIan Cordasco <graffatcolmingov@gmail.com>2015-06-24 13:35:50 -0500
commitf06b6be82300d9339bcfb062aedd7d7a3865aec9 (patch)
tree3cf250d6200dd8366a4489cec1dba3a4241c649f
parentd09ec37cb4c2995b1e2e2f88d187f4fbaef68ad8 (diff)
downloadcryptography-f06b6be82300d9339bcfb062aedd7d7a3865aec9.tar.gz
cryptography-f06b6be82300d9339bcfb062aedd7d7a3865aec9.tar.bz2
cryptography-f06b6be82300d9339bcfb062aedd7d7a3865aec9.zip
Address review comments around add_extension method
- Fix typo in the docs (s/buidlder/builder/) - Remove default from the method declaration and docs - Replace ValueError with NotImpelementedError for unsupported X.509 extensions - Add TODO comment as requested by Alex - Fix test to pass critical=False since it no longer is a default value
-rw-r--r--docs/x509.rst4
-rw-r--r--src/cryptography/x509.py5
-rw-r--r--tests/test_x509.py5
3 files changed, 8 insertions, 6 deletions
diff --git a/docs/x509.rst b/docs/x509.rst
index 84b3b8b4..c4c441e7 100644
--- a/docs/x509.rst
+++ b/docs/x509.rst
@@ -490,7 +490,7 @@ X.509 CSR (Certificate Signing Request) Builder Object
>>> builder = builder.subject_name(x509.Name([
... x509.NameAttribute(x509.OID_COMMON_NAME, u'cryptography.io'),
... ]))
- >>> buidlder = builder.add_extension(
+ >>> builder = builder.add_extension(
... x509.BasicConstraints(ca=False, path_length=None), critical=True,
... )
>>> request = builder.sign(
@@ -506,7 +506,7 @@ X.509 CSR (Certificate Signing Request) Builder Object
:returns: A new
:class:`~cryptography.x509.CertificateSigningRequestBuilder`.
- .. method:: add_extension(extension, critical=False)
+ .. method:: add_extension(extension, critical)
:param extension: The :class:`~cryptography.x509.Extension` to add to
the request.
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py
index f59ea78a..21e18ddd 100644
--- a/src/cryptography/x509.py
+++ b/src/cryptography/x509.py
@@ -1462,14 +1462,15 @@ class CertificateSigningRequestBuilder(object):
raise ValueError('The subject name may only be set once.')
return CertificateSigningRequestBuilder(name, self._extensions)
- def add_extension(self, extension, critical=False):
+ def add_extension(self, extension, critical):
"""
Adds an X.509 extension to the certificate request.
"""
if isinstance(extension, BasicConstraints):
extension = Extension(OID_BASIC_CONSTRAINTS, critical, extension)
else:
- raise ValueError('Unsupported X.509 extension.')
+ raise NotImplementedError('Unsupported X.509 extension.')
+ # TODO: This is quadratic in the number of extensions
for e in self._extensions:
if e.oid == extension.oid:
raise ValueError('This extension has already been set.')
diff --git a/tests/test_x509.py b/tests/test_x509.py
index 441d634b..78def5f8 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -784,9 +784,10 @@ class TestCertificateSigningRequestBuilder(object):
x509.NameAttribute(x509.OID_COMMON_NAME, u'cryptography.io'),
])
)
- with pytest.raises(ValueError):
+ with pytest.raises(NotImplementedError):
builder.add_extension(
- x509.AuthorityKeyIdentifier('keyid', None, None)
+ x509.AuthorityKeyIdentifier('keyid', None, None),
+ critical=False,
)