PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  Vc@sddlZddlZddlmZddlmZddlmZddlm Z e j dZ e j dZ dej fd YZ d ejfd YZdS( iN(tnames(tNameType(t named_tuples(t_utilstrfc6680trfc6680_comp_oidtNamecBseZdZdZdddedZdddedZdZdZ dZ dZ e dZ d Zd Zd Zed Zd ZdZdZdZe dZe dZe dZRS(sA GSSAPI Name This class represents a GSSAPI name which may be used with used with and/or returned by other GSSAPI methods. It inherits from the low-level GSSAPI :class:`~gssapi.raw.names.Name` class, and thus may used with both low-level and high-level API methods. This class may be pickled and unpickled, as well as copied. The :func:`str` and :func:`bytes` methods may be used to retrieve the text of the name. Note: Name strings will be automatically converted to and from unicode strings as appropriate. If a method is listed as returning a :class:`str` object, it will return a unicode string. The encoding used will be python-gssapi's current encoding, which defaults to UTF-8. t _attr_objcCs0|dk r|rtdkr-tdntdk rtj|tj}tj|dt }|j tjkrtj|tj }qqtj|tj }qtj|tj }nWt |tj r|}n<t |tjr|jtj}ntj||}tt |j||S(NsSYour GSSAPI implementation does not support RFC 6680 (the GSSAPI naming extensions)t name_type(tNonet rname_rfc6680tNotImplementedErrortrname_rfc6680_comp_oidtrnamet import_nameRtcomposite_exportt display_nametTrueRtexportt isinstanceRtsixt text_typetencodeRt _get_encodingtsupert__new__(tclstbaseRttokent compositet base_namet displ_name((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyR's&       cCs+tdk rt||_n d|_dS(sg The constructor can be used to "import" a name from a human readable representation, or from a token, and can also be used to convert a low-level :class:`gssapi.raw.names.Name` object into a high-level object. If a :class:`~gssapi.raw.names.Name` object from the low-level API is passed as the `base` argument, it will be converted into a high-level object. If the `token` argument is used, the name will be imported using the token. If the token was exported as a composite token, pass `composite=True`. Otherwise, a new name will be created, using the `base` argument as the human-readable string and the `name_type` argument to denote the name type. Raises: BadNameTypeError BadNameError BadMechanismError N(R R t_NameAttributeMappingR(tselfRRRR((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__init__Ks cCs9tttjr+t|jtjS|jSdS(N( t issubclasststrRRtbytestdecodeRRt __bytes__(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__str__iscCs|jjtjS(N(R'R&RR(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt __unicode__qscCstj|dtjS(NR(R RtFalsetname(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyR'uscCs:tdkrtdntj||jtjS(sU Display this name as the given name type. This method attempts to display the current :class:`Name` using the syntax of the given :class:`NameType`, if possible. Warning: In MIT krb5 versions below 1.13.3, this method can segfault if the name was not *originally* created with a `name_type` that was not ``None`` (even in cases when a ``name_type`` is later "added", such as via :meth:`canonicalize`). **Do not use this method unless you are sure the above conditions can never happen in your code.** Warning: In addition to the above warning, current versions of MIT krb5 do not actually fully implement this method, and it may return incorrect results in the case of canonicalized names. :requires-ext:`rfc6680` Args: name_type (OID): the :class:`NameType` to use to display the given name Returns: str: the displayed name Raises: OperationUnavailableError sSYour GSSAPI implementation does not support RFC 6680 (the GSSAPI naming extensions)N(R R R tdisplay_name_extR&RR(R!R((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt display_asys# cCstj|dtjS(s"The :class:`NameType` of this nameR(R RRR(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyRscCs*t|tjstStj||SdS(N(RR RtNotImplementedt compare_name(R!tother((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__eq__scCs|j| S(N(R1(R!R0((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__ne__scCs1tj|dt}djd|jd|jS(NRsName({name}, {name_type})R+(R RRtformatR+R(R!tdisp_res((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__repr__scCs?|r.tdkr!tdntj|Stj|SdS(sExport this name as a token. This method exports the name into a byte string which can then be imported by using the `token` argument of the constructor. Args: composite (bool): whether or not use to a composite token -- :requires-ext:`rfc6680` Returns: bytes: the exported name in token form Raises: MechanismNameRequiredError BadNameTypeError BadNameError sSYour GSSAPI implementation does not support RFC 6680 (the GSSAPI naming extensions)N(R R R texport_name_compositeR t export_name(R!R((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyRs   cCst|tj||S(sCanonicalize a name with respect to a mechanism. This method returns a new :class:`Name` that is canonicalized according to the given mechanism. Args: mech (OID): the :class:`MechType` to use Returns: Name: the canonicalized name Raises: BadMechanismError BadNameTypeError BadNameError (ttypeR tcanonicalize_name(R!tmech((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt canonicalizescCst|tj|S(N(R8R tduplicate_name(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__copy__scCst|tj|S(N(R8R R<(R!tmemo((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt __deepcopy__scKsmtdkrtdn|s*t}nt}|jd|}|jd|}tj|d|d|S(sInspect this name for information. This method inspects the name for information. If no keyword arguments are passed, all available information is returned. Otherwise, only the keyword arguments that are passed and set to `True` are returned. Args: mech_name (bool): get whether this is a mechanism name, and, if so, the associated mechanism attrs (bool): get the attributes names for this name Returns: InquireNameResult: the results of the inquiry, with unused fields set to None Raises: GSSError sSYour GSSAPI implementation does not support RFC 6680 (the GSSAPI naming extensions)tattrst mech_nameN(R R R RR*tgett inquire_name(R!tkwargst default_valR@RA((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt_inquires  cCs|jdtjS(sWWhether or not this name is a mechanism name (:requires-ext:`rfc6680`) RA(RFRt is_mech_name(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyRGscCs|jdtjS(sJThe mechanism associated with this name (:requires-ext:`rfc6680`) RA(RFRR:(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyR:scCs%|jdkrtdn|jS(sThe attributes of this name (:requires-ext:`rfc6680`) The attributes are presenting in the form of a :class:`~collections.MutableMapping` (a dict-like object). Retrieved values will always be in the form of :class:`frozensets`. When assigning values, if iterables are used, they be considered to be the set of values for the given attribute. If a non-iterable is used, it will be considered a single value, and automatically wrapped in an iterable. Note: String types (includes :class:`bytes`) are not considered to be iterables in this case. sSYour GSSAPI implementation does not support RFC 6680 (the GSSAPI naming extensions)N(RR R (R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt attributes"sN(t__name__t __module__t__doc__t __slots__R R*RR"R(R)R'R-tpropertyRR1R2R5RR;R=R?RFRGR:RH(((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyRs*  #    *        &R cBsDeZdZdZdZdZdZdZdZRS(s6Provides dict-like access to RFC 6680 Name attributes.cCs ||_dS(N(t_name(R!R+((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyR"?scCsmt|tjr*|jtj}ntj|j|}t j t |j t |j |j|jS(N(RRRRRRR tget_name_attributeRNttuplestGetNameAttributeResultt frozensettvaluestdisplay_valuest authenticatedtcomplete(R!tkeytres((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt __getitem__Bs cCst|tjr*|jtj}ntj|j|t|t j rd|j }|j }n>t|t rt|dkr|d}|d}nt}t|tjtfst|tj r|g}tj|j||d|ndS(NiiiRV(RRRRRRR tdelete_name_attributeRNRPRQRVRSttupletlenR*t string_typesR%t collectionstIterabletset_name_attribute(R!RWtvalueRV((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt __setitem__Ls  !   cCsAt|tjr*|jtj}ntj|j|dS(N( RRRRRRR RZRN(R!RW((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt __delitem__dscCst|jjdtjS(NR@(titerRNRFRR@(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__iter__jscCst|jjdtjS(NR@(R\RNRFRR@(R!((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyt__len__ms( RIRJRKR"RYRbRcReRf(((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyR <s    (R^Rt gssapi.rawRR RRRPtgssapiRtimport_gssapi_extensionR R RtMutableMappingR (((s2/usr/lib64/python2.7/site-packages/gssapi/names.pyts  /