a àMÒeCã@sHddlZddlZddlZddlZddlZejjGdd„dejjƒƒZ dS)éNcsneZdZdZgd¢Zd‡fdd„ Zddd „Zedd d „ƒZdd d„Z eddd„ƒZ dZ dZ dZ dZdZ‡ZS)ÚTKEYz TKEY Record)Ú algorithmÚ inceptionÚ expirationÚmodeÚerrorÚkeyÚotheróc sftƒ ||¡| |¡|_| |¡|_| |¡|_| |¡|_| |¡|_ |  |¡|_ |  | ¡|_ dS)N) ÚsuperÚ__init__Z_as_namerZ _as_uint32rrZ _as_uint16rrZ _as_bytesrr ) ÚselfÚrdclassÚrdtyperrrrrrr ©Ú __class__©ú8/usr/lib/python3.9/site-packages/dns/rdtypes/ANY/TKEY.pyr (s       z TKEY.__init__NTc Ksd|j ||¡}dt|ƒ|j|j|j|jtj  |j d¡f}t |j ƒdkr`|dtj  |j d¡7}|S)Nz%s %u %u %u %u %srz %s) rZchoose_relativityÚstrrrrrÚdnsÚrdataZ _base64ifyrÚlenr )r ÚoriginÚ relativizeÚkwZ _algorithmÚtextrrrÚto_text=súz TKEY.to_textc Csr|jdd}| ¡}| ¡} | ¡} | ¡} | ¡ ¡} t | ¡} | d¡ ¡}t |¡}|||||| | | | |ƒ S)NF)rT)Úget_nameZ get_uint32Z get_uint16Z get_stringÚencodeÚbase64Z b64decodeZ!concatenate_remaining_identifiers)ÚclsrrÚtokrrZ relativize_torrrrrZkey_b64rZ other_b64r rrrÚ from_textLs    ÿzTKEY.from_textFc CsŠ|j |||¡| t d|j|j|j|j¡¡| t dt |j ƒ¡¡| |j ¡| t dt |j ƒ¡¡t |j ƒdkr†| |j ¡dS)Nú!IIHHz!Hr) rZto_wireÚwriteÚstructÚpackrrrrrrr )r ÚfileÚcompressrZ canonicalizerrrÚ_to_wire^sÿ z TKEY._to_wirec CsH| |¡}| d¡\}}}} | d¡} | d¡} |||||||| | | ƒ S)Nr#é)rZ get_structZget_counted_bytes) r rrÚparserrrrrrrrr rrrÚfrom_wire_parseris   ÿzTKEY.from_wire_parserér*ééé)r )NT)NTN)NNF)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__r rÚ classmethodr"r)r,ZSERVER_ASSIGNMENTZDIFFIE_HELLMAN_EXCHANGEZGSSAPI_NEGOTIATIONZRESOLVER_ASSIGNMENTZ KEY_DELETIONÚ __classcell__rrrrrs ö ÿ   r) rr%Z dns.exceptionrZ dns.immutableZ dns.rdataZ immutablerZRdatarrrrrÚs