Your IP : 216.73.216.52


Current Path : /snap/lxd/current/lib/python3/dist-packages/pyuefivars/__pycache__/
Upload File :
Current File : //snap/lxd/current/lib/python3/dist-packages/pyuefivars/__pycache__/edk2.cpython-312.pyc

�

5B�i6��z�ddlZddlZddlZddlmZddlmZmZGd�de�Z	Gd�de�Z
Gd	�d
e�Zy)�N�)�AWSVarStoreFile)�UEFIVar�UEFIVarStorec� �eZdZdededefd�Zy)�EDK2Cert�name�guid�digestc�.�||_||_||_y�N)r	r
r)�selfr	r
rs    �Q/build/lxd/parts/uefivars/install/lib/python3.12/site-packages/pyuefivars/edk2.py�__init__zEDK2Cert.__init__s����	���	����N)�__name__�
__module__�__qualname__�str�bytesr�rrrr
s���S����u�rrc�6�eZdZdZddefd�Zdefd�Zdefd�Zy)	�
EDK2CertDB�n���u�I�׵4!czN�uefivarc�:�g|_|�|j|�yyr
)�certs�
init_from_var)rrs  rrzEDK2CertDB.__init__s"����
������w�'�rc��tj�}|j|j�|j	dt
j�t|�}|j�}|t|j�k7rtd��|dz
}|dk7r�|j�}|j�}||j�dz}|j�}|j|�jd�jd�}|j|�}	|jj!t#|||	��|d|z|zz
}|dk7r��yy)NrzInvalid certdb length���utf-16le��)�tempfile�SpooledTemporaryFile�write�data�seek�os�SEEK_SETr�read32�len�	Exception�readguid�read�decode�rstripr�appendr)
rr�file�sizer
�cert_node_size�	name_size�digest_sizer	rs
          rrzEDK2CertDB.init_from_vars���,�,�.���
