Your IP : 3.143.23.153


Current Path : /lib64/python2.7/site-packages/sepolgen/
Upload File :
Current File : //lib64/python2.7/site-packages/sepolgen/objectmodel.pyc

�
��^c	@s�dZddddddddd	g	Zd
ZdZdZeeBZied
6ed6ed6ed6Zid
e6de6de6de6Zddd��YZddd��YZ	dS(s�
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.
tsockettfdtprocesstfiletlnk_filet	fifo_filetdbust
capabilitytunix_stream_socketiiitntrtwtbtPermMapcBs eZdZd�Zd�ZRS(sA 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(tpermtdirtweight(tselfRRR((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyt__init__Ts		cCsd|jt|j|jfS(Ns'<sepolgen.objectmodel.PermMap %s %s %d>(Rt
dir_to_strRR(R((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyt__repr__Ys	
(t__name__t
__module__t__doc__RR(((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyR
Ms	tPermMappingscBsDeZdZd�Zd�Zd�Zd�Zd�Zd�ZRS(s�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(Ni(tclassestdefault_weightt	FLOW_BOTHtdefault_dir(R((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyRds		c	Cs'd
}x|D]}|j�}t|�dks
t|�dks
|ddkrYq
n|ddkr�|d}||jkr�td��ni|j|<|j|}q
t|�dkr�td��n|d
kr�td��nt|dt|dt|d	��}|||j<q
Wd
S(ssRead the permission mappings from a file. This reads the format used
        by Apol in the setools suite.
        iit#tclasssduplicate class in perm mapis"error in object classs permissionsspermission outside of classiN(	tNonetsplittlenRt
ValueErrorR
t
str_to_dirtintR(RRtcurtlinetfieldstctpm((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyt	from_fileis"	
4

(cCs|j||S(s�Get the permission map for the object permission.

        Returns:
          PermMap representing the permission
        Raises:
          KeyError if the object or permission is not defined
        (R(RtobjR((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pytget�scCs@y|j||}Wn$tk
r;t||j|j�SX|S(sGet 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.
        (RtKeyErrorR
RR(RR+RR)((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyt
getdefault�s

cCs:t}x-|D]%}|j||�}||jB}q
W|S(N(t	FLOW_NONER.R(RR+tpermsRRR)((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pytgetdefault_direction�s

cCs:d}x-|D]%}|j||�}||j7}q
W|S(Ni(R.R(RR+R0ttotalRR)((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pytgetdefault_distance�s

(	RRRRR*R,R.R1R3(((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyR^s			
	
	N(((
Rtimplicitly_typed_objectsR/t	FLOW_READt
FLOW_WRITERR#RR
R(((s:/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyt<module>s
""