U
    +}f*                     @   s   d dl Z d dlmZ d dlZd dlZd dlZd dlZejd  dkZdd Zdd Z	dd	 Z
d
d ZdddZdddZdddZdd ZdS )    N)random   c                 C   s0   t  }||  | }t|}t|}|S N)hashlibsha1update	hexdigestbinascii	unhexlifyencode_base64)txtmr   Zsha1_hexZb64 r   :/tmp/pip-unpacked-wheel-ut9z9pyt/xades_bes_sri_ec/utils.pysha1_base64   s    

r   c                 C   s   t  }||  | }|S r   )r   r   r   r   )r   r   r   r   r   r   r      s    
r   c                    s.    fddt dt D }d|}|S )zR
    Divide una cadena cada n caracteres. Separados por un
    salto de linea
    c                    s   g | ]} ||  qS r   r   ).0icadnr   r   
<listcomp>'   s     z(split_string_every_n.<locals>.<listcomp>r   
)rangelenjoin)r   r   resr   r   r   split_string_every_n!   s     
r   c                   C   s   t tt d d S )NiX> i  )intmathfloorr   r   r   r   r   p_obtener_aleatorio.   s    r    Tc                 C   s<   |  |}g }|D ]$}|r$|| }n|| }|| q|S )z4
    Encuentra una cadena entre 2 delimitadores
    )splitappend)ZcadenaZdelimitadorZappend_startZcadena_separadaresultr   sr   r   r   separar_cadena2   s    

r%   UTF-8c                 C   s8   t | dr tr t| |} n
t| } | |} | S )Nencode)hasattrPY3base64	b64encoder'   decode)r   r'   r   r   r   r   H   s
    

r   rc              
   C   s*   t | |}| W  5 Q R  S Q R X d S r   )openread)ZrutaZmodoZarchivor   r   r   leer_archivoT   s    r0   c                 C   s   d |  j}|S )Nz</{}>)formatgetroottag)Zxml_element_treer   r   r   r   get_xml_nodo_finalZ   s    r4   )T)r&   )r-   )r*   r   r   r   r	   sysversion_infor)   r   r   r   r    r%   r   r0   r4   r   r   r   r   <module>   s   	


