
    9cg                     v    d dl Z d dlZd dlZd dlZ G d dej
                  j                  j                        Zy)    Nc                   4    e Zd ZdZdgZdZdZdZd Zd Z	d Z
y)UBIValidPluginzl
    Helps validate UBI erase count signature results.

    Checks header CRC and calculates jump value
    	SignatureNc                 |    t        j                  d|dd       d   }t        j                  |dd        dz  }||k(  S )Nz>I<   @   r   l    )structunpackbinasciicrc32)self	ec_header
header_crccalculated_header_crcs       :/usr/lib/python3/dist-packages/binwalk/plugins/ubivalid.py
_check_crczUBIValidPlugin._check_crc   sK    ]]42b)9:1=
 "*	!B!@ @: M 222    c                    | j                   |j                  j                  k(  rd|_        nd | _        d | _        d | _        d|_        |j                  j                  | _         | j                  s+| j
                  r|j                  | j
                  z
  | _        n|j                  | _        | j                  r| j                  |_        y d|_        y )NFTr   )current_filefilepathdisplaypeb_sizelast_ec_hdr_offsetoffsetjump)r   results     r   _process_resultzUBIValidPlugin._process_result   s     0 00"FN !DM&*D# DM "FN"KK,,}}!8!8"MMD,C,CCDM '-mmD#==--FKFKr   c                    |j                   r|j                  j                         j                  d      r| j                  j
                  j                  |j                   j                  |j                        }t        j                  j                  j                  |j                  d            }|j                          | j                  |dd       |_        |j                   r| j#                  |       y y y y )Nzubi erase count header)r   i   r   r   )r   descriptionlower
startswithmoduleconfig	open_filer   r   binwalkcorecompat	str2bytesreadcloser   validr   )r   r   fdr   s       r   scanzUBIValidPlugin.scan8   s    ;;6--335@@AYZ##--fkk.>.>v}}-UB++55bggdmDIHHJ??9Qr?;FL||$$V,  [;r   )__name__
__module____qualname____doc__MODULESr   r   r   r   r   r.    r   r   r   r      s/    
 mGLH36
-r   r   )	r	   r   binwalk.core.pluginr&   binwalk.core.compatr'   pluginPluginr   r4   r   r   <module>r9      s-       ;-W\\((// ;-r   