Current File : //proc/2/root/usr/lib64/python2.7/site-packages/sepolgen/objectmodel.pyc
�
��^c @s�dZddddddddd g Zd
ZdZdZeeBZied
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 tPermMappingscBsDeZdZd�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
""