3 Kl�fv � @ sp d Z ddddddddd g Zd ZdZdZeeB Zeeeed �ZedededediZG dd� d�ZG dd� 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�br r r r c @ s e Zd ZdZdd� Zdd� ZdS )�PermMapa A 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). c C s || _ || _|| _d S )N)�perm�dir�weight)�selfr r r � r �!/usr/lib/python3.6/objectmodel.py�__init__T s zPermMap.__init__c C s d| j t| j | jf S )Nz'<sepolgen.objectmodel.PermMap %s %s %d>)r � dir_to_strr r )r r r r �__repr__Y s zPermMap.__repr__N)�__name__� __module__�__qualname__�__doc__r r r r r r r M s r c @ s@ e Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Zdd � 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. c C s i | _ d| _t| _d S )N� )�classes�default_weight� FLOW_BOTH�default_dir)r r r r r d s zPermMappings.__init__c C s� d}x�|D ]�}|j � }t|�dks t|�dks |d dkr<q |d dkrx|d }|| jkrbtd��i | j|<