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@sddlZddlZdZejdkr6dZndZyejeZWn%ek rvZe e enXej Z e Z e Ze ZejZe ZdejfdYZdejfd YZd ejfd YZd ejfd YZdejfdYZdejfdYZdejfdYZdejfdYZejeZeZeZej Z!e Z"eZ#ejeZ$ejeZ%dejfdYZ&de'fdYZ(dZ)ejeZ*ejeZ+ejeZ,ej Z-e&Z.ej/Z0e0Z1ej2Z2eje*fe2_3e-e2_4e)e2_5ej6Z6e*fe6_3de6_4ej8Z8e*efe8_3de8_4ej9Z9e*e,fe9_3de9_4ej:Z:e*eje+fe:_3e-e:_4e)e:_5ej;Z;e*e+fe;_3e-e;_4e)e;_5ej<Z<e*ej=ejefe<_3e-e<_4e)e<_5ej>Z>e*e+eej=e,fe>_3e-e>_4e)e>_5ej?Z?e*e+ejefe?_3e-e?_4e)e?_5ej@Z@e*ejeej ej=ej=ej=ej=ej=fe@_3e-e@_4e)e@_5ejAZAe*e+eje1feA_3e-eA_4e)eA_5ejBZBe*e+eje1eje.feB_3e-eB_4e)eB_5ejCZCe*e+eje1feC_3e-eC_4e)eC_5ejDZDe*eje.feD_3e-eD_4e)eD_5ejEZEe*eefeE_3e!eE_4ejFZFe*eejej=feF_3e-eF_4e)eF_5ejGZGe*ej=feG_3deG_4dZHdZIdZJdZKdZLdS( iNi:ǖtdarwins libkrb5.dylibs libkrb5.so.3t _krb5_contextcBseZdZgZRS(s krb5/krb5.h struct _krb5_context(t__name__t __module__t__doc__t_fields_(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyRst _krb5_ccachecBseZdZgZRS(skrb5/krb5.h struct _krb5_ccache(RRRR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR!st _krb5_datacBs5eZdZdefdejfdejfgZRS(skrb5/krb5.h struct _krb5_datatmagictlengthtdata(RRRt krb5_magictctypestc_uinttc_char_pR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR&s  tkrb5_principal_datacBseZdZgZRS(s&krb5/krb5.h struct krb5_principal_data(RRRR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR/st_krb5_keyblockcBsDeZdZdefdefdejfdejefgZ RS(s!krb5/krb5.h struct _krb5_keyblockRtenctypeR tcontents( RRRR t krb5_enctypeR R tPOINTERt krb5_octetR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR4s    t_krb5_ticket_timescBs8eZdZdefdefdefdefgZRS(s%krb5/krb5.h struct _krb5_ticket_timestauthtimet starttimetendtimet renew_till(RRRtkrb5_timestampR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR>s    t _krb5_addresscBseZdZgZRS(s krb5/krb5.h struct _krb5_address(RRRR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyRHst_krb5_authdatacBseZdZgZRS(s!krb5/krb5.h struct _krb5_authdata(RRRR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyRMst _krb5_credsc BseZdZdefdefdefdefdefdefdefde j e fd e fd e fd e j e fg ZRS( skrb5/krb5.h struct _krb5_credsRtclienttservertkeyblockttimestis_skeyt ticket_flagst addressesttickett second_tickettauthdata(RRRR tkrb5_principalt krb5_keyblocktkrb5_ticket_timest krb5_booleant krb5_flagsR Rtkrb5_address_pt krb5_datatkrb5_authdata_pR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR\s         t KRB5ErrorcBseZRS((RR(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR1mscCs(|dkr$t||j|ndS(s)Error checker for krb5_error return valueiN(R1R(tresulttfunct arguments((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyt krb5_errcheckqs s X-CACHECONF:tkrb5_ccache_conf_datac Cst|ts!|jd}nt|tsB|jd}nt|tsc|jd}nt||}||krdSt}t}t}zttj |t |tj |tj |t |tj |tj |}t}|j|_t||_t||||tj |Wd|rWt||n|rmt||n|rt|nXdS(s= Stores the session cookie in a hidden ccache entry. sutf-8tasciiN(t isinstancetbytestencodetget_datat krb5_contextR)t krb5_ccachetkrb5_init_contextR tbyreftkrb5_parse_nameRtkrb5_cc_defaulttcreate_string_bufferRtvalueR tlenR tkrb5_cc_set_configtkrb5_free_principalt krb5_cc_closetkrb5_free_context( t princ_nametkeyRCtoldvaluetcontextt principaltccachetbufR ((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyt store_datas:      c Cs"t|ts!|jd}nt|tsB|jd}nt}t}t}t}t}tj}zttj |t |tj |t ||tj |t |tj|tj |t ||tj |t|tj |tttjttjttj||tjdt}t} t} t||tj |zyxtr8t} t||tj |tj | t||| jdkrt||| jdkr| rt|tj | n| } t} qt|tj | qWWntk rMnXWdt||tj |X| r| jj } t|tj | | SWd|rt!||n|rt!||n|rt!||n|rt"||n|r t#||n|rt$|nXdS(s; Gets the session cookie in a hidden ccache entry. sutf-8iN(%R8R9R:R<R)R=R RR>R?RAtkrb5_cc_get_principalR@tkrb5_unparse_nametkrb5_build_principalRDt CONF_REALMt CONF_NAMEtNonetkrb5_cc_cursort krb5_credstFalsetkrb5_cc_start_seq_gettTruetkrb5_cc_next_credtkrb5_principal_compareRR tkrb5_free_cred_contentsR1tkrb5_cc_end_seq_getR&R RFtkrb5_free_unparsed_nameRGRH( RIRJRLRMt srv_princRNt pname_princtpnametcursortcredst got_credst checkcredsR ((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyR;sz               cCs9t|ts!|jd}nt|tsB|jd}nt}t}t}zttj|t |tj |tj|t |tj|yt ||||dWn)tk r}|jdtkrqnXWd|r t||n|r!t||n|r4t|nXdS(sB Removes the hidden ccache entry with the session cookie. sutf-8iN(R8R9R:R<R)R=R>R R?R@RRARERVR1targstKRB5_CC_NOSUPPRFRGRH(RIRJRLRMRNte((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyt remove_datags.    (MR tsysRitplatformtLIBKRB5_FILENAMEtCDLLtLIBKRB5tOSErrorRjt ImportErrortstrtc_int32t krb5_int32tkrb5_error_codeR Rtc_uint8RRt StructureRRRRRRRRRR)R*R+R R,R-R/R.R0Rt ExceptionR1R5R<R=t krb5_data_pt krb5_errorRXtc_void_pt krb5_pointerRWR>targtypestrestypeterrcheckRHRVRFtkrb5_free_data_contentsRARGR@RRERQRSRZR\R_R^R]RRR`RTRURPR;Rk(((s=/usr/lib/python2.7/site-packages/ipapython/session_storage.pyts                                                                  - X