ELF>;@Z@8@'' 00!0!)* 0000!00!$$PtdQtdGNUXL Hs ^Z=4yРf@ y}\kU@.s|CE.CFm%7qX 4e ^L$? % 6{j7,P^pcg"kk"rNT4t8=A\9U\n-V0PxGJP~  ,~W pk <DZ"Y"CZ" 6Y" 4  p__gmon_start___fini__cxa_finalize_Jv_RegisterClassesPyObject_GetAttrStringPyErr_ClearPy_BuildValuePyEval_CallObjectWithKeywordsPyObject_SetAttrString__assert_failinitkrbVPy_InitModule4_64PyModule_GetDictpk_error_initPyString_FromStringPyDict_SetItemStringPyDict_NewPyModule_GetNamePyClass_NewPyCFunction_NewExPyMethod_Newdict_addintPyArg_ParseTuplePyCObject_AsVoidPtrPyExc_AttributeErrorPyErr_Formatkrb5_get_default_realmkrb5_free_default_realmpk_errorPyString_TypePyString_AsStringPyDict_SetItem_Py_NoneStructkrb5_set_default_realmPyExc_TypeErrorPyDict_GetItemStringPyObject_IsInstancePyString_Sizekrb5_rd_repkrb5_free_ap_rep_enc_partPyString_FromStringAndSizePyExc_IndexErrorkrb5_mk_repkrb5_free_data_contentsPyTuple_NewPyTuple_SetItemPyLong_AsLongLongPyEval_CallMethodPyInt_AsLongkrb5_copy_principalPyCObject_FromVoidPtrAndDescPyEval_SaveThreadkrb5_recvauthPyEval_RestoreThreadkrb5_free_ticketkrb5_free_principalkrb5_auth_con_freekrb5_cc_get_principalkrb5_sendauthPyInt_FromLongkrb5_init_contextkrb5_free_contextPyCObject_FromVoidPtrinet_pton__stack_chk_failPyArg_ParseTupleAndKeywordskrb5_auth_con_genaddrsPyCObject_Typekrb5_auth_con_initkrb5_unparse_namestrlen__sprintf_chkkrb5_principal_comparekrb5_parse_namekrb5_cc_get_typekrb5_cc_get_namekrb5_cc_initializePyExc_ValueErrorPyErr_SetNonekrb5_cc_resolvekrb5_cc_defaultkrb5_cc_closekrb5_get_server_rcachekrb5_kt_get_namekrb5_kt_resolvekrb5_kt_defaultkrb5_kt_close__memcpy_chkinet_ntopkrb5_rd_reqkrb5_auth_con_getkeykrb5_free_keyblockkrb5_auth_con_getremoteseqnumberkrb5_auth_con_getflagskrb5_auth_con_getlocalseqnumbercallockrb5_auth_con_getaddrskrb5_free_addresseskrb5_mk_req_extendedkrb5_free_credskrb5_get_credentialskrb5_auth_con_setflagskrb5_auth_con_setrcachekrb5_auth_con_setuseruserkeykrb5_auth_con_setaddrskrb5_auth_con_setportskrb5_rd_privkrb5_mk_privkrb5_get_init_creds_opt_initkrb5_get_init_creds_keytabkrb5_cc_store_credkrb5_free_cred_contentsPyTuple_TypePySequence_CheckPySequence_SizememsetPySequence_GetItemPyErr_NewExceptionpk_exceptionerror_messagePyClass_TypePyErr_SetObjectPyErr_NoMemoryPyObject_CallFunctionlibkrb5.so.3libc.so.6_edata__bss_start_endkrbVmodule.soGLIBC_2.4GLIBC_2.3.4GLIBC_2.2.5krb5_3_MIT@ii ti ui )0 (0!(0!Q"Q";R" R"R"5! R" (R"p8R"9!@R" HR" XR" B!`R"p hR"ЀxR"I!R" R"R"Q!R"v R"R"@i!R" R"КR"@~!R"~ R"R"@!S"h S"`S"! S" (S"8S"`!`S" hS"PxS"!S" S"S" !S" S" S" S" S"M S"& S" S" S" S" T" T" T"& T" @T" HT"`XT"!`T" hT"xT"`!T" T" T"!T" T"T"!T" T"pT"!U" U"PU"@! U" (U" 0U" @U" HU"+ PU"4 `U" hU"0xU"!U"G U"U"!U" U"U"!U" U" U" !U" U"U"" V" (V"8V""@V" HV"XV" "`V" hV"M pV"+ V" V"V" "V" V"V""V" V"ИV"@"V"[ V"V""W"B W"0W"@ " W" (W"8W" %"`W" hW"xW")"W" W"W"-"W" W" W" W"M W" W" W" W" W"  X" (X"M 0X" 8X" @X"+ `X" hX"xX"1"X" X"X"7"X" X"X";"X" X"X"<"Y" Y" Y"@>" Y" (Y"8Y"F"`Y" hY"@xY"@J"Y" Y"Y"N"Y" Y"M Y"M Y"+ 1! 1! 1!1!1!1!2!}2!.2!/2!9 2!V(2!]02!k82!rX2!`2!h2!p2!x2!2!2!2! 2! 2! 2!2!2!2!2!2!2!2!2!2!2!3!3!3!3! 3!!(3!"03!#83!$@3!%H3!&P3!'X3!y`3!(h3!)p3!*x3!+3!,3!-3!.3!03!13!23!33!43!~3!53!63!73!83!:3!3!;4!<4!=4!>4!? 4!@(4!A04!B84!C@4!DH4!EP4!FX4!G`4!Hh4!Ip4!Jx4!K4!L4!M4!N4!O4!P4!Q4!R4!S4!T4!U4!W4!X4!Y4!Z4![4!\5!^5!_5!`5!a 5!b(5!c05!d85!e@5!fH5!gP5!hX5!i`5!jh5!lp5!mx5!n5!o5!p5!q5!s5!t5!u5!v5!w5!xHuH5" %$ @%" h% h% h% h% h% h% h% hp% h`% h P% h @% h 0% h % h % h% h% h% h% h% h% h%z h%r h%j hp%b h`%Z hP%R h@%J h0%B h %: h%2 h%* h%" h % h!% h"% h#% h$% h%% h&% h'p% h(`% h)P% h*@% h+0% h, % h-% h.% h/% h0% h1% h2% h3% h4%z h5%r h6%j h7p%b h8`%Z h9P%R h:@%J h;0%B h< %: h=%2 h>%* h?%" h@% hA% hB% hC% hD% hE% hF% hGp% hH`% hIP% hJ@% hK0% hL % hM% hN% hO% hP% hQ% hR% hS% hT%z hU%r hV%j hWp%b hX`%Z hYP%R hZ@%J h[0%B h\ %: h]%2 h^%* h_%" h`% ha% hb% hc% hd% he% hf% hgp% hh`% hiP% hj@% hk0% hl % hmHH HtHÐU="HATSubH= t H= JH L% He"L)HHH9s DHHE"AH:"H9r&"[A\fH=h UHtH+ HtH=O @ÐH\$Hl$HH="H5HHtHHH\$Hl$HÐH="H5xH=H1G1HHHHHt;HEHHHEtH=_"H5`H|HEHP0H mH5JH=P uDAWH5"H=811AAVAUATUSHHICHH"zLHH=H5HHH5ڟHHHLHHD$H=H$H4$1HHT$H5HIxH=`"L%S"IEHHIEt_I I<$ti11L1LHII4$H<$HIEIHHIuIFLP0f.IEI LP0I<$uH=D"111LH>H="11IG(z1LHH5IG0HLL=U"H=I"HHHHAAH=qH$aH4$1HHT$H5CHI,H=T"L%G"!DIEHHIEt_I I<$ti11L1LHIXI4$H<$HIIHHIuIFLP0f.IEI LP0I<$uH=t"11K1LHH=7"11IG(*1LHH5]IG0HLL= "`H="HHHH@H=-H$H4$1HSHT$H5HIH=$"L%"!DIEHHIEt_I I<$ti11Lh1LHII4$H<$HIIHHIuIFLP0f.IEI LP0I<$uH=d"111LHH='"11IG(1LH}H5IG0HLL="H="HHHHV?H=H$H4$1HHT$H5HIH="L%"!DIEHHIEt_I I<$ti11L1LHII4$H<$HIUIHHIuIFLP0f.IEI LP0I<$uH=T"111LHNH="11IG(1LH-H5ӚIG0HLL=}"H=q"HHHH=QH=H$qH4$1HHT$H5SHIHH߹HGHH߹HHH߹xHAHH߹aHRHH߹ JHcHH߹ 3HRHH߹ HUHH߹ H>HH߹ HGHH߹H-HH߹H9HH߹HHH߹H"HH߹{HHH߹dHHH߹MHHH߹6HHH߹HHH߹HHH߹HHH߹H HH߹HHH߹HHH߹HHH߹~HHH߹gHHHHNHHH߹,7HHH߹2 HHH߹3 HHH߹4HHH߹5HHH߹6HHH߹7HvHH߹8Ht1HHHwHH߹kHxHH߹THwHH߹=H{HH߹&H}HH߹HHH߹HHH߹HHH߹@HHH߹ H{HH߹HvHH߹HmHH߹nHmHH߹WHhHH߹@HcHH߹)HfHH߹HdHH߹HHH߹ HPHH߹HNHH߹HOHH߹HFHH߹H@HH߹TqH=HH߹ZH7HH߹@CH8HH߹ ,H9HH߹H<HH߹H8HH߹H3HH߹H-HH߹@H'HH߹ H#HH߹H$HH߹@tH!HH߹ ]HHH߹FHHH߹/HHH߹H HH߹HHH߹HHH߹HHH߹@HHH߹ HHH߹HHH߹wHДHH߹`HДHH߹IH̔HH߹2HǔHH߹HɔHH߹HΔHH߹HÔHH߹HHH߹HHH߹ HHH߹ HHH߹ zHHH߹ cHHH߹LHxHH߹5HmHH߹H`HH߹HSHH߹HFHH߹H:1HHH4HH߹H3HHHH0HH߹~H3HHHeH4HH߹NH:HHH5H>HH߹HAHHHHBHH߹HAHHHH>HH߹H?HHHH>1HHH;HH߹zH7HH߹cH4HH߹LH7HH߹5H4HH߹HOHH߹H HH߹HHH߹HHH߹ HHH߹ HHH߹ HHH߹ }HHH߹ fHHH߹OH!HH߹8H$HH߹!H#HH߹ H"HH߹HDHH߹H HH߹HHH߹HHH߹HHH߹HHH߹iHHH߹RHHH߹;HHH߹$HHH߹ HHH߹HHH߹HHH߹HYHH߹HHH߹HHH߹HHH߹lHHH߹@UHHH߹ >HHH߹'HHH߹HHH߹@HHH߹HHH߹HHH߹HHH߹HHH߹ HHH߹@oHHH߹AXHHH߹AHbHH߹*HHH߹HHH߹GH1HHHHH߹HHH߹HHH߹HHH߹HHH߹uHHH߹^HHH߹GHHH߹0HHH߹HHH߹HkHH߹HHH߹HHH߹ HFHH߹HWHH߹HhHH߹xHHH߹aH6HH߹JH3HH߹3H2HH߹H/HH߹H2HH߹H5HH߹ H5HH߹@H9HH߹H8HH߹H5HH߹{H7HH߹dH2HH߹MH,HH߹L6H)HH߹H$HH߹HHH߹HHH߹HHH߹HHH߹ HHH߹@HHH߹~H״HH߹gHHH߹PHՒHH߹9HڴHH߹"HHH߹ HHH߹HHH߹HHH߹HhHH߹HmHH߹HiHH߹HmHH߹jHHH߹SH̴HH߹:ǖHƐHHH?:ǖkHɐHHH@:ǖRHSHHHA:ǖ9HjHHHB:ǖ HHHHC:ǖHHHHD:ǖHGHHHE:ǖHVHHHF:ǖHeHHHG:ǖHlHHHH:ǖHsHHHI:ǖqHHHHJ:ǖXHHHHK:ǖ?HHHHL:ǖ&HHHHM:ǖ HHHHN:ǖHHHHO:ǖHİHHHP:ǖH۰HHHQ:ǖHHHH]:ǖHRHHH:ǖwHHHHH:ǖ^HFHHH:ǖEHDHHH:ǖ,HBHHH:ǖH<HHH:ǖH6HHH:ǖH2HHH:ǖH.HHH:ǖH+HHH:ǖH+HHH:ǖ}H"HHH:ǖdHHHH:ǖKHHHH:ǖ2H HHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖjHHHH:ǖQHHHH:ǖ8HHHH:ǖHHHH:ǖHHHH:ǖH܎HHH:ǖH؎HHH:ǖHЎHHH:ǖHɎHHH:ǖHÎHHH:ǖpHHHH:ǖWHHHH:ǖ>HHHH:ǖ%HHHH:ǖ HHHH:ǖHHHH:ǖHHHH:ǖHyHHH:ǖHoHHH:ǖHhHHH:ǖvH_HHH:ǖ]HTHHH:ǖDHNHHH:ǖ+HFHHH:ǖHAHHH:ǖH=HHH:ǖH8HHH:ǖH2HHH:ǖH.HHH:ǖH*HHH:ǖ|H!HHH:ǖcHHHH:ǖJHHHH:ǖ1HHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖH؍HHH:ǖHЍHHH:ǖiHƍHHH:ǖPHHHH:ǖ7HHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖH}HHH:ǖHsHHH:ǖoHlHHH:ǖVHfHHH:ǖ=H]HHH:ǖ$HZHHH:ǖ H[HHH:ǖH\HHH:ǖH]HHH:ǖH[HHH:ǖHXHHH:ǖHSHHH:ǖuHNHHH:ǖ\HHHHH:ǖCHBHHH:ǖ*H<HHH:ǖH:HHH:ǖH2HHH:ǖH/HHH:ǖH2HHH:ǖH4HHH:ǖH3HHH:ǖ{H2HHH:ǖbH2HHH:ǖIH0HHH:ǖ0H,HHH:ǖH*HHH:ǖH&HHH:ǖH$HHH:ǖH HHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖhHHHH:ǖOHHHH:ǖ6HHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖHHHH:ǖH܌HHH:ǖHьHHH:ǖHȌHHH:ǖnHHHH:ǖUHHHH:ǖ@H[]A\A]A^A_ÐH\$Hl$HLd$Ll$H8HH5yHT$11=u!HHl$ H\$Ld$(Ll$0H8DH|$H5KwHHuzH|$H59E1VHnH=[1 HIHT$H5H谲H=q!HL辳HI$HHI$t:MtIEHHIEt1H2H|$H5H'fID$LP0IELP0HIcH\$Hl$HLd$Ll$H8HH5KHT$11u!HHl$ H\$Ld$(Ll$0H8DH|$H5'HHu*H|$H5E1HH=8Z1еHIHT$H5SH`H=!HLnHI$HHI$t:MtIEHHIEt1H2H|$H5pH׵fID$LP0IELP0蒷HIcH\$Hl$HLd$Ll$H8HH5HT$11蝲u!HHl$ H\$Ld$(Ll$0H8DH|$H5״HHuڵH|$H5E1趴HγH=X1耴HIHT$H5HH=!HLHI$HHI$t:MtIEHHIEt1H2H|$H5=H致fID$LP0IELP0BHIcSHH51H0HL$(HT$ `HD$(HHH@1@8H=Ht:HT$ HH H5HRH81HR H$辰1H0[fDHt$HHD$Zu6H|$蜱Ht$HHD$ZHD$H0[1H0[É話H0[H|$ HHtHHHtHD$('@HHH5̃HT$1H3t-HD$H $H5H@HP H H8H$1ү1Hff.H\$Hl$HLd$Ll$HHH HT$LL$LD$H5_1豯u1H\$(Hl$0Ld$8Ll$@HHfH|$H-ςLl$読HHHE18H=Ht>HHuMuRI}HT$Ht$迳H HdH|$HGt>!LH@H H5HH81蕮1fDHi H5bH81p1fH|$HHHHI H\$Hl$HLd$Ll$H5Lt$HHH " HT$LL$LD$11u$H\$ Hl$(Ld$0Ll$8Lt$@HHfDH|$H-ρLl$ HHHtxH=HteH|$HHH5HHHIH|$H5DE1دHtHI fDE1E1ŰHHuMufH=HtNH=Ht@H=Ht-I}HT$Ht$腱H HDMtH H5}HH81耬1fE1H\$Hl$HLd$Ll$H5Lt$HHH R HT$LL$LD$1L1u$H\$ Hl$(Ld$0Ll$8Lt$@HHfDH|$L%Ll$H-~3HLH18HHuTH=ڀHH=BHI}HT$Ht$3Hl H?H|$LHH5~H˭HHڬIH|$H5~覭H1Ht跬HLuMu,HH(҅HHȦ H5HH81蜪1DE1qH\$Hl$HLd$Ll$H59~Lt$HHH r HT$LL$LD$1l1u$H\$ Hl$(Ld$0Ll$8Lt$@HHfDH|$L%~Ll$H-}SHLH18uGHH(҅u:Ht5Hǥ H5HH81蛩1`@HHu)I}HT$Ht$>Hw H*fDH|$LHtfH5|H׫HtRHIH|$H5|趫H1HtǪHLM5fDE1ff.H\$Hl$HLd$Ll$H5|Lt$HHH ¤ HT$LL$LD$1輨1u$H\$ Hl$(Ld$0Ll$8Lt$@HHfDH|$L%o|Ll$H-~裦HLH18HHuDH=J}HI}HT$Ht$躬H HVf.H|$LcHH5.{HKHHZIH|$H5}&H1Ht7HLuMu,HH(҅,H#HH H5HH811DE1qUHH5{1SHHHH  HT$8LD$01u HH[]fDH|$8H5/zOHgHHt HC u"Hs H5H81z1fDH5zH豩HHtH5*!H tH5bzHרHH|$0H肤H|$0HD$HL$(HT$HHD$uvHD$(HpXHtUNHVH=yv1MHHD$(PpH=yA1.Ht$(HHD$謩HD$HH[]H Hɦ@HHH5yHL$ 1H胥u1HH<$H5PyЧHtH5xH輧HtHϦH<$H5y蟧HtH貦T$ 9P ~HcHHPrHz肤Hɠ H5yH81踤1dUHH5x1SHH8HT$(1u H8[]fH|$(H5wH'HHt HC u"H3 H5\H81:1fDH5?xHqHHtH5!HʦtH5"xHH\$蒦H誥HHHLu0t$H|$zHHHD$HD$H8[]fDH8[]f.AVHAUIATUStx1H?HHPHHuHc1ILcH=mwKDHHPp1譥LHL9[]A\A]LA^L5 IL[]A\A]A^[]A\A]A^1颦fHHGHuBtHfHIH5w1蛣HǸHtfD#Hfffff.H\$Ll$HHl$Ld$H8HIHHT$H虤H|$HHդH=vHH1葤IH5vLHH$H=!HL2II$HHI$tNHtHHHHtJHEHHHEu HEHP0LH\$Hl$ Ld$(Ll$0H8ID$LP0HCHP0@Hi E1HHl$Ld$HH\$Ll$ILt$L|$HxHHL$(HT$0LD$H5yu1HD$ /u+1HH\$HHl$PLd$XLl$`Lt$hL|$pHxH|$(xH|$0H51tD$^H2HHHHtkHT$ H|$(H5-^ H HH8[]HPHT$HH0H|$HlHtHv@HCHP0@HPH H5mH81茉11IHHHD$ H nH5>0H=P^ if艊10H |nH50H=]" 3SHH5\1HHL$H"1tiLD$H\HLuW11H=^LH=i]LHHҌHH葉H[H=\LtH<$HHH5[HHHHH<$H5[轊HtHЉLD$;fDH$H5jLH@HP H H8H$1Շ1H[DHH譌HňH[H H1\fH\$Hl$HLd$H(HLD$H !Hq\1IH$貇u1H\$Hl$Ld$ H(H|$H5/[诉HH5zZH藉H~H覈IH|$H5}Z1pHt H胈HH<$Hł H9tHHtKH5Z?HXHNHHLuMv1LD$0{HHD$XLD$0H@0pLL$8H=\NH1Ld$L4$U{HH|Ht$XL8x(H|$pHHHHHGP0@IL|$8f.yHIL]@IM@H$H=L1z1HLHHHD$pHEHHHEHEHP0H|$pHEHHHEu HEHP0Ht$XL1.wfH=z1zIj|H$H5KHHuH|$`HL zH5yKHHIwuH=!HLvHD$hIHHIt1HH$H$L$L$L$L$HĸÐH$pH5EtHsH$hIH`[pH$hH$q$L$1E1LHH$8HNH$PHH5DE9tHH$HIsHH$XHH;=~m H5eE1sHH$H sH$ H$`HIH;=:m <H5!EsHH$HrH$8H$H$ H$H$@Ht$H5DhsHH$HxrH$0H$$|H$0H$MLIoH$(AHtLKqEuftH$@HHH1H"t$H$oHH¾sHLCpfDD@qH|H H$ HLquqH<HZDDŽ$H$H$ LrH$HIT$dML$(MD$H5DHHD$`HD$8HD$0HD$(ID$LH=@ L!H=?LkLLuMuOAE:>u,AE:>uAE:>uAE:>uHuIHUHuoDH5)MLHGf H81%j1fDH}H5=lHHkHHLj*kDkk@E1 He H5?H81i1OLmH}H5?1HEHEIMIUMEHEi LHLgE[@HULmH}LEH5-?1HxLxHUL5iH}H0Lt$H HD$IIIFHH}IFLisH}H0L|$H HD$IIIGHH}IGLUāE=E1E1u[LLHLLpNjLp.LLHL~iE18E1|jH01Ll$ILAEAEHxIElH01LD$ILA@A@MhE0H~c H5KH81Ug1HUH5T=HUH5D=H GLH5H==/fffffff.UHH5=1SHXH\$ HT$HD$0D$4D$8HKLCfu 1HX[]fH|$HH5:?iHtH5:H+iHtH>hHHtH|$HH5:iHtHhHtHL$LD$0HHHHD$HD$fu't$H|$eH|$HD$XfHD$EGg9fUHH5<1SHXH\$ HT$HD$0D$4D$8HKLCeu 1HX[]fH|$HH59/hHtH58HhHtH.gHHtH|$HH5}9gHtHgHtHL$LD$0HHHHD$HD$Yhu't$H|$dH|$HD$HeHD$E7f9fH\$Hl$HLd$Ll$HLt$L|$H8H$L$L$H F!H:HDŽ$H$1HDŽ$du@1H$H$L$L$ L$(L$0H8fDH$H548fH+H57HfHHeIH$H57E1qfHt HeIH$H591KfHt H^eHH$L=_ L9HH5w7fHH\$ HeIH1HH$HHD$gHD$E1E1HLHLH$3eu?HLL!au-HLaILfDE1d^HDŽ$H$H=71"e1H1HSHH$HHHHHCHP0H$fffff.UHH !HH8HH]LeLELmLuL}HL ^ dH%(HE1HEHEHEHEEHD$HEHD$HEH$13bu/1HUdH3%(H]LeLmLuL}@H1H5/7HHHUHHEH}HMHD$`HHdHD$XHHhHD$PHHTHD$HHHXHD$@HEHD$8HD$0HD$(HHw]eHEHUHHEHpf^H}HH^H=R0H1b^H=!I1H[MHEtI$HHI$u ID$LP0HEH\$Hl$HLd$HILl$H(H\LI\LIHH+`LLHHl$H\$Ld$Ll$ H(`S\H=@11H'^HW HH5@HH[*Yf.H\$Hl$Ld$Ll$H( HcHZHI[LH[HHtAHtRL%V HSV I<$H9GH=@HH1\I<$H%[HtHEHHHEt?HtHHHHt1H\$Hl$Ld$Ll$ H(HCHP0@HEHP0@;YfH5?1HH ^HItH5f?HH\H5]?HL\I<$LdZIEHHIE*IELP0UHSHH`S HtHSS HHHuH[ÐH_^H_default_context()krb5module.cretvalkrbV__doc__errors__module__AuthContextPrincipalCCacheRCacheKeytabKRB5_DEPRECATEDVALID_INT_BITSVALID_UINT_BITSKRB5_INT32_MAXKRB5_INT32_MINKRB5_INT16_MAXKRB5_INT16_MINSALT_TYPE_AFS_LENGTHSALT_TYPE_NO_LENGTHKRB5_NT_UNKNOWNKRB5_NT_PRINCIPALKRB5_NT_SRV_INSTKRB5_NT_SRV_HSTKRB5_NT_SRV_XHSTKRB5_NT_UIDKRB5_NT_X500_PRINCIPALKRB5_NT_SMTP_NAMEKRB5_NT_ENTERPRISE_PRINCIPALKRB5_NT_WELLKNOWNKRB5_NT_MS_PRINCIPALKRB5_NT_MS_PRINCIPAL_AND_IDKRB5_NT_ENT_PRINCIPAL_AND_IDADDRTYPE_INETADDRTYPE_CHAOSADDRTYPE_XNSADDRTYPE_ISOADDRTYPE_DDPADDRTYPE_NETBIOSADDRTYPE_INET6ADDRTYPE_ADDRPORTADDRTYPE_IPPORTENCTYPE_NULLENCTYPE_DES_CBC_CRCENCTYPE_DES_CBC_MD4ENCTYPE_DES_CBC_MD5ENCTYPE_DES_CBC_RAWENCTYPE_DES3_CBC_SHAENCTYPE_DES3_CBC_RAWENCTYPE_DES_HMAC_SHA1ENCTYPE_DSA_SHA1_CMSENCTYPE_MD5_RSA_CMSENCTYPE_SHA1_RSA_CMSENCTYPE_RC2_CBC_ENVENCTYPE_RSA_ENVENCTYPE_RSA_ES_OAEP_ENVENCTYPE_DES3_CBC_ENVENCTYPE_DES3_CBC_SHA1ENCTYPE_ARCFOUR_HMACENCTYPE_ARCFOUR_HMAC_EXPENCTYPE_UNKNOWNCKSUMTYPE_CRC32CKSUMTYPE_RSA_MD4CKSUMTYPE_RSA_MD4_DESCKSUMTYPE_DESCBCCKSUMTYPE_RSA_MD5CKSUMTYPE_RSA_MD5_DESCKSUMTYPE_NIST_SHACKSUMTYPE_HMAC_SHA1_DES3CKSUMTYPE_HMAC_SHA1_96_AES128CKSUMTYPE_HMAC_SHA1_96_AES256CKSUMTYPE_MD5_HMAC_ARCFOURCKSUMTYPE_HMAC_MD5_ARCFOURKRB5_KEYUSAGE_KDC_REP_TICKETKRB5_KEYUSAGE_AS_REP_ENCPARTKRB5_KEYUSAGE_TGS_REQ_AUTHKRB5_KEYUSAGE_AP_REQ_AUTHKRB5_KEYUSAGE_AP_REP_ENCPARTKRB5_KEYUSAGE_KRB_SAFE_CKSUMKRB5_KEYUSAGE_APP_DATA_CKSUMKRB5_KEYUSAGE_KRB_ERROR_CKSUMKRB5_KEYUSAGE_AD_MTEKRB5_KEYUSAGE_AD_ITEKRB5_KEYUSAGE_GSS_TOK_MICKRB5_KEYUSAGE_PA_SAM_RESPONSEKRB5_KEYUSAGE_PA_REFERRALKRB5_KEYUSAGE_AD_SIGNEDPATHKRB5_KEYUSAGE_PA_PKINIT_KXKRB5_KEYUSAGE_FAST_REQ_CHKSUMKRB5_KEYUSAGE_FAST_ENCKRB5_KEYUSAGE_FAST_REPKRB5_KEYUSAGE_FAST_FINISHEDKRB5_KEYUSAGE_AS_REQKRB5_CRYPTO_TYPE_EMPTYKRB5_CRYPTO_TYPE_HEADERKRB5_CRYPTO_TYPE_DATAKRB5_CRYPTO_TYPE_SIGN_ONLYKRB5_CRYPTO_TYPE_PADDINGKRB5_CRYPTO_TYPE_TRAILERKRB5_CRYPTO_TYPE_CHECKSUMKRB5_CRYPTO_TYPE_STREAMKDC_OPT_FORWARDABLEKDC_OPT_FORWARDEDKDC_OPT_PROXIABLEKDC_OPT_PROXYKDC_OPT_ALLOW_POSTDATEKDC_OPT_POSTDATEDKDC_OPT_RENEWABLEKDC_OPT_CNAME_IN_ADDL_TKTKDC_OPT_CANONICALIZEKDC_OPT_REQUEST_ANONYMOUSKDC_OPT_RENEWABLE_OKKDC_OPT_ENC_TKT_IN_SKEYKDC_OPT_RENEWKDC_OPT_VALIDATEKDC_TKT_COMMON_MASKAP_OPTS_RESERVEDAP_OPTS_USE_SESSION_KEYAP_OPTS_MUTUAL_REQUIREDAP_OPTS_ETYPE_NEGOTIATIONAP_OPTS_USE_SUBKEYAP_OPTS_WIRE_MASKAD_TYPE_RESERVEDAD_TYPE_EXTERNALAD_TYPE_REGISTEREDAD_TYPE_FIELD_TYPE_MASKTKT_FLG_FORWARDABLETKT_FLG_FORWARDEDTKT_FLG_PROXIABLETKT_FLG_PROXYTKT_FLG_MAY_POSTDATETKT_FLG_POSTDATEDTKT_FLG_INVALIDTKT_FLG_RENEWABLETKT_FLG_INITIALTKT_FLG_PRE_AUTHTKT_FLG_HW_AUTHTKT_FLG_OK_AS_DELEGATETKT_FLG_ENC_PA_REPTKT_FLG_ANONYMOUSLR_TYPE_THIS_SERVER_ONLYLR_TYPE_INTERPRETATION_MASKMSEC_DIRBITMSEC_VAL_MASKKRB5_PVNOKRB5_AS_REQKRB5_AS_REPKRB5_TGS_REQKRB5_TGS_REPKRB5_AP_REQKRB5_AP_REPKRB5_SAFEKRB5_PRIVKRB5_CREDKRB5_ERRORKRB5_LRQ_NONEKRB5_LRQ_ALL_LAST_TGTKRB5_LRQ_ONE_LAST_TGTKRB5_LRQ_ALL_LAST_INITIALKRB5_LRQ_ONE_LAST_INITIALKRB5_LRQ_ALL_LAST_TGT_ISSUEDKRB5_LRQ_ONE_LAST_TGT_ISSUEDKRB5_LRQ_ALL_LAST_RENEWALKRB5_LRQ_ONE_LAST_RENEWALKRB5_LRQ_ALL_LAST_REQKRB5_LRQ_ONE_LAST_REQKRB5_LRQ_ALL_PW_EXPTIMEKRB5_LRQ_ONE_PW_EXPTIMEKRB5_PADATA_NONEKRB5_PADATA_AP_REQKRB5_PADATA_TGS_REQKRB5_PADATA_ENC_TIMESTAMPKRB5_PADATA_PW_SALTKRB5_PADATA_ENC_UNIX_TIMEKRB5_PADATA_SESAMEKRB5_PADATA_OSF_DCEKRB5_CYBERSAFE_SECUREIDKRB5_PADATA_AFS3_SALTKRB5_PADATA_ETYPE_INFOKRB5_PADATA_SAM_CHALLENGEKRB5_PADATA_SAM_RESPONSEKRB5_PADATA_PK_AS_REQ_OLDKRB5_PADATA_PK_AS_REP_OLDKRB5_PADATA_PK_AS_REQKRB5_PADATA_PK_AS_REPKRB5_PADATA_ETYPE_INFO2KRB5_PADATA_SVR_REFERRAL_INFOKRB5_PADATA_SAM_REDIRECTKRB5_PADATA_REFERRALKRB5_PADATA_SAM_CHALLENGE_2KRB5_PADATA_SAM_RESPONSE_2KRB5_PADATA_PAC_REQUESTKRB5_PADATA_FOR_USERKRB5_PADATA_S4U_X509_USERKRB5_PADATA_FX_COOKIEKRB5_PADATA_FX_FASTKRB5_PADATA_FX_ERRORKRB5_PADATA_PKINIT_KXKRB5_ENCPADATA_REQ_ENC_PA_REPKRB5_SAM_USE_SAD_AS_KEYKRB5_SAM_SEND_ENCRYPTED_SADKRB5_SAM_MUST_PK_ENCRYPT_SADKRB5_PADATA_DASSKRB5_DOMAIN_X500_COMPRESSKRB5_AUTHDATA_IF_RELEVANTKRB5_AUTHDATA_KDC_ISSUEDKRB5_AUTHDATA_AND_ORKRB5_AUTHDATA_OSF_DCEKRB5_AUTHDATA_SESAMEKRB5_AUTHDATA_WIN2K_PACKRB5_AUTHDATA_SIGNTICKETKRB5_AUTHDATA_FX_ARMORKRB5_KPASSWD_SUCCESSKRB5_KPASSWD_MALFORMEDKRB5_KPASSWD_HARDERRORKRB5_KPASSWD_AUTHERRORKRB5_KPASSWD_SOFTERRORKRB5_KPASSWD_ACCESSDENIEDKRB5_KPASSWD_BAD_VERSIONKRB5_AUTH_CONTEXT_DO_TIMEKRB5_AUTH_CONTEXT_RET_TIMEKRB5_AUTH_CONTEXT_DO_SEQUENCEKRB5_AUTH_CONTEXT_PERMIT_ALLKRB5_AUTH_CONTEXT_USE_SUBKEYKRB5_TC_MATCH_TIMESKRB5_TC_MATCH_IS_SKEYKRB5_TC_MATCH_FLAGSKRB5_TC_MATCH_TIMES_EXACTKRB5_TC_MATCH_FLAGS_EXACTKRB5_TC_MATCH_AUTHDATAKRB5_TC_MATCH_SRV_NAMEONLYKRB5_TC_MATCH_2ND_TKTKRB5_TC_MATCH_KTYPEKRB5_TC_SUPPORTED_KTYPESKRB5_TC_OPENCLOSEKRB5_TC_NOTICKETMAX_KEYTAB_NAME_LENKRB5_GC_USER_USERKRB5_GC_CACHEDKRB5_GC_CANONICALIZEKRB5_GC_NO_STOREKRB5_GC_FORWARDABLEKRB5_GC_NO_TRANSIT_CHECKKRB5_PRINCIPAL_PARSE_NO_REALMKRB5_PRINCIPAL_UNPARSE_SHORTKRB5_PRINCIPAL_COMPARE_UTF8KRB5_TGS_NAME_SIZEKRB5_RECVAUTH_SKIP_VERSIONKRB5_RECVAUTH_BADAUTHVERSKRB5_GET_INIT_CREDS_OPT_SALTKRB5_FAST_REQUIREDKRB5_PROMPT_TYPE_PASSWORDKRB5_PROMPT_TYPE_NEW_PASSWORDKRB5_PROMPT_TYPE_PREAUTHKRB5KDC_ERR_NONEKRB5KDC_ERR_NAME_EXPKRB5KDC_ERR_SERVICE_EXPKRB5KDC_ERR_BAD_PVNOKRB5KDC_ERR_C_OLD_MAST_KVNOKRB5KDC_ERR_S_OLD_MAST_KVNOKRB5KDC_ERR_NULL_KEYKRB5KDC_ERR_CANNOT_POSTDATEKRB5KDC_ERR_NEVER_VALIDKRB5KDC_ERR_POLICYKRB5KDC_ERR_BADOPTIONKRB5KDC_ERR_ETYPE_NOSUPPKRB5KDC_ERR_SUMTYPE_NOSUPPKRB5KDC_ERR_TRTYPE_NOSUPPKRB5KDC_ERR_CLIENT_REVOKEDKRB5KDC_ERR_SERVICE_REVOKEDKRB5KDC_ERR_TGT_REVOKEDKRB5KDC_ERR_CLIENT_NOTYETKRB5KDC_ERR_SERVICE_NOTYETKRB5KDC_ERR_KEY_EXPKRB5KDC_ERR_PREAUTH_FAILEDKRB5KDC_ERR_PREAUTH_REQUIREDKRB5KDC_ERR_SERVER_NOMATCHKRB5KDC_ERR_PATH_NOT_ACCEPTEDKRB5KDC_ERR_SVC_UNAVAILABLEKRB5KRB_AP_ERR_BAD_INTEGRITYKRB5KRB_AP_ERR_TKT_EXPIREDKRB5KRB_AP_ERR_TKT_NYVKRB5KRB_AP_ERR_REPEATKRB5KRB_AP_ERR_NOT_USKRB5KRB_AP_ERR_BADMATCHKRB5KRB_AP_ERR_SKEWKRB5KRB_AP_ERR_BADADDRKRB5KRB_AP_ERR_BADVERSIONKRB5KRB_AP_ERR_MSG_TYPEKRB5KRB_AP_ERR_MODIFIEDKRB5KRB_AP_ERR_BADORDERKRB5KRB_AP_ERR_ILL_CR_TKTKRB5KRB_AP_ERR_BADKEYVERKRB5KRB_AP_ERR_NOKEYKRB5KRB_AP_ERR_MUT_FAILKRB5KRB_AP_ERR_BADDIRECTIONKRB5KRB_AP_ERR_METHODKRB5KRB_AP_ERR_BADSEQKRB5KRB_AP_ERR_INAPP_CKSUMKRB5KRB_AP_PATH_NOT_ACCEPTEDKRB5KRB_ERR_RESPONSE_TOO_BIGKRB5KRB_ERR_GENERICKRB5KRB_ERR_FIELD_TOOLONGKRB5KDC_ERR_KDC_NOT_TRUSTEDKRB5KDC_ERR_INVALID_SIGKRB5KRB_AP_ERR_NO_TGTKRB5KDC_ERR_WRONG_REALMKRB5KDC_ERR_KDC_NAME_MISMATCHKRB5_ERR_RCSIDKRB5_LIBOS_BADLOCKFLAGKRB5_LIBOS_CANTREADPWDKRB5_LIBOS_BADPWDMATCHKRB5_LIBOS_PWDINTRKRB5_PARSE_ILLCHARKRB5_PARSE_MALFORMEDKRB5_CONFIG_CANTOPENKRB5_CONFIG_BADFORMATKRB5_CONFIG_NOTENUFSPACEKRB5_BADMSGTYPEKRB5_CC_BADNAMEKRB5_CC_UNKNOWN_TYPEKRB5_CC_NOTFOUNDKRB5_CC_ENDKRB5_NO_TKT_SUPPLIEDKRB5KRB_AP_WRONG_PRINCKRB5KRB_AP_ERR_TKT_INVALIDKRB5_PRINC_NOMATCHKRB5_KDCREP_MODIFIEDKRB5_KDCREP_SKEWKRB5_IN_TKT_REALM_MISMATCHKRB5_PROG_ETYPE_NOSUPPKRB5_PROG_KEYTYPE_NOSUPPKRB5_WRONG_ETYPEKRB5_PROG_SUMTYPE_NOSUPPKRB5_REALM_UNKNOWNKRB5_SERVICE_UNKNOWNKRB5_KDC_UNREACHKRB5_NO_LOCALNAMEKRB5_MUTUAL_FAILEDKRB5_RC_TYPE_EXISTSKRB5_RC_MALLOCKRB5_RC_TYPE_NOTFOUNDKRB5_RC_UNKNOWNKRB5_RC_REPLAYKRB5_RC_IOKRB5_RC_NOIOKRB5_RC_PARSEKRB5_RC_IO_EOFKRB5_RC_IO_MALLOCKRB5_RC_IO_PERMKRB5_RC_IO_IOKRB5_RC_IO_UNKNOWNKRB5_RC_IO_SPACEKRB5_TRANS_CANTOPENKRB5_TRANS_BADFORMATKRB5_LNAME_CANTOPENKRB5_LNAME_NOTRANSKRB5_LNAME_BADFORMATKRB5_CRYPTO_INTERNALKRB5_KT_BADNAMEKRB5_KT_UNKNOWN_TYPEKRB5_KT_NOTFOUNDKRB5_KT_ENDKRB5_KT_NOWRITEKRB5_KT_IOERRKRB5_NO_TKT_IN_RLMKRB5DES_BAD_KEYPARKRB5DES_WEAK_KEYKRB5_BAD_ENCTYPEKRB5_BAD_KEYSIZEKRB5_BAD_MSIZEKRB5_CC_TYPE_EXISTSKRB5_KT_TYPE_EXISTSKRB5_CC_IOKRB5_FCC_PERMKRB5_FCC_NOFILEKRB5_FCC_INTERNALKRB5_CC_WRITEKRB5_CC_NOMEMKRB5_CC_FORMATKRB5_CC_NOT_KTYPEKRB5_INVALID_FLAGSKRB5_NO_2ND_TKTKRB5_NOCREDS_SUPPLIEDKRB5_SENDAUTH_BADAUTHVERSKRB5_SENDAUTH_BADAPPLVERSKRB5_SENDAUTH_BADRESPONSEKRB5_SENDAUTH_REJECTEDKRB5_PREAUTH_BAD_TYPEKRB5_PREAUTH_NO_KEYKRB5_PREAUTH_FAILEDKRB5_RCACHE_BADVNOKRB5_CCACHE_BADVNOKRB5_KEYTAB_BADVNOKRB5_PROG_ATYPE_NOSUPPKRB5_RC_REQUIREDKRB5_ERR_BAD_HOSTNAMEKRB5_ERR_HOST_REALM_UNKNOWNKRB5_SNAME_UNSUPP_NAMETYPEKRB5KRB_AP_ERR_V4_REPLYKRB5_REALM_CANT_RESOLVEKRB5_TKT_NOT_FORWARDABLEKRB5_FWD_BAD_PRINCIPALKRB5_GET_IN_TKT_LOOPKRB5_CONFIG_NODEFREALMKRB5_SAM_UNSUPPORTEDKRB5_SAM_INVALID_ETYPEKRB5_SAM_NO_CHECKSUMKRB5_SAM_BAD_CHECKSUMKRB5_KT_NAME_TOOLONGKRB5_KT_KVNONOTFOUNDKRB5_APPL_EXPIREDKRB5_LIB_EXPIREDKRB5_CHPW_PWDNULLKRB5_CHPW_FAILKRB5_KT_FORMATKRB5_NOPERM_ETYPEKRB5_CONFIG_ETYPE_NOSUPPKRB5_OBSOLETE_FNKRB5_EAI_FAILKRB5_EAI_NODATAKRB5_EAI_NONAMEKRB5_EAI_SERVICEKRB5_ERR_NUMERIC_REALMKRB5_ERR_BAD_S2K_PARAMSKRB5_ERR_NO_SERVICEKRB5_CC_READONLYKRB5_CC_NOSUPPKRB5_DELTAT_BADFORMATKRB5_PLUGIN_NO_HANDLEKRB5_PLUGIN_OP_NOTSUPPKRB5_ERR_INVALID_UTF8KRB5_ERR_FAST_REQUIREDKRB5_LOCAL_ADDR_REQUIREDKRB5_REMOTE_ADDR_REQUIREDKRB5_KDB_RCSIDKRB5_KDB_INUSEKRB5_KDB_UK_SERRORKRB5_KDB_UK_RERRORKRB5_KDB_UNAUTHKRB5_KDB_NOENTRYKRB5_KDB_ILL_WILDCARDKRB5_KDB_DB_INUSEKRB5_KDB_DB_CHANGEDKRB5_KDB_TRUNCATED_RECORDKRB5_KDB_RECURSIVELOCKKRB5_KDB_NOTLOCKEDKRB5_KDB_BADLOCKMODEKRB5_KDB_DBNOTINITEDKRB5_KDB_DBINITEDKRB5_KDB_ILLDIRECTIONKRB5_KDB_NOMASTERKEYKRB5_KDB_BADMASTERKEYKRB5_KDB_INVALIDKEYSIZEKRB5_KDB_CANTREAD_STOREDKRB5_KDB_BADSTORED_MKEYKRB5_KDB_NOACTMASTERKEYKRB5_KDB_KVNONOMATCHKRB5_KDB_CANTLOCK_DBKRB5_KDB_DB_CORRUPTKRB5_KDB_BAD_VERSIONKRB5_KDB_BAD_SALTTYPEKRB5_KDB_BAD_ENCTYPEKRB5_KDB_BAD_CREATEFLAGSKRB5_KDB_NO_PERMITTED_KEYKRB5_KDB_NO_MATCHING_KEYKRB5_KDB_DBTYPE_NOTFOUNDKRB5_KDB_DBTYPE_NOSUPKRB5_KDB_DBTYPE_INITKRB5_KDB_SERVER_INTERNAL_ERRKRB5_KDB_ACCESS_ERRORKRB5_KDB_INTERNAL_ERRORKRB5_KDB_CONSTRAINT_VIOLATIONKRB5_LOG_CONVKRB5_LOG_UNSTABLEKRB5_LOG_CORRUPTKRB5_LOG_ERRORKV5M_NONEKV5M_PRINCIPALKV5M_DATAKV5M_KEYBLOCKKV5M_CHECKSUMKV5M_ENCRYPT_BLOCKKV5M_ENC_DATAKV5M_CRYPTOSYSTEM_ENTRYKV5M_CS_TABLE_ENTRYKV5M_CHECKSUM_ENTRYKV5M_AUTHDATAKV5M_TRANSITEDKV5M_ENC_TKT_PARTKV5M_TICKETKV5M_AUTHENTICATORKV5M_TKT_AUTHENTKV5M_CREDSKV5M_LAST_REQ_ENTRYKV5M_PA_DATAKV5M_KDC_REQKV5M_ENC_KDC_REP_PARTKV5M_KDC_REPKV5M_ERRORKV5M_AP_REQKV5M_AP_REPKV5M_AP_REP_ENC_PARTKV5M_RESPONSEKV5M_SAFEKV5M_PRIVKV5M_PRIV_ENC_PARTKV5M_CREDKV5M_CRED_INFOKV5M_CRED_ENC_PARTKV5M_PWD_DATAKV5M_ADDRESSKV5M_KEYTAB_ENTRYKV5M_CONTEXTKV5M_OS_CONTEXTKV5M_ALT_METHODKV5M_ETYPE_INFO_ENTRYKV5M_DB_CONTEXTKV5M_AUTH_CONTEXTKV5M_KEYTABKV5M_RCACHEKV5M_CCACHEKV5M_PREAUTH_OPSKV5M_SAM_CHALLENGEKV5M_SAM_CHALLENGE_2KV5M_SAM_KEYKV5M_ENC_SAM_RESPONSE_ENCKV5M_ENC_SAM_RESPONSE_ENC_2KV5M_SAM_RESPONSEKV5M_SAM_RESPONSE_2KV5M_PREDICTED_SAM_RESPONSEKV5M_PASSWD_PHRASE_ELEMENTKV5M_GSS_OIDKV5M_GSS_QUEUEKV5M_FAST_ARMORED_REQKV5M_FAST_REQKV5M_FAST_RESPONSEKV5M_AUTHDATA_CONTEXTKRB524_BADKEYKRB524_BADADDRKRB524_BADPRINCKRB524_BADREALMKRB524_V4ERRKRB524_ENCFULLKRB524_DECEMPTYKRB524_NOTRESPKRB524_KRB4_DISABLEDASN1_BAD_TIMEFORMATASN1_MISSING_FIELDASN1_MISPLACED_FIELDASN1_TYPE_MISMATCHASN1_OVERFLOWASN1_OVERRUNASN1_BAD_IDASN1_BAD_LENGTHASN1_BAD_FORMATASN1_PARSE_ERRORASN1_BAD_GMTIMEASN1_MISMATCH_INDEFASN1_MISSING_EOCO:default_keytab_default_kt_ctxO:default_rcache_default_rcO:default_ccache_default_ccOs:__getattr__default_realmOO!O:__setattr__argument 2 must be a string_princOO!:rd_repauth_context_ac(iz#)(iiNI)Oi:__getitem__index out of rangeO:mk_repfileno(O)OOs:recvauthoptionsserverO:principalOOs:sendauthclientdata must be a string typeBLANKO:__len__OO:__eq__cobjOO|i:genaddrsO|OO!:__init__conobjO:__repr__OO|O:__init__OO:initializeO|SOOO:__init__ccnameppodefaultO|zOO:__init__Oz#|iOOO:rd_req(iiii)(iOOOOOO)flagslocalseqnumberremoteseqnumberO|OSiOOOO:mk_reqOO(iz#)(iiii)OOOz#z#OA ccache is requiredflags must be an integertmpuseruserkeyiz#zIzIinvalid address: %.400sOs#OO|O:init_creds_keytabOO!|ii:get_credentialsz#iauthdata must be a sequence(NN(iz#)(iiii)iiNz#z#N)selfin_datamk_privrd_privfhinitin_credsbasepidprimary_principalThis module implements python bindings to the Kerberos 5 API.ENCTYPE_AES128_CTS_HMAC_SHA1_96ENCTYPE_AES256_CTS_HMAC_SHA1_96KRB5_KEYUSAGE_AS_REQ_PA_ENC_TSKRB5_KEYUSAGE_TGS_REQ_AD_SESSKEYKRB5_KEYUSAGE_TGS_REQ_AD_SUBKEYKRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUMKRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEYKRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEYKRB5_KEYUSAGE_AP_REQ_AUTH_CKSUMKRB5_KEYUSAGE_KRB_PRIV_ENCPARTKRB5_KEYUSAGE_KRB_CRED_ENCPARTKRB5_KEYUSAGE_APP_DATA_ENCRYPTKRB5_KEYUSAGE_AD_KDCISSUED_CKSUMKRB5_KEYUSAGE_GSS_TOK_WRAP_INTEGKRB5_KEYUSAGE_GSS_TOK_WRAP_PRIVKRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUMKRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKIDKRB5_KEYUSAGE_PA_S4U_X509_USER_REQUESTKRB5_KEYUSAGE_PA_S4U_X509_USER_REPLYKRB5_KEYUSAGE_ENC_CHALLENGE_CLIENTKRB5_KEYUSAGE_ENC_CHALLENGE_KDCKDC_OPT_DISABLE_TRANSITED_CHECKTKT_FLG_TRANSIT_POLICY_CHECKEDKRB5_PADATA_ENC_SANDIA_SECURIDKRB5_PADATA_USE_SPECIFIED_KVNOKRB5_PADATA_GET_FROM_TYPED_DATAKRB5_PADATA_ENCRYPTED_CHALLENGEKRB5_ALTAUTH_ATT_CHALLENGE_RESPONSEKRB5_AUTHDATA_MANDATORY_FOR_KDCKRB5_AUTHDATA_INITIAL_VERIFIED_CASKRB5_AUTHDATA_ETYPE_NEGOTIATIONKRB5_KPASSWD_INITIAL_FLAG_NEEDEDKRB5_AUTH_CONTEXT_RET_SEQUENCEKRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDRKRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDRKRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDRKRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDRKRB5_GC_CONSTRAINED_DELEGATIONKRB5_PRINCIPAL_PARSE_REQUIRE_REALMKRB5_PRINCIPAL_PARSE_ENTERPRISEKRB5_PRINCIPAL_UNPARSE_NO_REALMKRB5_PRINCIPAL_UNPARSE_DISPLAYKRB5_PRINCIPAL_COMPARE_IGNORE_REALMKRB5_PRINCIPAL_COMPARE_ENTERPRISEKRB5_PRINCIPAL_COMPARE_CASEFOLDKRB5_GET_INIT_CREDS_OPT_TKT_LIFEKRB5_GET_INIT_CREDS_OPT_RENEW_LIFEKRB5_GET_INIT_CREDS_OPT_FORWARDABLEKRB5_GET_INIT_CREDS_OPT_PROXIABLEKRB5_GET_INIT_CREDS_OPT_ETYPE_LISTKRB5_GET_INIT_CREDS_OPT_ADDRESS_LISTKRB5_GET_INIT_CREDS_OPT_PREAUTH_LISTKRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPTKRB5_GET_INIT_CREDS_OPT_CANONICALIZEKRB5_GET_INIT_CREDS_OPT_ANONYMOUSKRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAILKRB5_PROMPT_TYPE_NEW_PASSWORD_AGAINKRB5KDC_ERR_C_PRINCIPAL_UNKNOWNKRB5KDC_ERR_S_PRINCIPAL_UNKNOWNKRB5KDC_ERR_PRINCIPAL_NOT_UNIQUEKRB5KDC_ERR_PADATA_TYPE_NOSUPPKRB5KDC_ERR_MUST_USE_USER2USERKRB5KDC_ERR_CLIENT_NOT_TRUSTEDKRB5KDC_ERR_DH_KEY_PARAMETERS_NOT_ACCEPTEDKRB5KDC_ERR_CERTIFICATE_MISMATCHKRB5KRB_AP_ERR_USER_TO_USER_REQUIREDKRB5KDC_ERR_CANT_VERIFY_CERTIFICATEKRB5KDC_ERR_INVALID_CERTIFICATEKRB5KDC_ERR_REVOKED_CERTIFICATEKRB5KDC_ERR_REVOCATION_STATUS_UNKNOWNKRB5KDC_ERR_REVOCATION_STATUS_UNAVAILABLEKRB5KDC_ERR_CLIENT_NAME_MISMATCHKRB5KDC_ERR_INCONSISTENT_KEY_PURPOSEKRB5KDC_ERR_DIGEST_IN_CERT_NOT_ACCEPTEDKRB5KDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDEDKRB5KDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTEDKRB5KDC_ERR_PUBLIC_KEY_ENCRYPTION_NOT_SUPPORTEDKRB5KDC_ERR_UNKNOWN_CRITICAL_FAST_OPTIONKRB5_KDB_STORED_MKEY_NOTCURRENT%.50s instance has no attribute '%.400s'You cannot set attribute '%.400s'auth_context keyword argument requiredA server keyword argument is requiredSecond argument must be a CCacheSecond argument must be a RCacheSecond argument must be a KeytabSecond argument must be a PrincipalInvalid type %s for argument 1primary_principal argument must be a PrincipalA server principal is requiredport numbers cannot be greater than 65535authdata must be a sequence or stringpk_default_contextContext_initAuthContext_setattrAuthContext_initPrincipal_initCCache__init__RCache_initKeytab_initkrbV.Krb5ErrorOOerr_codemessage;7$ !eddfgi4jj4$l\moqTst<u\vtww$yL||}}ăT$TTTTĈ <T|dt,D\Ԓ$DT < dl    , Ԧ T d tD t $ d zRx @N Nb B d<DBZB B(A0A8DPBC 8G0A(B BBBX t8A0A(B BBB$bI[@Ct F $cI[@Ct F $dI[@Ct F < f,AP@J} AG  AH F AA K AD \gUD P$tXg[P_c C $hgPXj G $hjgPXj G $ lgPXj G $mgPXj G <<PoAMCD`b AAG - AAA |pD c I D@qAMCDPV AAC  AAG KAA\rBECB A(A0Bf (A BBEH O (A BBBA A(A BBBDhrbDb J q$dr MN@O D ,sM[dp D pwhw$`wZI@Xi D ,8yM^pB C D}D b J _,d(~AP HQ AE  AK ,~AP HQ AE  AK ,AP HQ AE  AK $D j B D D K A , ACACLPJ AAH ,LAUDP]O AAH <|`AUDPs AAH l AAA LЃAMDPJ AAH F AAH p CAD P AAF $ 0UAM Zh H 44hAMD0HQ AAC  AAD ,l@AUDP^ AAD 4AP Hz AD  AF W AH $8LV0c^ I ,`AUBDpm AAE ,P4DHBMA CD@"  AABC ,|yAKDX AAF $AXPz AF hL`BCBB B(A0A8D] 8A0A(B BBBG ,<^QC A Tl`@BMA DPJ  AABH   AABA b  AABJ ,H^QڏE B ,AM }s B ,$ hAMDpEt AAC ,T HAMDpEt AAC , (kDB G , AW ps E $ kMKI0CB P6Ap$, ppX0I A (0! 4 oP @2!P ) o`ooZo00!64F4V4f4v44444444455&565F5V5f5v55555555566&666F6V6f6v66666666677&767F7V7f7v77777777788&868F8V8f8v88888888899&969F9V9f9v999999999::&:6:F:V:f:v:::::::::;__init__() -> KrbV.Context :Summary : Create a Krb Context object. Internal function, do not use. :Purpose : The KrbV.Context structure is designed to hold all per-thread state. All global variables that are thread-specific are stored in this structure, including default encryption-types, credentials-cache (ticket file), and default realms. The internals of the structure should never be accessed directly, functions exist for extracting information. :Return value : __init__() returns a Context object. default_ccache(context) -> CCache object :Summary : Retrieve the default credentials-cache object from the current Kerberos context, or from the ticket-file, if necessary. :Parameters : context : KrbV.Context The current Kerberos context holds the host's kerberos config-data, including default encryption-types, credentials-cache (ticket file), and default realms. :Purpose : default_ccache() loads the default ticket-file's contents into a CCache object. The default ticket-file's pathname is part of the krb context. BTW, only kerberos clients have ticket files; this is where a client's short-lived tickets and session keys stay, while a user is logged-in. :Action and side-effects : krb_context.default_ccache() calls CCache.__init__(context=krb_context), which in turn calls the krblib C routine krb5_cc_default(). krb5_cc_default() looks in the krb context for the default filename of the ticket file, and then reads the ticket-file's contents into a credentials-cache (a C data-structure), Finally, default_ccache() converts the C-struct credentials-cache to a CCache object. :Return value : A CCache object, containing the user's tickets and session-keys. default_rcache(context) -> KrbV.Context.RCache object :Summary : Retrieve the default replay-cache object from the current Kerberos context. :Parameters : context : KrbV.Context The current Kerberos context holds the host's kerberos config-data, including default encryption-types, credentials-cache (ticket file), and default realms. :Purpose : default_rcache() loads the default replay-cache into an RCache object. Only kerberized application-servers have replay caches. :Action and side-effects : krb_context.default_rcache() calls RCache.__init__(context=krb_context), which in turn calls the krblib C routine krb5_rc_default(). krb5_rc_default() looks in the krb context for the default replay cache, and default_rcache() converts the C-struct replay-cache to an RCache object. :Return value : An RCache object, containing the user's tickets and session-keys. default_keytab(context) -> KrbV.Context.Keytab object :Summary : Retrieve the default key-table object from the current, Kerberos context or from the default keytab-file, if necessary. :Parameters : context : KrbV.Context The current Kerberos context holds the host's kerberos config-data, including default encryption-types, credentials-cache (ticket file), and default realms. :Purpose : default_keytab() loads the default keytab-file's contents into a Keytab object. The default keytab-file's pathname is part of the krb context. Only kerberos servers have keytab files; this is where a server's long-lived secret keys stay. The keytab in not encrypted, so that the server can cold-start without a human operator's help. :Action and side-effects : KrbV.Context.default_keytab() calls RCache.__init__(context=krb_context), which in turn calls the krblib C routine krb5_rc_default(). krb5_rc_default() looks in the krb context for the default replay cache, and default_keytab() converts the C-struct replay-cache to an RCache object. :Return value : An RCache object, containing the user's tickets and session-keys. mk_req(in_data, options, server, keytab, auth_context) -> (auth_context, int, tkt-cipher [,tkt-plain]) :Parameters: server krbV.Principal : The server name. The server principal in the AP_REQ must be the same as the principal specified by this parameter. data : str (optional) A small buffer containing a message to send in the authenticator. If data is 'None', then mk_req() will use the string 'BLANK' as the message to be protected. BUG: This should be a msg-checksum, not the message itself. options : int (optional) KRB_AP_REQ flags. Valid flag values are: * AP_OPTS_MUTUAL_REQUIRED : The client requires mutual authentication, ie, kerberized proof of the server's identity. Normally, you should always use this flag, but only for the first send_auth() call on a connection. * AP_OPTS_USE_SESSION_KEY : Specific for user-to-user (ie, peer-to-peer) connections. Not used for most client-server applications. * AP_OPTS_USE_SUBKEY : The application client or server can choose a sub-session key, but this usually isn't necessary. These KRB_AP_REQ flags can be OR'ed together, as needed. For details about the use of user-to-user and subkeys, see RFC 4120. If the options are not needed, specify 'None' for this parameter. client : krbV.Principal (optional) The client name. ccache : KrbV.CCache (optional) auth_context : KrbV.AuthContext Info about the kerberos-session, especially: * the client's principal-name, and * any session-key the server shares with the client. creds tuple : BUG: this parameter should be a Creds object, not a tuple. For details of the creds tuple's structure, see the doc-string for 'Creds_tuple', elsewhere in this document. :Summary: Prepare a Krb 'application request' message. :Purpose : An application-client calls mk_req() to prepare a client's authenticated request for service (AP_REQ). The client must then explicitly send the AP_REQ message to the application-server; mk_req() doesn't send the message. The client's AP_REQ message contains the client's encrypted service-ticket and an encrypted timestamp (aka 'authenticator'). The client calls mk_req() as the first step in an authenticated handshake. :Action & side-effects : mk_req() doesn't actually send the AP_REQ message across the network; mk_req() only encodes and encrypts the AP_REQ message. However, mk_req() can ask the TGS for application tickets, if necessary. If you call mk_req() with a client-principal object (so that creds=='None'), mk_req() will use the client & service principals to get and use a service- ticket, with which to construct the AP_REQ message. In case mk_req() does request a new ticket, you should refresh your ccache parameter before calling mk_req() again, so that your next mk_req() call can use the new ticket. The caller must supply either a client parameter or a creds parameter. If you call mk_req() with both a client-principal and credentials, mk_req() will use the credentials' client-principal as the client's name. :Return value: mk_req() returns a tuple of 2 elements: 0. An AuthContext. The input authentication context, or a new AuthContext if the input AuthContext value was 'None'. In either case, the retval's AuthContext contains any new application that mk_req() may have requested from the TGS. 1. An output string, containing the new AP_REQ message. The caller's code must transmit this AP_REQ message to the application-server. :See also: KrbV.Context methods : rd_req(), mk_rep(), rd_rep(); KrbV.AuthContext methods : mk_priv(), rd_priv() rd_req(in_data, options, server, keytab, auth_context) -> (auth_context, int, tkt-cipher [,tkt-plain]) :Parameters: in_data : buffer The buffer containing the AP_REQ message. options : int The options from the AP_REQ message, as prepared by mk_req(). If the options are not needed, specify 'None' for this parameter. BUG: This should be an Output parameter, and the rd_req() method ignores the input options. rd_req() does return the output options correctly, in the retval tuple. server : krbV.Principal The server name. The server principal in the AP_REQ must be the same as the principal specified by this parameter. Specify 'None' if any server principal is acceptable. keytab : KrbV.keytab The key table that contains the server key. The default key table is used if 'None' is specified for this parameter. auth_context : KrbV.auth_context info about the kerberos-session, especially: * the server's principal-name, * any session-key the server shares with the client, * the session's replay-cache. :Summary: Parse a Krb 'application request' message. :Purpose : An application server calls rd_req() in order to authenticate a client's request for service (AP_REQ). The client's AP_REQ message includes the client's encrypted service-ticket and an encrypted timestamp (aka 'authenticator'). rd_req() decrypts both of these. The server calls rd_req() as the 2nd step in an authenticated handshake. :Action & side-effects : rd_req() doesn't actually read the AP_REQ message from the network; rd_req() only decrypts, decodes, and interprets the AP_REQ message. rd_req() decrypts the AP_REQ message, checks the message for freshness, and checks to make sure that the encrypted client-name matches the client who requested service. rd_req() populates an AuthContext for this session, with the following: * The client's name (from the decrypted ticket); * The client's session-key (from the decrypted ticket); * The AP_REQ message's timestamp (from the decrypted authenticator); * A handle for a replay cache (which holds this first authenticator). :Return value: rd_req() returns a tuple of 3 or 4 elements (usually 4): 0. An auth context, including the AP_REQ's decrypted authenticator. This is the input authentication context, or a new AuthContext object if the input AuthContext value was 'None'. 1. The client request's stipulated security options. For example, the client sends the flag krbV.AP_OPTS_MUTUAL_REQUIRED in order to tell the server to authenticate itself in return. 2. The server's Principal object, 3. A tuple, containing the plaintext of the ticket that mk_req() sent: a. ticket flags, b. session-key, including the enctype, c. the authenticated name of the client who sent the AP_REQ, d. list of transited realms (if this was an inter-realm AP_REQ), e. ticket-validity times: auth, start, end, renew_till, f. array of pointers to addresses, g. authorization data. Whew! :See also: KrbV.Context methods : mk_req(), mk_rep(), rd_rep(); KrbV.AuthContext methods : mk_priv(), rd_priv() The krb5_rd_req() man page fully explains rd_req()'s actions & results. Context_sendauth(fd, version, options, server, client, ccache, data) -> auth_context :Summary : Offer and complete an authenticated message-handshake and back. :Parameters : fd : file descriptor a network socket (TCP only, not UDP) version : str the client's version of the application protocol. options : int (optional) KRB_AP_REQ flags. Valid flag values are: * AP_OPTS_MUTUAL_REQUIRED : The client requires mutual authentication, ie, kerberized proof of the server's identity. Normally, you need to use this flag, but only for the first send_auth() call on a connection. * AP_OPTS_USE_SESSION_KEY : Specific for user-to-user (ie, peer-to-peer) connections. Not useful for most client-server applications. * AP_OPTS_USE_SUBKEY : The application client or server can choose a sub-session key, but this usually isn't necessary. These KRB_AP_REQ flags can be OR'ed together, as needed. For details about the use of user-to-user and subkeys, see RFC 4120. server : KrbV.Principal The application server's principal/instance name. client : KrbV.Principal (optional) The application client's principal/instance name. ccache : KrbV.CCache (optional) The client's credentials cache. data : str A plaintext message to be sent in authenticated form. The first two arguments are positional, and the rest are all keyword-parameters. :Purpose : sendauth() is a high-level routine that both sends a client's AP_REQ service-request _and_ receives the server's corresponding AP_REP reply. Further, sendauth() will automatically get service-tickets if necessary. No application-specific data get exchanged, except for version numbers. Note that only application-clients can call sendauth; the corresponding server-side method is recvauth(). The handshake's outcome is that the client & server both get complete AuthContext objects, which they then can use to exchange encrypted application-traffic via the AuthContext methods mk_priv() & rd_priv(). :Action & side-effects : A sendauth()/recvauth() handshake seeks agreement on : * Application-version number; * Client authentication; * Server authentication (optionally). sendauth() may ask the TGS for fresh application-credentials, and will then add this new ticket and session-key to the credentials cache. :Return value: sendauth() returns only a new auth_context object, but this is a BUG: The corresponding C call, krb5_sendauth(), also returns : * the decrypted reply-message from the server (for interpretation), * the application service-ticket (for reuse); * a KRB_ERROR structure (in case the client fails to authentocate). Context.sendauth() should return a tuple. :See also: KrbV.Context method : recvauth() KrbV.AuthContext methods : mk_priv(), rd_priv() Context_recvauth(fd, version, options, client, server, ccache, data) -> auth_context :Summary : Accept and complete an authenticated message-handshake. :Parameters : fd : file descriptor a network socket (TCP only, not UDP) version : str the client's version of the application protocol. server : KrbV.Principal (optional) The application server's principal/instance name. keytab : KrbV.Keytab (optional) The key table which contains the serer's secret key. options : int (optional) No server-side flags are defined yet for recvauth() in the krb5 C API. The first two arguments are positional, and the rest are all keyword-parameters. BUG: recvauth() should have an auth_context parameter, which holds the server's replay cache object. :Purpose : recvauth() is a high-level routine that both receives a client's AP_REQ service-request _and_ sends the server's corresponding AP_REP reply. No application-specific data get exchanged, except for version numbers. Note that only application-servers can call recvauth; the corresponding client-side call is sendauth(). The handshake's outcome is that the client & server both get complete AuthContext objects, which they then can use to exchange encrypted application-traffic via the AuthContext methods mk_priv() & rd_priv(). sendauth()/recvauth() is supposed to be easier to use than the similar- but-lower-level KrbV.Context methods mk_req(),rd_req(),mk_rep(),rd_rep(). :Action & side-effects : A sendauth()/recvauth() handshake seeks agreement on : * Application-version number; * Client authentication; * Server authentication (optionally). BUG: recvauth() needs an auth_context parameter, so that recvauth() can add the AP_REQ's authenticator to the auth_context's replay cache. :Return value: recvauth() returns only a new auth_context object, but this is a BUG: The corresponding C call, krb5_recvauth(), also returns : * the application service-ticket (for reuse); * a KRB_ERROR structure (in case the version numbers don't match, or the client fails to authenticate). Context.sendauth() should return a tuple. :See also: KrbV.Context method : sendauth() KrbV.AuthContext methods : mk_priv(), rd_priv() mk_rep(auth_context) -> str :Summary : Create Kerberos AP_REP Message (Authentication Handshake Reply) :Parameters : auth_context : KrbV.AuthContext info about the kerberos-session, especially: * the client's & server's principal-names, * any session-key the server shares with the client, * the session's replay-cache. :Purpose : An application server calls mk_rep() to prepare an AP_REP reply, after having authenticated a client's request for service (AP_REQ). :Action & side-effects: mk_rep() prepares, but doesn't send, an AP_REP handshake-reply message. The most important part of this AP_REP message is the server's echo of the client's encrypted timestamp, re-encrypted for the client's eyes. The client will interpret the server's echo of the timestamp as proof that it really is the correct app-server who is on the other end of the connection (since the server had to be able to decrypt the client's ticket, in order to encrypt the AP_REQ authenticator). The server calls mk_rep() as the 3rd step in an authenticated handshake. :Return value: mk_rep() returns a Python string containing the AP_REP message. :See also: KrbV.Context methods : mk_req(), rd_req(), rd_rep(); KrbV.AuthContext methods : mk_priv(), rd_priv() rd_rep(in_data, auth_context) -> AP_REP tuple :Parameters : in_data : buffer The buffer containing the AP_REP message. auth_context : KrbV.auth_context info about the kerberos-session, especially: * the client's & server's principal-names, * any session-key the server shares with the client, * the session's replay-cache. :Summary: Parse a Krb 'application reply' message. :Purpose : An application-client calls rd_rep() in order to authenticate the app-server's AP_REP message. The app-server's AP_REP message's main content is the server's echoed-&-reencrypted version of the client's encrypted timestamp (a.k.a. 'authenticator'). The client calls rd_rep() as the 4rd step in an authenticated handshake. This step completes the client's authentication with the app-server. :Action & side-effects : rd_rep() doesn't actually read the AP_REP message from the network; rd_rep() only decrypts, decodes, and interprets the AP_REP message. rd_rep() checks whether the AP_REP message's encrypted timestamp matches exactly the encrypted timestamp that the client originally sent in the handshake's initial AP_REQ message. :Return value: A tuple containing the contents of the contents of the AP_REP message. BUG: rd_rep() should return at least a string containing the AP_REP message's contents, so that the client can confirm the server's echoed timestamp. If these four routines {rd,mk}_re{p,q} are to support subkeys, then rd_rep() should also return the modified AuthContext parameter. __setattr__(string, value-object) -> 'None' :Summary : Set a KrbV.Context member object's value, by name. Internal function, do not use. :Purpose : __setattr__() supports only the following Context-members: * default_realm : Set the default realm. :Return value : 'None', or NULL. __getattr__(string) -> PyObject :Summary : Retrieve a KrbV.Context member object by name. Internal function, do not use. :Purpose : __getattr__() supports only the following Object-members: * _ctx : Sort of a copy() method? * default_realm : The default realm is extracted from the krb.conf file :Return value : This method's retval-type corresponds to the member-name parameter. __init__() -> KrbV.AuthContext :Summary : Create a KrbV AuthContext object. Internal function, do not use. :Purpose : The KrbV.AuthContext class holds an authenticated connection's state, just as krb5.Context holds a thread or process's state. KrbV.AuthContext is used by the KrbV functions that directly support authentication between an app-server & its client. This class contains the addresses and port numbers for the client and the server, keyblocks and sub-keys, sequence numbers, replay cache, and checksum-type, various flags, and more. :Return Value : __init__() returns an AuthContext object. :Other Methods : genaddrs() mk_priv() . rd_priv() genaddrs(file_desc, flags) -> NULL, None, or a kerberos error code :Summary : Copy some or all of the socket's addresses and ports to the AuthContext object. :Parameters : file_handle : A socket's file-handle object; flags : integer 0x00000001 : generate the local network address. 0x00000002 : generate the remote network address. 0x00000004 : generate the local network address and the local port. 0x00000008 : generate the remote network address and the local port. These flags can be OR'ed toegether, so as to extract some or all of the socket's addresses and ports, selectively. :Purpose : genaddrs() populates the AuthContext with optional addresses & ports. Some applications need these addresses in order to authenticate principals by IP-address, or for getting forwardable or proxiable tickets. :Return value : If the retval is: * None, then the genaddrs() call was successful. * NULL, then the socket's file-handle couldn't be converted to a file-descriptor. * Non-zero, then the kerberos library call returned an error. mk_priv() -> string, NULL or a kerberos error code :Summary : mk_priv() encrypts and integrity-protects a buffer of plaintext. :Parameters : in_data : string This buffer contains application-specific plaintext. :Purpose : Applications call mk_priv() in order to protect an outgoing application message from eavesdropping and from on-the-fly alteration. Either side of an application, client or server, can use mk_priv() before sending sensitive application traffic. The resulting ciphertext is called a KRB_PRIV message. After the other side receives this KRB_PRIV message, the recipient will use rd_priv() to decrypt and validate the message's contents. :Return Value : A KRB_PRIV message, which is a string containing the ciphertext. :Action & side-effects : mk_priv() can be computationally expensive, if the application is sending lots of encrypted traffic back-and-forth. Developers should use mk_priv() only when privacy is really necessary; often, it's enough to use mk_safe() instead, so as to protect the message only from on-the-fly alteration, without the expense of encryption. rd_priv() -> string, NULL or a kerberos error code :Summary : rd_priv() decrypts and integrity-checks a buffer of ciphertext. :Parameters : in_data : string This buffer contains application-specific ciphertext, and is called a KRB_PRIV message. :Purpose : Applications call rd_priv() in order to receive an incoming application message that the sender protected from eavesdropping and from on-the- fly alteration. Either side of an application, client or server, can use rd_priv() upon receiving protected, sensitive application traffic. The incoming ciphertext is called a KRB_PRIV message, and was prepared by the sender via a mk_priv() call. :Return Value : A string containing the decrypted plaintext, or an error code, if rd_priv() detected tampering. :Action & side-effects : rd_priv() can be computationally expensive, if the application is sending lots of encrypted traffic back-and-forth. Developers should use rd_priv() only when privacy is really necessary; often, it's enough to use rd_safe() instead, so as to protect the message only from on-the-fly alteration, without the expense of encryption. __setattr__(string, value-object) -> 'None' , NULL, or a kerberos error code. :Summary : Set a member-field in the AuthContext object. Internal function, do not use. :Parameters : __setattr__() supports only the following AuthContext-members: * addrs : tuple ( local_addr, local_port, remote_addr, remote_port) * flags : integer; valid flag values are: KRB5_AUTH_CONTEXT_DO_TIME Use timestamps KRB5_AUTH_CONTEXT_RET_TIME Save timestamps to output structure KRB5_AUTH_CONTEXT_DO_SEQUENCE Use sequence numbers KRB5_AUTH_CONTEXT_RET_SEQUENCE Copy sequence numbers to output structure * rcache : rcache object (Replay cache) * useruserkey : tuple ( enctype, string) (encryption key) :Purpose : __setattr__ changes the AuthContext contents, so as to control the behavior of the many krb-lib calls that use the AuthContext as a parameter. :Return value : 'None' means 'success,' NULL means 'invalid value,' non-zero integer is a kerberos error-code. __getattr__(string) -> value-object. :Summary : Get a member-field in the AuthContext object. Internal function, do not use. :Parameters : __getattr__() can get only the following AuthContext-members: * addrs : tuple ( local_addr, local_port, remote_addr, remote_port) * flags : integer; valid flag values are: KRB5_AUTH_CONTEXT_DO_TIME Use timestamps KRB5_AUTH_CONTEXT_RET_TIME Save timestamps to output structure KRB5_AUTH_CONTEXT_DO_SEQUENCE Use sequence numbers KRB5_AUTH_CONTEXT_RET_SEQUENCE Copy sequence numbers to output structure * key : tuple containing the keyblock contents :Return value : NULL means 'invalid attribute,' non-zero integer is a kerberos error-code. __init__(string, KrbV.Context) -> KrbV.Principal :Summary : Create a Principal object. Internal function, do not use. :Parameters : name : string eg, johhndoe@EXAMPLE.COM :Purpose : A kerberos principal is the basic account-indentifier for all users and application-services that Kerberos authenticates. The Principal object contains mostly names: * The 'principal name': the user's name or the service's name, * The Kerberos 'realm name', which identifies which kerberos key-database knows about this user or service. * A service-principal also contains an FQDN for a server that offers the service. For example: * 'johndoe/EXAMPLE.COM' is a user's principal, containing both his Principal name johndoe and his realm name EXAMPLE.COM * 'NFS/filer-1.EXAMPLE.COM' is a server's principal, containing the principal name NFS, the server's FQDN, including the realm name. :Return Value : A Principal object, containing the name components. :Other methods : __getitem__() __len__() __eq__() __repr__() __getitem__(integer) -> string :Summary : Get the i^th name component from a principal. Internal function, do not use. :Parameters : index : integer :Return value : A string containing the indexed name-component in the principal. __getitem__() returns NULL if anything goes wrong. :Purpose : A Principal holds names in a parsed array of name-components, where a 'component' is a string that appears between dots or slashes. __getitem__() is a krb-internal routine, mostly used for comparing principals, and for reassembling the name-components. __len__() -> integer :Summary : Get the number of name-components that a principal has. Internal function, do not use. :Return value : A string containing how many name-component are in the principal. __getitem__() returns NULL if anything goes wrong. :Purpose : A Principal holds names in a parsed array of name-components, where a 'component' is a string that appears between dots or slashes. __len__() is a krb-internal routine, mostly used for comparing principals, and when reassembling the name-components. __eq__( Principal, Principal) -> integer or None :Summary : Compare two principals' names. Internal function, do not use. :Parameters : Two Principals. :Return value : 1, if the principals are equal; None, if the principals are different. __repr__() -> string :Summary : Make a printable string from the Principal. Internal function, do not use. :Purpose : Reassemble a principal's name-components, to make a printable representation of the principal. __setattr__(string, object) -> NULL, or None. :Summary : Set the value of a member-field in the Principal object. Internal function, do not use. :Parameters : This method _doesn't_ support setting the following members: * realm : string eg, EXAMPLE.COM * name : string eg, johndoe :Return Value : NULL means you tried to set a disallowed member's value. None means you successfully set some other member's value. __getattr__(string) -> string :Summary : Get the value of a member-field in the Principal object. Internal function, do not use. :Parameters : This method supports only the following members: * realm : string eg, EXAMPLE.COM * name : string eg, johndoe :Return Value : __getattr__() always returns a string, unless the krb library call fails. __init__() -> CCache :Summary : Create a new Credentials Cache. :Parameters : name : string (optional) pathname for ticket file ccache : CCache (optional) empty CCache object primary_principal : Principal (optional) context : Context (optional) :Return Value : CCache object :Other Methods : initialize() __eq__() get_credentials() init_creds_keytab() principal() __eq__(CCache, CCache) -> 1 or None :Summary : Compare two credentials-cache objects, by Principal-name Internal function, do not use. :Parameters : Two Credentials Cache (CCache) objects. :Return Value : 1 if the two CCache objects have the same principal name, None if the two CCache objects' principal names are different. principal() -> Principal :Summary : Get the value of the CCache's principal member. :Return Value : KrbV.Principal :Purpose : Get the Principal object for the user or service that owns the CCache. get_credentials(Creds_tuple, integer, integer) -> Creds_tuple :Summary : Get an application-service ticket. :Parameters : in_creds : Creds_tuple options : integer 0x00000001 KRB5_GC_USER_USER Get a peer-to-peer ticket 0x00000002 KRB5_GC_CACHED Don't request a new ticket basepid : integer (unused?) :Return Value : Creds_tuple :Purpose : get_credentials() is the normal way for an application client to get tickets on the user's behalf. :Action & side-effects : * If the CCache contains up-to-date tickets for this service, get_credentials() retrieves those tickets from in_creds or the CCache. * If the CCache doesn't have up-to-date tickets, get_credentials() uses the user's TGT, in the in_creds parameter, to request tickets. * Either way, get credentials() returns an up-to-date application-ticket. * get_credentials() also may use the CCache self-object to find the TGT and to store the new tickets. :See also : init_creds_keytab() - for application-servers that need to request & use client-side tickets. init_creds_keytab(keytab, principal) -> NULL, None, or krb error code :Summary : Get a server's initial credentials, using a keytab. :Parameters : keytab principal :Return value : None means everything worked. NULL means the principal name was invalid. nonzero integer means the TGT-request failed somehow. :See also : get_credentials() - for application-clients that need to request & use tickets. initialize(Principal) -> None, NULL, or krb error code. :Summary : Initialize a CCache for a principal :Parameters : Principal : the user or service that owns this ccache. :Return value : None means everything worked. NULL means the principal name was invalid. nonzero integer means the krb library threw an error. :See also : init_creds_keytab() - for services that need to request & use client- side. __setattr__() -> NULL or None :Summary : Set the value of a member-field in the CCache object. Internal function, do not use. :Parameters : __setattr__() method _doesn't_ support setting the following members: * name * type :Return Value : NULL means you tried to set a disallowed member's value. None means you successfully set some other member's value. __getattr__(string) -> string :Summary : Get the value of a member-field in the CCache object. Internal function, do not use. :Parameters : __getattr__() method can access only the following members: * name : string name for the ticket cache, with no type prefix. * type : string CCache type-prefix. :Return Value : NULL means you tried to access a member that has no value. None means a krb llibrary call threw an error. __init__(context, string) -> NULL or None :Summary : Initialize a new RCache object (replay cache). Internal function, do not use. :Parameters : context : KrbV.Context (optional) kerberos context object name : string (optional) a unique name for the cache :Return Value : None means success NULL means the krb library couldn't find a replay-cache. :Purpose : A replay-cache is a server-side object, which the server's krb-lib uses to detect and reject replays of recently-offered client credentials. :Other Methods : __eq__() - Compare two replay caches by principal name. __eq__() -> 1 or None :Summary : Compare two replay caches, by Principal-name. Internal function, do not use. :Parameters : Two RCache objects. :Return value : 1 means the two RCache objects have the same principal name. None means the RCache objects have different principal names. __setattr__() -> NULL :Summary : Vestigial internal function, do not use. :Purpose: In recent versions of Kerberos, the rcache has become a totally opaque object, and there are no public methods to set RCache attributes. __getattr__() -> NULL :Summary : Vestigial internal function, do not use. :Purpose: In recent versions of Kerberos, the rcache has become a totally opaque object, and there are no public methods to get information about it. __init__(context, string) -> NULL or None :Summary : Initialize a new Keytab object. Internal function, do not use. :Parameters : context : Context object (optional) kerberos context object name : string (optional) The key table name in the format 'type:name'. The type must be a registered keytab type. The name must be unique for this type. keytab : Keytab object (optional) :Return Value : None means success NULL means the krb library couldn't find a keytab. :Purpose : A Keytab is a server-side object, which the server's krb-lib uses to access an application-server's secret key. :Action & side-effects: * If __init__() gets called without a Keytab name parameter, then the server's default keytab gets opened. * The new Keytab's context attribute is filled with the context parameter. :Other Methods : __eq__() - Compare two keytab objects by principal name. __eq__() -> 1 or None :Summary : Compare two Keytab objects, by Principal-name. Internal function, do not use. :Parameters : Two Keytab objects. :Return value : 1 means the two Keytab objects have the same principal name. None means the Keytab objects have different principal names. __setattr__() -> NULL or None :Summary : Set the value of a member-field in the Keytab object. Internal function, do not use. :Parameters : __setattr__() method _doesn't_ support setting the following members: * name :Return Value : NULL means you tried to set a disallowed member's value. None means you successfully set some other member's value. __getattr__(string) -> string :Summary : Get the value of a member-field in the Keytab object. Internal function, do not use. :Parameters : __getattr__() method can access only the following members: * name : string name for the keytab file, in 'type:name' format. :Return Value : NULL means you tried to access a member that has no value. None means a krb llibrary call threw an error. ; 5! p9!   B!p ЀI! Q!v @i! К@~!~ @!h `! `! P!  !    M &       &   `! `!  ! ! p! P@!    + 4  0!G ! !   ! " "  " M +   " " И@"[ "B 0@ "  %" )" -"   M       M   +  1" 7" ;" <"  @>" F" @@J" N" M M + krbVmodule.so.debugb&.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.data.bss.gnu_debuglink $oL( H 0PP 8oZZEo```T^))P  h44c 4 4n;;tz>T 0!00!0 0! 0(0!(000!001!1p@2!@25!5# Y"YPYY