MINI MINI MANI MO

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


oP\c	@sdZddddddddd	g	Zd
ZdZdZeeBZied
6ed6ed6ed6Zid
e6de6de6de6ZdddYZdddYZ	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 eZdZdZdZRS(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PermMappingscBsDeZdZdZdZdZdZdZdZRS(sThe 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}||jkrtdni|j|<|j|}q
t|dkrtdn|d
krtdnt|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(sGet 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.pytgetscCs@y|j||}Wn$tk
r;t||j|jSX|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
getdefaults

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_directions

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

(	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
""

OHA YOOOO