diff options
author | Andre Caron <andre.l.caron@gmail.com> | 2015-05-31 17:36:18 -0400 |
---|---|---|
committer | Ian Cordasco <graffatcolmingov@gmail.com> | 2015-06-24 13:35:49 -0500 |
commit | fc164c5e4fce2f6617b35887a5799ec10082b906 (patch) | |
tree | 4b34170789838d13eff45ed45ebaccb7075c536a /src | |
parent | eebe700861774a640f82391d2a4597d2fe6ff399 (diff) | |
download | cryptography-fc164c5e4fce2f6617b35887a5799ec10082b906.tar.gz cryptography-fc164c5e4fce2f6617b35887a5799ec10082b906.tar.bz2 cryptography-fc164c5e4fce2f6617b35887a5799ec10082b906.zip |
Adds method chaining to CSR builder.
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptography/x509.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/cryptography/x509.py b/src/cryptography/x509.py index 2ee1c3ef..c59de606 100644 --- a/src/cryptography/x509.py +++ b/src/cryptography/x509.py @@ -1445,13 +1445,13 @@ class RevokedCertificate(object): class CertificateSigningRequestBuilder(object): - def __init__(self): + def __init__(self, version=Version.v1, subject_name=None, extensions=[]): """ Creates an empty X.509 certificate request (v1). """ self._version = Version.v1 - self._subject_name = None - self._extensions = [] + self._subject_name = subject_name + self._extensions = extensions[:] def set_version(self, version): """ @@ -1459,7 +1459,9 @@ class CertificateSigningRequestBuilder(object): """ if not isinstance(version, Version): raise TypeError('Expecting x509.Version object.') - self._version = version + return CertificateSigningRequestBuilder( + version, self._subject_name, self._extensions + ) def set_subject_name(self, name): """ @@ -1467,7 +1469,9 @@ class CertificateSigningRequestBuilder(object): """ if not isinstance(name, Name): raise TypeError('Expecting x509.Name object.') - self._subject_name = name + return CertificateSigningRequestBuilder( + self._version, name, self._extensions + ) def add_extension(self, extension): """ @@ -1478,7 +1482,9 @@ class CertificateSigningRequestBuilder(object): for e in self._extensions: if e.oid == extension.oid: raise ValueError('This extension has already been set.') - self._extensions.append(extension) + return CertificateSigningRequestBuilder( + self._version, self._subject_name, self._extensions + [extension] + ) def sign(self, backend, private_key, algorithm): """ |