�
�7�<�<� ��	�	�!�R�[�[�!��t�$���{�{�}���3�w�|�|�$�$��3�4�4��a�x���a�i��=�=�?�D�!�[�[�]�N�����
��)�I��+�+�-�K��9�9�Y�'�.�.�z�:�A�A�$�G�D��Y�Y�{�+�F��J�J���h�t�T�6�:�;��>�I�5��C�D�D��a�ir�varsc��tj�}t|�}|jd�d}|D]�}|js�t|j�dz}t|j�}|j|j�|jd|z|z�|j|�|j|�|j|jjd�dz�|j|j�||_|dz}��|jj�}|jjdtj �|j|�|jjdtj �|jj#�}t%d||j&d�S)Nrrr$r"s�certdb�)r%r&r�write32rr-r	�	writeguidr
r'�encode�	pubkeyidxr4�tellr)r*r+r0r�GUID_CERTDB)	rr9r4r@�varr7r8�filesizer(s	         r�to_varzEDK2CertDB.to_var1sO���,�,�.���t�$�����Q���	��	&�C��:�:���C�H�H�
��)�I��c�j�j�/�K��N�N�3�8�8�$��L�L��)�3�k�A�B��L�L��#��L�L��%��J�J�s�x�x���z�2�W�<�=��J�J�s�z�z�"�%�C�M�!�A�
�I�	&��9�9�>�>�#���	�	���q�"�+�+�&����X���	�	���q�"�+�+�&��y�y�~�~����x��t�'7�'7��=�=rr
)rrrrBrrrrErrrrrs-��U�K�(��(�
E�W�E�*>�7�>rrc�0��eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8dZ9dZ:dZ;�fd7�Z<d8e=fd9�Z>d:e?d8e@fd;�ZAd<e=fd=�ZBd>�ZC�xZDS)?�EDK2UEFIVarStorers�+�v�L��'G[OPsx,�{��C��.N�w��?sZ�i@rr!r ��� �@�i�iii i@i�ilr�iiiiiiii	i
iii
iiiiiiiiiiiiiiiiic�Z
��t�|��t�|_t	j
�}|j
|�|jdtj�t|�}|jd�}|dk7rtd|z��|j�}||jk7rtd|z��|j�|_|j t#|�kDrtd|j z��|jd�}|dk7rtd	|z��|j%�|_|j)�}|j)�}|j+|d|�dk7rtd
|z��|j)�}|dk7rtd��|j-�}	|	dk7rtd|	z��|j-�}
|
d
k7rtd|
z��g|_d}	|j%�|j%�}
}|dk(r|
dk(rn&|j.j1||
f�|||
zz
}�Q|j |k7rtd|j.z��||j2j5�k7rtd|z��|j�}||j6k7rtd|z��|j%�|_|jd�}||j:k7rtd|z��|j)�dk(�r�|j-�}|j-�|j%�}|j�}||j=�}|j%�}||j%�}|j%�}|j�}|j|�j?d�jAd�}|j|�}||jBk(ra||jDk(rd}tG|||||d�}|dk(r ||jHk(rt|�|_n|jJj1|�|j2j|j2j5�dzdztj�|j)�dk(r���|jjLD]X}|jJD]G}|jN|jNk(s�|jP|jPk(s�7|jR|_)�I�Zy)NrrJ�zInvalid Zero Vector: %szInvalid GUID: %szInvalid length: %sr �_FVHzInvalid FVH signature: %szInvalid header checksum: 0x%xz'FVH with extension header not supportedz Wrong value for FVH.Reserved: %sr!zInvalid FVH Revision: 0x%xzInvalid blockmap: %szInvalid header length: %szInvalid Varstore GUID: %srIzInvalid Varstore Status: %s�Ur"r#r;����)*�superrrr;r%r&r'r)r*r+rr0r.r/�	GUID_NVFS�read64�lengthr-r,�attrs�read16�csum16�read8�blockmapr3r4rA�
GUID_VARSTORE�varsize�VARSTORE_STATUS�
readtimestampr1r2�
STATE_SETTLED�EMPTY_TIMESTAMPrrBr9rr	r
r)rr(r4�
zerovector�fsguid�sig�hlength�csum_hdr�ext_hdr_offset�reserved�rev�total_bytes�	block_cnt�block_bytes�vsguid�status�state�attr�monotoniccount�	timestampr@�namelen�datalenr
r	rC�cert�	__class__s                           �rrzEDK2UEFIVarStore.__init__�sc���
���� �l����,�,�.���
�
�4���	�	�!�R�[�[�!��t�$���Y�Y�t�_�
��<�<��5�
�B�C�C�������T�^�^�#��.��7�8�8��k�k�m����;�;��T��"��0�4�;�;�>�?�?��i�i��l���'�>��7�#�=�>�>��[�[�]��
��+�+�-���;�;�=���K�K��X�g��'�1�,��;�h�F�G�G�������Q���E�F�F��:�:�<���q�=��>��I�J�J��j�j�l���#�:��8�3�>�?�?���
����%)�[�[�]�D�K�K�M�{�I��A�~�+��"2���M�M� � �)�[�!9�:��9�{�2�2�K���;�;�+�%��2�T�]�]�B�C�C��d�i�i�n�n�&�&��7�'�A�B�B�������T�'�'�'��7�&�@�A�A��{�{�}������1����T�)�)�)��9�F�B�C�C��k�k�m�v�%��J�J�L�E��J�J�L��;�;�=�D�!�[�[�]�N���*�*�,�I����
�I���k�k�m�G��k�k�m�G��=�=�?�D��9�9�W�%�,�,�Z�8�?�?��E�D��9�9�W�%�D���*�*�*��� 4� 4�4� $�I��d�D�$��i��F���8�#���0@�0@�(@�",�S�/�D�K��I�I�$�$�S�)��I�I�N�N�D�I�I�N�N�,�s�2�d�:�B�K�K�H�-�k�k�m�v�%�2�K�K�%�%�	-�D��y�y�
-���8�8�t�y�y�(�S�X�X����-B�!%���C�J�
-�	-rrCc
��tjdttt	|�dz��zdz|�}d}|D]}||z}�	|dzS)N�<r!�Hr�)�struct�unpackr�intr-)rrC�u16�csum�bs     rr\zEDK2UEFIVarStore.csum16�sW���m�m�C�#�c�#�c�(�Q�,�&7�"8�8�3�>��D�����	�A��!�8�D�	��v�
�r�rawc��|jd�|j|j�|jd�|j|j�|jd�|jr|j|j�n|jd�t|d�r|j|j�n|jd�|jt|jdz�dz�|jt|j��|j|j�|j|jdzjd��|j|j�|jj!|jj#�dzd	zt$j&�y)
NrSrrQr@r#r!r"rTrU)�write16�write8rcr=rs�write64rur'�hasattrr@r-r	r(r
r?r4r)rAr*r+)rr�rCs   r�	write_varzEDK2UEFIVarStore.write_var�s)�����F���
�
�4�%�%�&��
�
�1�
����C�H�H�����A���=�=��I�I�c�m�m�$��I�I�j�!��3��$��K�K��
�
�&��K�K��N����C����4��(�1�,�-����C����M�"��	�	�#�(�(���	�	�3�8�8�d�?�*�*�:�6�7��	�	�#�(�(�����
�
�s�x�x�}�}���,��4�b�k�k�Br�returnc�
�t|d�st�|_t|d�s|j|_t|d�s�|j
|jz|jz|jz|jz|jz|jz|jz|jz|jz|jz|j z|j"z|j$z|j&z|j(z|_t|d�s t-|jdz�dz
|_t|d�s+|j|j0z|j0fg|_t5t7j8��}|j;d�|j;|j<�|j?|j�|j;d	�|jA|j*�|jBjE�}|jGd
�|jBjE�}|jGd
�|j;d�|jId�|j2D]'\}}|jA|�|jA|��)|jAd
�|jAd
�|jBjE�}|jBjK|tLjN�|jG|�|jBjKd
tLjN�|jBjQ|�}|jBjK|tLjN�|jGd|jS|�z
d
z�|jBjK|tLjN�|j;|jT�|jA|j.�|j;|jV�|jY||jj[|j\��|j\D]}|jY||��|jBjE�|jkDrt_d��|jBjK|jdz
tLjN�|jId
�|jBjKd
tLjN�|jBjQ�S)Nr;rYrZr`r!iH r^rQrRrsrOr}z Can not fit variables into storer)0r�rr;�DEFAULT_LENGTHrY�EFI_FVB2_READ_DISABLED_CAP�EFI_FVB2_READ_ENABLED_CAP�EFI_FVB2_READ_STATUS�EFI_FVB2_WRITE_DISABLED_CAP�EFI_FVB2_WRITE_ENABLED_CAP�EFI_FVB2_WRITE_STATUS�EFI_FVB2_LOCK_CAP�EFI_FVB2_LOCK_STATUS�EFI_FVB2_STICKY_WRITE�EFI_FVB2_MEMORY_MAPPED�EFI_FVB2_ERASE_POLARITY�EFI_FVB2_READ_LOCK_CAP�EFI_FVB2_READ_LOCK_STATUS�EFI_FVB2_WRITE_LOCK_CAP�EFI_FVB2_WRITE_LOCK_STATUS�EFI_FVB2_ALIGNMENT_16rZr�r`�OVMF_BLOCK_SIZEr^rr%r&r'rWr�r=r4rAr�r�r)r*r+r0r\r_rar�rEr9r.)	rr��hlength_pos�csum_posrnrorh�fvhrCs	         r�	__bytes__zEDK2UEFIVarStore.__bytes__
s	���t�X�&�$�,�D�K��t�X�&��-�-�D�K��t�W�%��8�8��.�.�/��)�)�*��0�0�1��/�/�	0�
�*�*�+��&�&�
'��)�)�*��*�*�+��+�+�	,��,�,�
-��+�+�,��.�.�/��,�,�
-��/�/�0��*�*�+�D�J� �t�Y�'��t�{�{�Q��/�$�6�D�L��t�Z�(�#�k�k�T�-A�-A�A�4�CW�CW�X�Y�D�M��h�;�;�=�>��	�	�	�*���	�	�$�.�.�!����D�K�K� ��	�	�'�����D�J�J���h�h�m�m�o�����A���8�8�=�=�?�����A���	�	�)���
�
�3��&*�m�m�	%�"�I�{��K�K�	�"��K�K��$�	%�	���A�����A���(�(�-�-�/�����
�
�k�2�;�;�/����G�����
�
�a����%��h�h�m�m�G�$�����
�
�h����,����W�t�{�{�3�/�/�&�8�:����
�
�g�r�{�{�+�	�	�	�$�$�$�%����D�L�L�!��	�	�$�&�&�'�	
���s�D�K�K�.�.�t�y�y�9�:��9�9�	%�C��N�N�3��$�	%��8�8�=�=�?�T�[�[�(��>�?�?�	���
�
�d�k�k�A�o�r�{�{�3��
�
�1�
����
�
�a����%��x�x�}�}��rc��|D�cgc]!}|j�jd���#c}D]X}|ddk(r5t|�dk7s|dstd��t	|d�dz|_�@tdj
|���ycc}w)	N�=rrDr!rz,option "filesize" requires a second argumentrNzUnknown Option type "{}")�strip�splitr-�
SystemExitr�rY�format)r�options�options   r�set_output_optionsz#EDK2UEFIVarStore.set_output_optionsfs���?F�G�V�v�|�|�~�+�+�C�0�G�
	�F��a�y�J�&���K�1�$�F�1�I�$�F���"�&��)�n�t�3��� �.�5�5�f�=���
	��Gs�&B
)ErrrrBrWr_rcrar�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��EFI_FVB2_ALIGNMENT�EFI_FVB2_WEAK_ALIGNMENT�EFI_FVB2_ALIGNMENT_1�EFI_FVB2_ALIGNMENT_2�EFI_FVB2_ALIGNMENT_4�EFI_FVB2_ALIGNMENT_8r��EFI_FVB2_ALIGNMENT_32�EFI_FVB2_ALIGNMENT_64�EFI_FVB2_ALIGNMENT_128�EFI_FVB2_ALIGNMENT_256�EFI_FVB2_ALIGNMENT_512�EFI_FVB2_ALIGNMENT_1K�EFI_FVB2_ALIGNMENT_2K�EFI_FVB2_ALIGNMENT_4K�EFI_FVB2_ALIGNMENT_8K�EFI_FVB2_ALIGNMENT_16K�EFI_FVB2_ALIGNMENT_32K�EFI_FVB2_ALIGNMENT_64K�EFI_FVB2_ALIGNMENT_128K�EFI_FVB2_ALIGNMENT_256K�EFI_FVB2_ALIGNMENT_512K�EFI_FVB2_ALIGNMENT_1M�EFI_FVB2_ALIGNMENT_2M�EFI_FVB2_ALIGNMENT_4M�EFI_FVB2_ALIGNMENT_8M�EFI_FVB2_ALIGNMENT_16M�EFI_FVB2_ALIGNMENT_32M�EFI_FVB2_ALIGNMENT_64M�EFI_FVB2_ALIGNMENT_128M�EFI_FVB2_ALIGNMENT_256M�EFI_FVB2_ALIGNMENT_512M�EFI_FVB2_ALIGNMENT_1G�EFI_FVB2_ALIGNMENT_2G�AAVMF_BLOCK_SIZEr�rrr\rrr�r�r��
__classcell__)rys@rrGrGKs����U�K�S�I�W�M��M�9�O��N�",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",��",�O�h-�T�%��C�_�C�7�C�*W�5�W�rrrG)r~r%r*�aws_filer�varstorerr�objectrrrGrrr�<module>r�s=����	�%�+��v��4>��4>�nf�|�fr