Ë
    ÛJêj§
  ã                  ó˜   — d dl mZ d dlmZmZ d dlmZ erd dlmZm	Z	  G d„ de«      Z
 G d„ de
«      Z G d	„ d
e
«      Z G d„ de
«      Zy)é    )Úannotations)ÚABCÚabstractmethod)ÚTYPE_CHECKING)ÚDataClassificationÚEgressRequestc                  ó"   — e Zd ZdZedd„«       Zy)ÚExtensionPointu9   ZÃ¡kladnÃ­ rozhranÃ­ pro pluggable bezpeÄ�nostnÃ­ brÃ¡ny.c                 ó   — y)u7   VrÃ¡tÃ­ True, pokud je poÅ¾adavek povolen, jinak False.N© ©ÚselfÚrequests     úR/home/oem/CyberBrain26-unified/src/cyberbrain26/security_plane/extension_points.pyÚevaluatezExtensionPoint.evaluate   s   � ó    N©r   r   ÚreturnÚbool)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r
   r
   	   s   „ ÙCàòFó ñFr   r
   c                  ó"   — e Zd ZdZddd„Zdd„Zy)ÚRemoteClassificationGateuÀ   Rozhoduje, zda jsou klasifikace dovoleny pro vzdÃ¡lenÃ½ egress.

    Default je fail-closed: pokud nenÃ­ povolena ani jedna klasifikace,
    vÅ¡echny vzdÃ¡lenÃ© vÃ½stupy jsou odmÃ­ttnuty.
    Nc                ó`   — |€
t        «       }t        |t         «      st        |«      }|| _        y ©N)Ú	frozensetÚ
isinstanceÚallowed)r   r    s     r   Ú__init__z!RemoteClassificationGate.__init__   s)   € Øˆ?Ü“kˆGÜ˜'¤9Ô-Ü Ó(ˆGØˆ�r   c                óZ   ‡ — |j                   syt        ˆ fd„|j                   D «       «      S )NFc              3  ó:   •K  — | ]  }|‰j                   v –— Œ y ­wr   ©r    ©Ú.0Úcr   s     €r   ú	<genexpr>z4RemoteClassificationGate.evaluate.<locals>.<genexpr>%   ó   øè ø€ ÒF¨�1˜Ÿ™Ô$ÑFùó   ƒ©ÚclassificationsÚallr   s   ` r   r   z!RemoteClassificationGate.evaluate   s(   ø€ ð ×&Ò&ØÜÓF¨g×.EÑ.EÔFÓFÐFr   r   ©r    z$frozenset[DataClassification] | Noner   ©r   r   r   r   r!   r   r   r   r   r   r      s   „ ñôôGr   r   c                  ó"   — e Zd ZdZddd„Zdd„Zy)ÚLocalClassificationGateu£   Rozhoduje, zda jsou klasifikace dovoleny pro lokÃ¡lnÃ­ egress.

    Default je povoleno {PUBLIC} â€” lokÃ¡lnÃ­ proxy bÄ›Å¾nÄ› pracujÃ­
    s veÅ™ejnÃ½mi daty.
    Nc                ó„   — |€ddl m} t        |j                  h«      }t	        |t        «      st        |«      }|| _        y )Nr   )r   )Ú"cyberbrain26.security_plane.egressr   r   ÚPUBLICr   r    )r   r    r   s      r   r!   z LocalClassificationGate.__init__/   s9   € Øˆ?ÝMÜÐ!3×!:Ñ!:Ð ;Ó<ˆGÜ˜'¤9Ô-Ü Ó(ˆGØˆ�r   c                óZ   ‡ — |j                   syt        ˆ fd„|j                   D «       «      S )NFc              3  ó:   •K  — | ]  }|‰j                   v –— Œ y ­wr   r$   r%   s     €r   r(   z3LocalClassificationGate.evaluate.<locals>.<genexpr>:   r)   r*   r+   r   s   ` r   r   z LocalClassificationGate.evaluate7   s&   ø€ Ø×&Ò&ØÜÓF¨g×.EÑ.EÔFÓFÐFr   r   r.   r   r/   r   r   r   r1   r1   (   s   „ ñôôGr   r1   c                  ó"   — e Zd ZdZddd„Zdd„Zy)ÚEgressPermissionGateuý   CelkovÃ© rozhodnutÃ­ o tom, zda mÃ¡ bÃ½t egress vÅ¯bec povolen.

    Default je False (zakÃ¡zÃ¡no, fail-closed), lze ho zmÄ›nit na True pouze
    jako nouzovÃ© vypnutÃ­ bezpeÄ�nostnÃ­ch omezenÃ­ (napÅ™. po incidentu)
    bez zmÄ›ny jinÃ½ch politik.
    c                ó   — || _         y r   ©Úbase_decision)r   r;   s     r   r!   zEgressPermissionGate.__init__E   s
   € Ø*ˆÕr   c                ó   — | j                   S r   r:   r   s     r   r   zEgressPermissionGate.evaluateH   s   € Ø×!Ñ!Ð!r   N)F)r;   r   r   r/   r   r   r   r8   r8   =   s   „ ñô+ô"r   r8   N)Ú
__future__r   Úabcr   r   Útypingr   r3   r   r   r
   r   r1   r8   r   r   r   ú<module>r@      sJ   ðÝ "ç #Ý  áßTôF�Sô FôG˜~ô Gô.G˜nô Gô*"˜>õ "r   