o
    >Vb
                     @   sD   d dl mZ ddlmZmZmZ G dd deZG dd deZdS )	   )Device   )
XMLBuilderXMLChildPropertyXMLPropertyc                   @   s@   e Zd ZdZedddZedddZedddZedddZdS )	_ActivePCRBanksactive_pcr_banksz./sha1T)is_boolz./sha256z./sha384z./sha512N)	__name__
__module____qualname__XML_NAMEr   sha1sha256sha384sha512 r   r   //usr/share/virt-manager/virtinst/devices/tpm.pyr      s    r   c                   @   s   e Zd ZdZdZdZeegZdZdZeegZ	dZ
dZdZe
eegZed	Zed
ZedZedZedZedddZeeddZedd Zdd ZdS )	DeviceTpmtpmz1.2z2.0passthroughemulatorztpm-tisztpm-crbz	tpm-spaprz./backend/@typez./backend/@versionz./@modelz./backend/device/@pathz./backend/encryption/@secretz./backend/@persistent_stateT)is_yesno)	is_singlec                 C   sB   |   }|jjjs| j stjS |jjd	tjrtjS d S )Nmodel)
lookup_domcapsdevicesr   presentos
is_pseriesr   	MODEL_CRBget_enum	has_value)guestdomcapsr   r   r   default_model4   s   zDeviceTpm.default_modelc                 C   sV   | j r
| js
| j| _| js| j| _| j| jkr%| js'| js)| || _d S d S d S d S )N)device_pathtypeTYPE_PASSTHROUGHTYPE_EMULATORr   versionr%   )selfr#   r   r   r   set_defaultsB   s   zDeviceTpm.set_defaultsN)r
   r   r   r   VERSION_1_2VERSION_2_0VERSIONSr(   r)   TYPES	MODEL_TISr    MODEL_SPAPRMODELSr   r'   r*   r   r&   encryption_secretpersistent_stater   r   r   staticmethodr%   r,   r   r   r   r   r      s0    

r   N)devicer   
xmlbuilderr   r   r   r   r   r   r   r   r   <module>   s   	