/usr/lib64/python3.9/site-packages/setools/diff/__pycache__
NameSizeModeActions
bool.cpython-39.opt-1.pyc26170644editdlrm
bool.cpython-39.pyc26170644editdlrm
bounds.cpython-39.opt-1.pyc39770644editdlrm
bounds.cpython-39.pyc39770644editdlrm
commons.cpython-39.opt-1.pyc21610644editdlrm
commons.cpython-39.pyc21610644editdlrm
conditional.cpython-39.opt-1.pyc16900644editdlrm
conditional.cpython-39.pyc16900644editdlrm
constraints.cpython-39.opt-1.pyc73040644editdlrm
constraints.cpython-39.pyc75810644editdlrm
context.cpython-39.opt-1.pyc15900644editdlrm
context.cpython-39.pyc15900644editdlrm
default.cpython-39.opt-1.pyc34020644editdlrm
default.cpython-39.pyc34020644editdlrm
descriptors.cpython-39.opt-1.pyc12300644editdlrm
descriptors.cpython-39.pyc12300644editdlrm
difference.cpython-39.opt-1.pyc55420644editdlrm
difference.cpython-39.pyc57060644editdlrm
fsuse.cpython-39.opt-1.pyc30520644editdlrm
fsuse.cpython-39.pyc30520644editdlrm
genfscon.cpython-39.opt-1.pyc31510644editdlrm
genfscon.cpython-39.pyc31510644editdlrm
ibendportcon.cpython-39.opt-1.pyc31690644editdlrm
ibendportcon.cpython-39.pyc31690644editdlrm
ibpkeycon.cpython-39.opt-1.pyc31430644editdlrm
ibpkeycon.cpython-39.pyc31430644editdlrm
initsid.cpython-39.opt-1.pyc21960644editdlrm
initsid.cpython-39.pyc21960644editdlrm
mls.cpython-39.opt-1.pyc98000644editdlrm
mls.cpython-39.pyc98000644editdlrm
mlsrules.cpython-39.opt-1.pyc39380644editdlrm
mlsrules.cpython-39.pyc40690644editdlrm
netifcon.cpython-39.opt-1.pyc32390644editdlrm
netifcon.cpython-39.pyc32390644editdlrm
nodecon.cpython-39.opt-1.pyc30510644editdlrm
nodecon.cpython-39.pyc30510644editdlrm
objclass.cpython-39.opt-1.pyc29710644editdlrm
objclass.cpython-39.pyc29710644editdlrm
polcap.cpython-39.opt-1.pyc15400644editdlrm
polcap.cpython-39.pyc15400644editdlrm
portcon.cpython-39.opt-1.pyc30840644editdlrm
portcon.cpython-39.pyc30840644editdlrm
properties.cpython-39.opt-1.pyc17040644editdlrm
properties.cpython-39.pyc17040644editdlrm
rbacrules.cpython-39.opt-1.pyc54470644editdlrm
rbacrules.cpython-39.pyc56220644editdlrm
roles.cpython-39.opt-1.pyc28950644editdlrm
roles.cpython-39.pyc28950644editdlrm
terules.cpython-39.opt-1.pyc157450644editdlrm
terules.cpython-39.pyc157450644editdlrm
typeattr.cpython-39.opt-1.pyc30580644editdlrm
typeattr.cpython-39.pyc30580644editdlrm
types.cpython-39.opt-1.pyc36940644editdlrm
types.cpython-39.pyc36940644editdlrm
typing.cpython-39.opt-1.pyc5910644editdlrm
typing.cpython-39.pyc5910644editdlrm
users.cpython-39.opt-1.pyc37220644editdlrm
users.cpython-39.pyc37220644editdlrm
__init__.cpython-39.opt-1.pyc20810644editdlrm
__init__.cpython-39.pyc20810644editdlrm
Edit: /usr/lib64/python3.9/site-packages/setools/diff/__pycache__/terules.cpython-39.pyc (15745B)
a qéqe]`ã @sˆddlZddlmZddlmZddlmZddlmZm Z m Z m Z m Z m Z mZmZmZmZddlmZmZmZddlmZmZmZmZmZmZmZd d lmZd d l m!Z!d d l"m#Z#m$Z$d d l%m&Z&m'Z'd dlm(Z(d dl)m*Z*edƒZ+edƒZ,Gdd„de ƒZ-Gdd„de ƒZ.Gdd„deƒZ/Gdd„de ƒZ0Gdd„de ƒZ1Gdd„de ƒZ2eee3fZ4ee5e3fZ6e e4e e6e e3e e3e e3e1fffffZ7e ee7e2e/ddœdd „Z8e7dd!œd"d#„Z9e7e2ee ee ee e-fd$œd%d&„Z:e3e d'gdfd(œd)d*„Z;e ee d+d,œd-d.„ZGd3d'„d'e#ƒZ?Gd4d+„d+e$eƒZ@Gd5d6„d6e$ƒZAdS)7éN)Ú defaultdict)Úintern)ÚEnum) ÚAnyÚCallableÚDictÚIterableÚListÚ NamedTupleÚOptionalÚSetÚTupleÚUnioné)ÚRuleNotConditionalÚ RuleUseErrorÚTERuleNoFilename)Ú AnyTERuleÚAVRuleÚ AVRuleXpermÚ ConditionalÚIoctlSetÚ TERuletypeÚTypeé)Úconditional_wrapper_factory)ÚDiffResultDescriptor)Ú DifferenceÚWrapper)Útype_wrapper_factoryÚtype_or_attr_wrapper_factory)ÚRuleList)Úclass_wrapper_factoryz<>ÚTruec@sVeZdZUdZeed<eeee fed<eeee fed<eeee fed<dS)ÚModifiedAVRulez5Difference details for a modified access vector rule.ÚruleÚ added_permsÚ removed_permsÚ matched_permsN) Ú__name__Ú __module__Ú __qualname__Ú__doc__rÚ__annotations__rr Ústrr©r/r/ú:/usr/lib64/python3.9/site-packages/setools/diff/terules.pyr$s r$c@s*eZdZUdZeed<eed<eed<dS)ÚModifiedTERulez.Difference details for a modified type_* rule.r%Z added_defaultZremoved_defaultN)r)r*r+r,rr-rr/r/r/r0r1$s r1c@seZdZdZdZdS)ÚSiderrN)r)r*r+ÚleftÚrightr/r/r/r0r20sr2c@s"eZdZUeeed<eed<dS)ÚRuleDBSideDataRecordÚpermsÚ orig_ruleN)r)r*r+r r.r-rr/r/r/r0r55s  r5c@s&eZdZUeeed<eeed<dS)ÚRuleDBSidesRecordr3r4N)r)r*r+r r5r-r/r/r/r0r8:s  r8c@s.eZdZUeeefed<eeefed<dS)Ú TypeDBRecordr3r4N)r)r*r+rr.rr-r/r/r/r0r9?s r9)Ú rule_listÚrule_dbÚtype_dbÚsideÚreturnc Csî|tjkr|j}n|j}|D�]Ê}z tt|jƒƒ}tt|jƒƒ}Wnty\t}t }Yn0||vr€t ƒ||<t ƒ|||<n|||vršt ƒ|||<|j j }t |jƒ} t| |ƒ} |||} |j ¡D�]} | j } | |vrè| || <| | vrút ƒ| | <|j ¡D]à}|j }||v�r |||<|| | v�rcCsR|tt}| ¡D�]6\}}|tkr(q| ¡D�]}| ¡D�]\}}||vrRq>| ¡D]ì\}}|||vrpqZ| ¡D]Ì\} } | |||vr’qx|||| } | j} | j} | jrø| rø| j| jj@}|rø| j|}|ræt|| jƒ} nd} t | | ƒ|| <| jrx| rx| j| jj@}|rx| j|}|�r2t|| jƒ} nd} t | | ƒ|| <qxqZq>q0qdS©N) rArBÚitemsÚvaluesr3r4r6r5r7r8)r;Z uncond_blockrLÚ cond_blocksrNrOÚsrc_datarPÚtgt_datarDrMZuncond_side_datarQrRÚcrSr/r/r0Ú_av_remove_redundant_rules¥sB      r\)r;r<r>c CsTg}g}g}| ¡D�]2}| ¡D�]"}| ¡D�]\}}| ¡D�]þ\} } |  ¡D]ì} | jrÐ| jrÐ| jj| jj@} | jj| } | jj| }| s”|rÎ| jj}| |j||j| | jj¡}| t||| | ƒ¡qT| j�r | jj}| |j||j| | jj¡}| |¡qT| jrT| jj}| |j||j| | jj¡}| |¡qTqBq0q"q|||fSrU) rWrVr3r4r6r7Zderive_expandedÚappendr$)r;r<ÚaddedÚremovedÚmodifiedrXrNrOrYrPrZrMZ common_permsZ left_permsZ right_permsZ original_ruler%r/r/r0Ú_av_generate_diffsËsJ    þ þþ þraÚTERulesDifference)Úruletyper>cs t ˆ¡‰ddœ‡fdd„ }|S)z€ This is a template for the access vector diff functions. Parameters: ruletype The rule type, e.g. "allow". N©r>cs2|j d ˆ|¡¡|jdus(|jdur0| ¡ttƒtƒƒ}tƒ}tƒ|t<tƒ|tt <|j d |¡¡t |jˆ||t j ƒ|j d |¡¡t |jˆ||t j ƒ|j d¡t|ƒ|j d¡t||ƒ\}}}|j  ¡|j  ¡| ¡t|d ˆ¡|ƒt|d ˆ¡|ƒt|d  ˆ¡|ƒdS) ú6Generate the difference in rules between the policies.úCGenerating {0} differences from {1.left_policy} to {1.right_policy}Nz(Expanding AV rules from {0.left_policy}.z)Expanding AV rules from {0.right_policy}.zRemoving redundant AV rules.zGenerating AV rule diff.ú added_{0}sú removed_{0}sú modified_{0}s)ÚlogÚinfoÚformatÚ_left_te_rulesÚ_right_te_rulesÚ_create_te_rule_listsr9rCrArBrTr2r3r4r\raÚclearÚsetattr)Úselfr<r;r^r_r`©rcr/r0Údiffüs2ÿÿ     zav_diff_template..diff©rÚlookup©rcrtr/rsr0Úav_diff_templateòs #rxÚAVRuleXpermWrapper)r:r>c Cs‚tƒ}|D]N}| ¡D]@}t|ƒ}z||j|jO_WqtyT|||<Yq0qq |rzt t¡ d  |t |ƒ¡¡|  ¡S)z` Generator that yields wrapped, expanded, av(x) rules with unioned permission sets. z/Expanded {0.ruletype} rules for {0.policy}: {1}) rCrHryr6ÚKeyErrorÚloggingZ getLoggerr)ÚdebugrlÚlenÚkeys)r:rVrKZ expanded_ruleZexpanded_wrapped_ruler/r/r0Ú_avxrule_expand_generator"s   ÿÿrcs t ˆ¡‰ddœ‡fdd„ }|S)z™ This is a template for the extended permission access vector diff functions. Parameters: ruletype The rule type, e.g. "allowxperm". Nrdc s|j d ˆ|¡¡|jr |js(| ¡|jt|jˆƒt|jˆƒdd�\}}}g}|D]V\}}|j|j|jdd�\}}} |s„|rZ|  t |j t |ƒt |ƒt dd„| Dƒƒƒ¡qZt |d ˆ¡tdd„|Dƒƒƒt |d ˆ¡td d„|Dƒƒƒt |d  ˆ¡|ƒd S) rerfF)Úunwrapcss|]}|dVqdS)rNr/)Ú.0rSr/r/r0Ú fóz2avx_diff_template..diff..rgcss|] }|jVqdSrU©Úorigin)r�Úar/r/r0r‚hrƒrhcss|] }|jVqdSrUr„)r�Úrr/r/r0r‚irƒriN)rjrkrlrmrnroÚ _set_diffrr6r]r$r…rrqrF) rrr^r_Úmatchedr`Ú left_ruleÚ right_ruler&r'r(rsr/r0rtHs6ÿÿ   ý  þ  ý  zavx_diff_template..diffrurwr/rsr0Úavx_diff_template>s $rŒcs t ˆ¡‰ddœ‡fdd„ }|S)zƒ This is a template for the type_* diff functions. Parameters: ruletype The rule type, e.g. "type_transition". NrdcsÔ|j d ˆ|¡¡|jdus(|jdur0| ¡| | |jˆt¡| |jˆt¡¡\}}}g}|D]2\}}t |j ƒt |j ƒkrf|  t ||j |j ƒ¡qft |d ˆ¡|ƒt |d ˆ¡|ƒt |d ˆ¡|ƒdS)rerfNrgrhri)rjrkrlrmrnrorˆZ_expand_generatorÚ TERuleWrapperrÚdefaultr]r1rq)rrr^r_r‰r`rŠr‹rsr/r0rtys*ÿÿþ  þzte_diff_template..diffrurwr/rsr0Úte_diff_templateos r�c@s¶eZdZUdZedƒZedƒZedƒZedƒZ edƒZ edƒZ edƒZ edƒZ edƒZedƒZedƒZedƒZedƒZed ƒZed ƒZed ƒZed ƒZed ƒZed ƒZed ƒZed ƒZed ƒZed ƒZed ƒZedƒZedƒZ edƒZ!edƒZ"edƒZ#edƒZ$edƒZ%edƒZ&e'dƒZ(edƒZ)edƒZ*edƒZ+e'dƒZ,edƒZ-edƒZ.edƒZ/e'dƒZ0edƒZ1edƒZ2edƒZ3dZ4e5e6e7fe8d<dZ9e5e6e7fe8d<ddœdd„Z:ddœdd„Z;dS) rbzV Determine the difference in type enforcement rules between two policies. ZallowÚ diff_allowsZ auditallowÚdiff_auditallowsZ neverallowÚdiff_neverallowsZ dontauditÚdiff_dontauditsZ allowxpermÚdiff_allowxpermsZauditallowxpermÚdiff_auditallowxpermsZneverallowxpermÚdiff_neverallowxpermsZdontauditxpermÚdiff_dontauditxpermsZtype_transitionÚdiff_type_transitionsZ type_changeÚdiff_type_changesZ type_memberÚdiff_type_membersNrmrnrdcCsä|j d |¡¡ttƒ|_|j ¡D]}|j|j  |¡q&|j  ¡D] \}}|j d t |ƒ|¡¡qH|j d |¡¡ttƒ|_ |j  ¡D]}|j |j  |¡q�|j   ¡D] \}}|j d t |ƒ|¡¡q²|j d¡dS)z$Create rule lists for both policies.z+Building TE rule lists from {0.left_policy}zLoaded {0} {1} rules.z,Building TE rule lists from {0.right_policy}z!Completed building TE rule lists.N)rjr|rlrÚlistrmZ left_policyZterulesrcr]rVr}rnZ right_policy)rrr%rcZrulesr/r/r0roÛs  z'TERulesDifference._create_te_rule_listscCsâ|j d¡d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_!d|_"d|_#d|_$dS)z%Reset diff results on policy changes.zResetting TE rule differencesN)%rjr|Ú added_allowsÚremoved_allowsÚmodified_allowsÚadded_auditallowsÚremoved_auditallowsÚmodified_auditallowsÚadded_neverallowsÚremoved_neverallowsÚmodified_neverallowsÚadded_dontauditsÚremoved_dontauditsÚmodified_dontauditsÚadded_allowxpermsÚremoved_allowxpermsÚmodified_allowxpermsÚadded_auditallowxpermsÚremoved_auditallowxpermsÚmodified_auditallowxpermsÚadded_neverallowxpermsÚremoved_neverallowxpermsÚmodified_neverallowxpermsÚadded_dontauditxpermsÚremoved_dontauditxpermsÚmodified_dontauditxpermsÚadded_type_transitionsÚremoved_type_transitionsÚmodified_type_transitionsÚadded_type_changesÚremoved_type_changesÚmodified_type_changesÚadded_type_membersÚremoved_type_membersÚmodified_type_membersrmrn©rrr/r/r0Ú _reset_diffñsH zTERulesDifference._reset_diff)cCsL||_t|jƒ|_t|jƒ|_t|jƒ|_|j|_t|jƒ|_t |ƒ|_ dSrU) r…r rGrIr"rDr¿rFr6ÚhashÚkey©rrr%r/r/r0Ú__init__!s    zAVRuleXpermWrapper.__init__cCs|jSrU©rÁr½r/r/r0Ú__hash__*szAVRuleXpermWrapper.__hash__cCs |j|jkSrUrÄ©rrÚotherr/r/r0Ú__lt__-szAVRuleXpermWrapper.__lt__cCs0|j|jko.|j|jko.|j|jko.|j|jkSrU)rGrIrDr¿rÆr/r/r0Ú__eq__0s  ÿ þ ýzAVRuleXpermWrapper.__eq__) r)r*r+r,Ú __slots__rrÃrÅrÈrÉr/r/r/r0rys  c@s4eZdZdZdZdd„Zdd„Zdd„Zd d „Zd S) r�z*Wrap type_* rules to allow set operations.©rGrIrDr?r@Úfilenamec Csš||_t|jƒ|_t|jƒ|_t|jƒ|_t|ƒ|_zt|j ƒ|_ |j |_ Wnt yjd|_ d|_ Yn0z |j |_ Wnt tfy”d|_ Yn0dSrU)r…r rGrIr"rDrÀrÁrr?r@rrÌrrrÂr/r/r0rÃ?s         zTERuleWrapper.__init__cCs|jSrUrÄr½r/r/r0rÅRszTERuleWrapper.__hash__cCs |j|jkSrUrÄrÆr/r/r0rÈUszTERuleWrapper.__lt__cCsH|j|jkoF|j|jkoF|j|jkoF|j|jkoF|j|jkoF|j|jkSrUrËrÆr/r/r0rÉXs  ÿ þ ý ü ûzTERuleWrapper.__eq__N) r)r*r+r,rÊrÃrÅrÈrÉr/r/r/r0r�9s r�)Br{Ú collectionsrÚsysrÚenumrÚtypingrrrrr r r r r rÚ exceptionrrrZ policyreprrrrrrrr?rZ descriptorsrÚ differencerrrJrr r!Zobjclassr"rArBr$r1r2r5r8r9r.ZCondExpÚboolZ CondBlockZRuleDBrTr\rarxrrŒr�rbryr�r/r/r/r0ÚsL   0$        , ÿ [&ÿ '01(