Removes OID to txt to OID conversion.
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 08e56d0..c509ddb 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -80,23 +80,16 @@
 
 
 def _encode_name(backend, attributes):
-    resolve = {
-        x509.OID_COMMON_NAME: b'CN',
-        x509.OID_COUNTRY_NAME: b'C',
-        x509.OID_STATE_OR_PROVINCE_NAME: b'ST',
-        x509.OID_LOCALITY_NAME: b'L',
-        x509.OID_ORGANIZATION_NAME: b'O',
-        x509.OID_ORGANIZATIONAL_UNIT_NAME: b'OU',
-    }
     subject = backend._lib.X509_NAME_new()
     subject = backend._ffi.gc(subject, backend._lib.X509_NAME_free)
     for attribute in attributes:
         value = attribute.value
         if isinstance(value, six.text_type):
             value = value.encode('ascii')
-        res = backend._lib.X509_NAME_add_entry_by_txt(
+        obj = _txt2obj(backend, attribute.oid.dotted_string)
+        res = backend._lib.X509_NAME_add_entry_by_OBJ(
             subject,
-            resolve[attribute.oid],
+            obj,
             backend._lib.MBSTRING_ASC,
             value,
             -1, -1, 0,