Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.141.0.34
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : objectmodel.cpython-36.opt-1.pyc
3

��fv�	@spdZddddddddd	g	Zd
ZdZdZeeBZeeeed
�ZedededediZGdd�d�ZGdd�d�Z	dS)z�
This module provides knowledge object classes and permissions. It should
be used to keep this knowledge from leaking into the more generic parts of
the policy generation.
Zsocket�fdZprocess�fileZlnk_fileZ	fifo_fileZdbusZ
capabilityZunix_stream_socket���)�n�r�w�brrrr	c@s eZdZdZdd�Zdd�ZdS)�PermMapaA mapping between a permission and its information flow properties.

    PermMap represents the information flow properties of a single permission
    including the direction (read, write, etc.) and an abstract representation
    of the bandwidth of the flow (weight).
    cCs||_||_||_dS)N)�perm�dir�weight)�selfrrr
�r�!/usr/lib/python3.6/objectmodel.py�__init__TszPermMap.__init__cCsd|jt|j|jfS)Nz'<sepolgen.objectmodel.PermMap %s %s %d>)r�
dir_to_strrr
)rrrr�__repr__YszPermMap.__repr__N)�__name__�
__module__�__qualname__�__doc__rrrrrrr
Msr
c@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�PermMappingsz�The information flow properties of a set of object classes and permissions.

    PermMappings maps one or more classes and permissions to their PermMap objects
    describing their information flow charecteristics.
    cCsi|_d|_t|_dS)N�)�classes�default_weight�	FLOW_BOTH�default_dir)rrrrrdszPermMappings.__init__cCs�d}x�|D]�}|j�}t|�dks
t|�dks
|ddkr<q
|ddkrx|d}||jkrbtd��i|j|<|j|}q
t|�dkr�td��|dkr�td	��t|dt|dt|d
��}|||j<q
WdS)zsRead the permission mappings from a file. This reads the format used
        by Apol in the setools suite.
        Nrr�#�classzduplicate class in perm map�z"error in object classs permissionszpermission outside of classr)�split�lenr�
ValueErrorr
�
str_to_dir�intr)rrZcur�lineZfields�c�pmrrr�	from_fileis"	
$

 zPermMappings.from_filecCs|j||S)z�Get the permission map for the object permission.

        Returns:
          PermMap representing the permission
        Raises:
          KeyError if the object or permission is not defined
        )r)r�objrrrr�get�szPermMappings.getcCs8y|j||}Wn tk
r2t||j|j�SX|S)aGet the permission map for the object permission or a default.

        getdefault is the same as get except that a default PermMap is
        returned if the object class or permission is not defined. The
        default is FLOW_BOTH with a weight of 5.
        )r�KeyErrorr
rr)rr*rr(rrr�
getdefault�s
zPermMappings.getdefaultcCs,t}x"|D]}|j||�}||jB}q
W|S)N)�	FLOW_NONEr-r)rr*�permsrrr(rrr�getdefault_direction�s

z!PermMappings.getdefault_directioncCs,d}x"|D]}|j||�}||j7}q
W|S)Nr)r-r
)rr*r/Ztotalrr(rrr�getdefault_distance�s

z PermMappings.getdefault_distanceN)
rrrrrr)r+r-r0r1rrrrr^s

rN)
rZimplicitly_typed_objectsr.Z	FLOW_READZ
FLOW_WRITErr$rr
rrrrr�<module>s

© 2025 GrazzMean