def _new_extension(name, value, critical=0, issuer=None, _pyfree=1):
 if ((name == 'subjectKeyIdentifier') and (value.strip('0123456789abcdefABCDEF:') is not '')):
  raise salt.exceptions.SaltInvocationError('value must be precomputed hash')
 try:
  ctx = M2Crypto.m2.x509v3_set_nconf()
  _fix_ctx(ctx, issuer)
  if (ctx is None):
   raise MemoryError('Not enough memory when creating a new X509 extension')
  x509_ext_ptr = M2Crypto.m2.x509v3_ext_conf(None, ctx, name, value)
  lhash = None
 except AttributeError:
  lhash = M2Crypto.m2.x509v3_lhash()
  ctx = M2Crypto.m2.x509v3_set_conf_lhash(lhash)
  _fix_ctx(ctx, issuer)
  x509_ext_ptr = M2Crypto.m2.x509v3_ext_conf(lhash, ctx, name, value)
 if (x509_ext_ptr is None):
  raise M2Crypto.X509.X509Error("Cannot create X509_Extension with name '{0}' and value '{1}'".format(name, value))
 x509_ext = M2Crypto.X509.X509_Extension(x509_ext_ptr, _pyfree)
 x509_ext.set_critical(critical)
 return x509_ext

def _new_extension ( name , value , critical = 0 , issuer = None , _pyfree = 1 ) : if ( ( name == 'subjectKeyIdentifier' ) and ( value . strip ( '0123456789abcdefABCDEF:' ) is not '' ) ) : raise salt . exceptions . SaltInvocationError ( 'value must be precomputed hash' ) try : ctx = M2Crypto . m2 . x509v3_set_nconf ( ) _fix_ctx ( ctx , issuer ) if ( ctx is None ) : raise MemoryError ( 'Not enough memory when creating a new X509 extension' ) x509_ext_ptr = M2Crypto . m2 . x509v3_ext_conf ( None , ctx , name , value ) lhash = None except AttributeError : lhash = M2Crypto . m2 . x509v3_lhash ( ) ctx = M2Crypto . m2 . x509v3_set_conf_lhash ( lhash ) _fix_ctx ( ctx , issuer ) x509_ext_ptr = M2Crypto . m2 . x509v3_ext_conf ( lhash , ctx , name , value ) if ( x509_ext_ptr is None ) : raise M2Crypto . X509 . X509Error ( "Cannot create X509_Extension with name '{0}' and value '{1}'" . format ( name , value ) ) x509_ext = M2Crypto . X509 . X509_Extension ( x509_ext_ptr , _pyfree ) x509_ext . set_critical ( critical ) return x509_ext
create new x509_extension .