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`  #^c@sddlZddlZddlZddlZddlmZejrReZndZ dZ dZ dZ dZ dZd Zd ZdZd ZejdZdZdZdZdZdZdddZddZdddZdS(iN(terrorsI:ǖI:ǖI:ǖI:ǖI :ǖI:ǖI:ǖI:ǖi<is%m/%d/%y %H:%M:%Ss^((\w+):)?(.+)cCsrtj|}|r^|jd}|jd}|dkrHd}n |j}||fStd|dS(s Given a Kerberos ccache name parse it into it's scheme and location components. Currently valid values for the scheme are: * FILE * MEMORY The scheme is always returned as upper case. If the scheme does not exist it defaults to FILE. :parameters: ccache_name The name of the Kerberos ccache. :returns: A two-tuple of (scheme, ccache) iitFILEsInvalid ccache name = "%s"N(tccache_name_retsearchtgrouptNonetuppert ValueError(t ccache_nametmatchtschemetlocation((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pytkrb5_parse_ccache0s    cCsd|j|fS(Ns%s:%s(R(R tname((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pytkrb5_unparse_ccacheOscCsd|||fS(s Given a Kerberos service principal name, the host where the service is running and a Kerberos realm return the Kerberos V5 service principal name. :parameters: service Service principal name. host The DNS name of the host where the service is located. realm The Kerberos realm the service exists in. :returns: Kerberos V5 service principal name. s%s/%s@%s((tservicethosttrealm((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pyt"krb5_format_service_principal_nameSscCstd||S(s Given a Kerberos realm return the Kerberos V5 TGT name. :parameters: realm The Kerberos realm the TGT exists in. :returns: Kerberos V5 TGT name. tkrbtgt(R(R((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pytkrb5_format_tgt_principal_namefs cCstjttj|S(s Given a UNIX timestamp format it into a string in the same manner the MIT Kerberos library does. Kerberos timestamps are always in local time. :parameters: timestamp Unix timestamp :returns: formated string (ttimetstrftimet krb5_time_fmtt localtime(t timestamp((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pytkrb5_format_timers cCsd}|ri|d6}ny tjddd|d|SWnDtjjk r}|jtkr|td||fnnXdS(s Obtains GSSAPI credentials with given principal name from ccache. When no principal name specified, it retrieves the default one for given credentials cache. :parameters: name gssapi.Name object specifying principal or None for the default ccache_name string specifying Kerberos credentials cache name or None for the default :returns: gssapi.Credentials object tccachetusagetinitiateR tstores"%s", ccache="%s"N(Rtgssapit Credentialst exceptionstGSSErrortmin_codetKRB5_FCC_NOFILER(R RRte((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pytget_credentialss cCsXy td|}t|jSWn1tjjk rS}tjdt|nXdS(sY Gets default principal name from given credentials cache. :parameters: ccache_name string specifying Kerberos credentials cache name or None for the default :returns: Default principal name as string :raises: errors.CCacheError if the principal cannot be retrieved from given ccache RtmessageN(R&tunicodeR RR!R"Rt CCacheError(RtcredsR%((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pyt get_principals cCsfy0td|d|}|jdkr+|SdSWn/tjjk rJdStjjk radSXdS(s! Obtains GSSAPI credentials with principal name from ccache. When no principal name specified, it retrieves the default one for given credentials cache. When the credentials cannot be retrieved or aren't valid it returns None. :parameters: name gssapi.Name object specifying principal or None for the default ccache_name string specifying Kerberos credentials cache name or None for the default :returns: gssapi.Credentials object or None if valid credentials weren't found R RiN(R&tlifetimeRRR!tExpiredCredentialsErrorR"(R RR*((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pytget_credentials_if_validsi,(RtretsixRtipalibRtPY3tstrR(tKRB5_CC_NOTFOUNDR$tKRB5KDC_ERR_C_PRINCIPAL_UNKNOWNtKRB5KDC_ERR_S_PRINCIPAL_UNKNOWNtKRB5KRB_AP_ERR_TKT_EXPIREDt KRB5_FCC_PERMtKRB5_CC_FORMATtKRB5_REALM_CANT_RESOLVEtkrb_ticket_expiration_thresholdRtcompileRR RRRRRR&R+R.(((s4/usr/lib/python2.7/site-packages/ipalib/krb_utils.pyts2