
    0i                     t    d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZ  G d d          ZdS )    N)serializationhashes)paddingc                       e Zd Zd Zd ZdS )
OTAUpdaterc                     |d         | _         t          j        t          |d         d                                                    | _        |d         dz  | _        t          j                    | j        z   | _        d S )N	image_url
public_keyrb
poll_hoursi  )	urlr   load_pem_public_keyopenreadpub_keypoll_stimenext)selfcfgs     H/var/www/html/blood_donation_traceloop/python/gateway-sim/ota_updater.py__init__zOTAUpdater.__init__   se    {#$8c,>OPT9U9U9Z9Z9\9\]],'$.IKK$+-			    c                 4   t          j                     | j        k     rd S | xj        | j        z  c_        t          j        | j        d          j        }t          j        |          	                                }t          j        | j        dz             j        }| j
                            ||t          j                    t          j                               t!          j        d                              |           t'          j        dgd           d S )N
   )timeoutz.sigz/opt/rootfs.next.tar.gzz/usr/local/bin/swap_rootfs.shT)check)r   r   r   requestsgetr   contenthashlibsha256digestr   verifyr   PKCS1v15r   SHA256pathlibPathwrite_bytes
subprocessrun)r   imgshasigs       r   poll_if_duezOTAUpdater.poll_if_due   s    9;;""FF		T[ 		l48R0008nS!!((**|DHv-..6Cg&6&8&8&-//JJJ.//;;C@@@78EEEEEEr   N)__name__
__module____qualname__r   r/    r   r   r   r      s7        . . .
F F F F Fr   r   )r   r!   osr   yamlr*   r'   cryptography.hazmat.primitivesr   r   )cryptography.hazmat.primitives.asymmetricr   r   r3   r   r   <module>r8      s    = = = = = = = = = = = = = = = = = = = = = = = = = = = = @ @ @ @ @ @ @ @ = = = = = =F F F F F F F F F Fr   