aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2016-11-13 14:30:11 -0800
committerAlex Gaynor <alex.gaynor@gmail.com>2016-11-13 17:30:11 -0500
commit3a15b03e92c9fdeadff04ddd2ce505028b279b86 (patch)
treee314732deed27d3f3f4dba9b4c1f40dcca3e54fa /tests
parentd862933de5c344fcdf99ab2f43f3bf8da65f3e41 (diff)
downloadcryptography-3a15b03e92c9fdeadff04ddd2ce505028b279b86.tar.gz
cryptography-3a15b03e92c9fdeadff04ddd2ce505028b279b86.tar.bz2
cryptography-3a15b03e92c9fdeadff04ddd2ce505028b279b86.zip
Add a bytes method to get the DER ASN.1 encoding of an X509 name. (#3236)
* Add a bytes method to get the DER ASN.1 encoding of an X509 name. This is useful for creating an OpenSSL style subject_name_hash (#3011) * add to backend interface and update multibackend * bytes -> public_bytes
Diffstat (limited to 'tests')
-rw-r--r--tests/hazmat/backends/test_multibackend.py6
-rw-r--r--tests/test_x509.py11
2 files changed, 17 insertions, 0 deletions
diff --git a/tests/hazmat/backends/test_multibackend.py b/tests/hazmat/backends/test_multibackend.py
index 319edf7d..7ffc4236 100644
--- a/tests/hazmat/backends/test_multibackend.py
+++ b/tests/hazmat/backends/test_multibackend.py
@@ -240,6 +240,9 @@ class DummyX509Backend(object):
def create_x509_revoked_certificate(self, builder):
pass
+ def x509_name_bytes(self, name):
+ pass
+
@utils.register_interface(ScryptBackend)
class DummyScryptBackend(object):
@@ -554,6 +557,7 @@ class TestMultiBackend(object):
backend.create_x509_certificate(object(), b"privatekey", hashes.SHA1())
backend.create_x509_crl(object(), b"privatekey", hashes.SHA1())
backend.create_x509_revoked_certificate(object())
+ backend.x509_name_bytes(object())
backend = MultiBackend([DummyBackend()])
with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509):
@@ -580,6 +584,8 @@ class TestMultiBackend(object):
)
with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509):
backend.create_x509_revoked_certificate(object())
+ with raises_unsupported_algorithm(_Reasons.UNSUPPORTED_X509):
+ backend.x509_name_bytes(object())
def test_scrypt(self):
backend = MultiBackend([DummyScryptBackend()])
diff --git a/tests/test_x509.py b/tests/test_x509.py
index f375ac55..5d334242 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -3842,6 +3842,17 @@ class TestName(object):
with pytest.raises(TypeError):
x509.Name(["not-a-NameAttribute"])
+ @pytest.mark.requires_backend_interface(interface=X509Backend)
+ def test_bytes(self, backend):
+ name = x509.Name([
+ x509.NameAttribute(NameOID.COMMON_NAME, u'cryptography.io'),
+ x509.NameAttribute(NameOID.ORGANIZATION_NAME, u'PyCA'),
+ ])
+ assert name.public_bytes(backend) == binascii.unhexlify(
+ b"30293118301606035504030c0f63727970746f6772617068792e696f310d300"
+ b"b060355040a0c0450794341"
+ )
+
def test_random_serial_number(monkeypatch):
sample_data = os.urandom(20)