def _decode_cert_issuer(backend, ext):
 data_ptr_ptr = backend._ffi.new('const unsigned char **')
 value = backend._lib.X509_EXTENSION_get_data(ext)
 data_ptr_ptr[0] = value.data
 gns = backend._lib.d2i_GENERAL_NAMES(backend._ffi.NULL, data_ptr_ptr, value.length)
 if (gns == backend._ffi.NULL):
  backend._consume_errors()
  raise ValueError("The {0} extension is corrupted and can't be parsed".format(CRLEntryExtensionOID.CERTIFICATE_ISSUER))
 gns = backend._ffi.gc(gns, backend._lib.GENERAL_NAMES_free)
 return x509.CertificateIssuer(_decode_general_names(backend, gns))

def _decode_cert_issuer ( backend , ext ) : data_ptr_ptr = backend . _ffi . new ( 'const unsigned char **' ) value = backend . _lib . X509_EXTENSION_get_data ( ext ) data_ptr_ptr [ 0 ] = value . data gns = backend . _lib . d2i_GENERAL_NAMES ( backend . _ffi . NULL , data_ptr_ptr , value . length ) if ( gns == backend . _ffi . NULL ) : backend . _consume_errors ( ) raise ValueError ( "The {0} extension is corrupted and can't be parsed" . format ( CRLEntryExtensionOID . CERTIFICATE_ISSUER ) ) gns = backend . _ffi . gc ( gns , backend . _lib . GENERAL_NAMES_free ) return x509 . CertificateIssuer ( _decode_general_names ( backend , gns ) )
this handler decodes the certificateissuer entry extension directly from the x509_extension object .