
    F2j%                        U d dl mZ d dlZd dlZd dlmZ d dlmZ dZde	d<   da
de	d	<   g d
Zde	d<   ddgZde	d<   h dZde	d<   ddZefddZdS )    )annotationsN)Path)PEM_cert_to_DER_certiint#STALE_TRUST_STORE_THRESHOLD_SECONDSzfloat | None_LAST_NEWEST_MTIME)z/var/sslz/usr/share/sslz/usr/local/sslz/usr/local/opensslz/usr/local/etc/opensslz/usr/local/share/certsz/usr/lib/sslz/usr/sslz/etc/opensslz/etc/pki/ca-trust/extracted/pemz/etc/pki/tlsz/etc/sslz
/etc/certsz/opt/etc/sslz/system/etc/security/cacertsz/boot/system/data/sslz	list[str]BUNDLE_TRUST_STORE_DIRECTORIESpemcrtKNOWN_TRUST_STORE_EXTENSIONS>   ocspemailtrustobjsigncodesign	timestamp	untrustedzset[str]BANNED_KEYWORD_NOT_TLSreturnlist[bytes]c                    g } d}t                      }t          D ]C}t          j                            |          s#t          |                              d          D ]	                                 sj        	                    d          
                                }|t          vr|                                du ret          fdt          D                       r	                                 }n# t           $ r Y w xY w|j        |j        f}|j        dk    r||v r|                    |           |j        |k    r|j        }t+          d          5 }|                                }d d d            n# 1 swxY w Y   |                                sDd	|vrd
nd}	d|	z   }
|                    |
          D ]}}|ry|                    d|	z             }|dk    r nZd                    ||d          |
g          }	 t7          |          }n# t8          $ r Y `w xY w|| vr|                     |           ~# t           t<          f$ r Y w xY wE|dk    r|nd a| S )Ng        *.Fc              3  ^   K   | ]'}|t                                                    v V  (d S )N)strlower).0kwfilepaths     Z/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/wassima/_os/_linux.py	<genexpr>z(root_der_certificates.<locals>.<genexpr>M   s:      TTrrS]]00222TTTTTT    r   zutf-8)encodingz-----END CERTIFICATE-----

z
z-----END CERTIFICATE-----z-----BEGIN CERTIFICATE----- ) setr	   ospathexistsr   rglobis_filesuffixlstripr   r   isdigitanyr   statOSErrorst_devst_inoaddst_mtimeopenreadstripsplitfindjoinr   
ValueErrorappendUnicodeDecodeErrorr   )certificatesnewest_mtimeseen_inodes	directory	extensionst	inode_keyfbundleline_endingboundarychunkstart_markerpem_reconstructedder_certificater   s                  @r    root_der_certificatesrO   3   s.    !#LL
 ),K3 ? ?	w~~i(( 	 Y--c22 :	 :	H9'')) $O22377==??	$@@@YEVEVEXEX\aEaEaTTTT=STTTTT !BB   H  Y	2	 9>> K// OOI...;--#%;L(W555 &VVXXF& & & & & & & & & & & & & & & ||~~ &EV&S&SddY_6D#\\(33 A AE A',zz2OR]2]'^'^'2--!E,.GGU<==5I84T,U,U)%.BCT.U.UOO) % % %$H% +,>>(//@@@/0    o:	x *6)9)9ts   $I9AI I'C<;I<
D	ID		 I*8I"F7IFI
FI$A%I
HI
H'	$I&H'	'IIIthreshold_secondsboolc                R    t           dS t          j                    t           z
  | k    S )a/  Return True if the system trust store has not been updated for longer than
    ``threshold_seconds``.

    The decision relies on the most recent modification time observed during
    the last call to :func:`root_der_certificates`. If no modification time has
    been collected yet, returns False.
    NF)r   time)rP   s    r    is_trust_store_stalerT      s'     !uIKK,,1BBBr"   )r   r   )rP   r   r   rQ   )
__future__r   r(   rS   pathlibr   sslr   r   __annotations__r   r	   r   r   rO   rT    r"   r    <module>rZ      s1   " " " " " " " 				        $ $ $ $ $ $ ,? # > > > > $(  ' ' ' '- - -     ( 
	+     
$ $ $     N N N Nb 3V 
C 
C 
C 
C 
C 
C 
Cr"   