a
    $ñ»jF  ã                   @  st  d dl mZ d dlZd dlZd dlmZ ddlmZmZ ddl	m
Z
 G dd„ deƒZG d	d
„ d
ejƒZG dd„ dejƒZeG dd„ dƒƒZG dd„ dejƒZeG dd„ dƒƒZeG dd„ dƒƒZeG dd„ dƒƒZeG dd„ dƒƒZG dd„ dejƒZddœdd„Zddœdd „Zd!dd"œd#d$„Zed%ƒeG d&d'„ d'ƒƒƒZed(ƒeG d)d*„ d*ƒƒƒZed+ƒeG d,d-„ d-ƒƒƒZdS ).é    )ÚannotationsN)Ú	dataclassé   )Úevent_classÚT_JSON_DICT)Únetworkc                      sB   e Zd ZdZddœdd„Zedd dœdd„ƒZ‡ fd	d
„Z‡  ZS )ÚCertificateIdz!An internal certificate ID value.Úint©Úreturnc                 C  s   | S ©N© ©Úselfr   r   ú4E:\soccer\ml_env\Lib\site-packages\mycdp/security.pyÚto_json   s    zCertificateId.to_json©Újsonr   c                 C  s   | |ƒS r   r   ©Úclsr   r   r   r   Ú	from_json   s    zCertificateId.from_jsonc                   s   d  tƒ  ¡ ¡S )NzCertificateId({}))ÚformatÚsuperÚ__repr__r   ©Ú	__class__r   r   r      s    zCertificateId.__repr__)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclassmethodr   r   Ú__classcell__r   r   r   r   r      s
   r   c                   @  s>   e Zd ZdZdZdZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚMixedContentTypez‹
    A description of mixed content (HTTP resources on HTTPS pages),
    as defined by https://www.w3.org/TR/mixed-content/#categories
    Z	blockablezoptionally-blockableÚnoneÚstrr
   c                 C  s   | j S r   ©Úvaluer   r   r   r   r   '   s    zMixedContentType.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   *   s    zMixedContentType.from_jsonN)
r   r   r   r   Z	BLOCKABLEZOPTIONALLY_BLOCKABLEÚNONEr   r    r   r   r   r   r   r"      s   r"   c                   @  sJ   e Zd ZdZdZdZdZdZdZdZ	dd	œd
d„Z
edd dœdd„ƒZdS )ÚSecurityStatez)The security level of a page or resource.ÚunknownZneutralZinsecureÚsecureÚinfozinsecure-brokenr$   r
   c                 C  s   | j S r   r%   r   r   r   r   r   8   s    zSecurityState.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   ;   s    zSecurityState.from_jsonN)r   r   r   r   ÚUNKNOWNZNEUTRALZINSECUREZSECUREÚINFOZINSECURE_BROKENr   r    r   r   r   r   r   r(   /   s   r(   c                   @  sÐ   e Zd ZU dZded< ded< ded< ded< ded< ded	< d
ed< d
ed< ded< ded< ded< ded< ded< ded< ded< dZded< dZded< dZded< ddœdd„Ze	dd dœdd „ƒZ
dS )!ÚCertificateSecurityStatez9Details about the security state of the page certificate.r$   ÚprotocolÚkey_exchangeÚcipherútyping.List[str]ÚcertificateÚsubject_nameÚissuerznetwork.TimeSinceEpochÚ
valid_fromÚvalid_toÚboolÚcertificate_has_weak_signatureÚcertificate_has_sha1_signatureÚ
modern_sslÚobsolete_ssl_protocolÚobsolete_ssl_key_exchangeÚobsolete_ssl_cipherÚobsolete_ssl_signatureNútyping.Optional[str]Úkey_exchange_groupÚmacÚcertificate_network_errorr   r
   c                 C  sî   t ƒ }| j|d< | j|d< | j|d< dd„ | jD ƒ|d< | j|d< | j|d< | j ¡ |d	< | j	 ¡ |d
< | j
|d< | j|d< | j|d< | j|d< | j|d< | j|d< | j|d< | jd urÂ| j|d< | jd urÖ| j|d< | jd urê| j|d< |S )Nr/   ÚkeyExchanger1   c                 S  s   g | ]}|‘qS r   r   ©Ú.0Úir   r   r   Ú
<listcomp>n   ó    z4CertificateSecurityState.to_json.<locals>.<listcomp>r3   ÚsubjectNamer5   Ú	validFromÚvalidToÚcertificateHasWeakSignatureÚcertificateHasSha1SignatureÚ	modernSSLÚobsoleteSslProtocolÚobsoleteSslKeyExchangeÚobsoleteSslCipherÚobsoleteSslSignatureÚkeyExchangeGrouprB   ÚcertificateNetworkError)Údictr/   r0   r1   r3   r4   r5   r6   r   r7   r9   r:   r;   r<   r=   r>   r?   rA   rB   rC   ©r   r   r   r   r   r   i   s2    




ÿÿ










z CertificateSecurityState.to_jsonr   c                 C  s&  | t | d¡ƒt | d¡ƒt | d¡ƒdd„ |d D ƒt | d¡ƒt | d¡ƒtj | d	¡¡tj | d
¡¡t|d ƒt|d ƒt| d¡ƒt| d¡ƒt| d¡ƒt| d¡ƒt| d¡ƒ| dd ¡d urÜt | d¡ƒnd | dd ¡d urüt | d¡ƒnd | dd ¡d u�rt | d¡ƒnd d�S )Nr/   rD   r1   c                 S  s   g | ]}t |ƒ‘qS r   ©r$   rE   r   r   r   rH   Œ   rI   z6CertificateSecurityState.from_json.<locals>.<listcomp>r3   rJ   r5   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rB   rU   )r/   r0   r1   r3   r4   r5   r6   r7   r9   r:   r;   r<   r=   r>   r?   rA   rB   rC   )r$   Úgetr   ZTimeSinceEpochr   r8   r   r   r   r   r   †   s<    ÿÿÿÿÿßz"CertificateSecurityState.from_json)r   r   r   r   Ú__annotations__rA   rB   rC   r   r    r   r   r   r   r   r.   @   s,   
r.   c                   @  s6   e Zd ZdZdZddœdd„Zedd dœdd	„ƒZd
S )ÚSafetyTipStatusZbadReputationZ	lookaliker$   r
   c                 C  s   | j S r   r%   r   r   r   r   r   ²   s    zSafetyTipStatus.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   µ   s    zSafetyTipStatus.from_jsonN)r   r   r   ZBAD_REPUTATIONZ	LOOKALIKEr   r    r   r   r   r   r   r[   ®   s
   r[   c                   @  sD   e Zd ZU ded< dZded< ddœdd	„Zedd d
œdd„ƒZdS )ÚSafetyTipInfor[   Úsafety_tip_statusNr@   Úsafe_urlr   r
   c                 C  s,   t ƒ }| j ¡ |d< | jd ur(| j|d< |S )NÚsafetyTipStatusÚsafeUrl)rV   r]   r   r^   rW   r   r   r   r   Ã   s
    

zSafetyTipInfo.to_jsonr   c                 C  s4   | t  |d ¡| dd ¡d ur,t| d¡ƒnd d�S )Nr_   r`   )r]   r^   )r[   r   rY   r$   r   r   r   r   r   Ê   s    ÿÿùzSafetyTipInfo.from_json)r   r   r   rZ   r^   r   r    r   r   r   r   r   r\   º   s
   
r\   c                   @  s\   e Zd ZU dZded< ded< dZded< dZd	ed
< ddœdd„Zedd dœdd„ƒZ	dS )ÚVisibleSecurityStatez*Security state information about the page.r(   Úsecurity_stater2   Úsecurity_state_issue_idsNz)typing.Optional[CertificateSecurityState]Úcertificate_security_stateztyping.Optional[SafetyTipInfo]Úsafety_tip_infor   r
   c                 C  s\   t ƒ }| j ¡ |d< dd„ | jD ƒ|d< | jd ur@| j ¡ |d< | jd urX| j ¡ |d< |S )NÚsecurityStatec                 S  s   g | ]}|‘qS r   r   rE   r   r   r   rH   ë   s   z0VisibleSecurityState.to_json.<locals>.<listcomp>ÚsecurityStateIssueIdsÚcertificateSecurityStateÚsafetyTipInfo)rV   rb   r   rc   rd   re   rW   r   r   r   r   è   s    ÿ

ÿ
zVisibleSecurityState.to_jsonr   c              	   C  sh   | t  | d¡¡dd„ |d D ƒ| dd ¡d ur>t |d ¡nd | dd ¡d ur`t | d¡¡nd d�S )Nrf   c                 S  s   g | ]}t |ƒ‘qS r   rX   rE   r   r   r   rH   ú   s   z2VisibleSecurityState.from_json.<locals>.<listcomp>rg   rh   ri   )rb   rc   rd   re   )r(   r   rY   r.   r\   r   r   r   r   r   ö   s    ÿýÿÿñzVisibleSecurityState.from_json)
r   r   r   r   rZ   rd   re   r   r    r   r   r   r   r   ra   Ø   s   
ÿ
ra   c                   @  sp   e Zd ZU dZded< ded< ded< ded< ded	< d
ed< dZded< ddœdd„Zedd dœdd„ƒZdS )ÚSecurityStateExplanationz?An explanation of an factor contributing to the security state.r(   rb   r$   ÚtitleÚsummaryÚdescriptionr"   Úmixed_content_typer2   r3   Nz!typing.Optional[typing.List[str]]Úrecommendationsr   r
   c                 C  sv   t ƒ }| j ¡ |d< | j|d< | j|d< | j|d< | j ¡ |d< dd„ | jD ƒ|d< | jd urrd	d„ | jD ƒ|d
< |S )Nrf   rk   rl   rm   ÚmixedContentTypec                 S  s   g | ]}|‘qS r   r   rE   r   r   r   rH   %  rI   z4SecurityStateExplanation.to_json.<locals>.<listcomp>r3   c                 S  s   g | ]}|‘qS r   r   rE   r   r   r   rH   '  rI   ro   )	rV   rb   r   rk   rl   rm   rn   r3   ro   rW   r   r   r   r     s    



z SecurityStateExplanation.to_jsonr   c                 C  sz   | t  | d¡¡t| d¡ƒt| d¡ƒt| d¡ƒt |d ¡dd„ |d D ƒ| d	d ¡d urrd
d„ |d	 D ƒnd d�S )Nrf   rk   rl   rm   rp   c                 S  s   g | ]}t |ƒ‘qS r   rX   rE   r   r   r   rH   4  rI   z6SecurityStateExplanation.from_json.<locals>.<listcomp>r3   ro   c                 S  s   g | ]}t |ƒ‘qS r   rX   rE   r   r   r   rH   6  rI   )rb   rk   rl   rm   rn   r3   ro   )r(   r   rY   r$   r"   r   r   r   r   r   *  s    ÿÿôz"SecurityStateExplanation.from_json)	r   r   r   r   rZ   ro   r   r    r   r   r   r   r   rj     s   
rj   c                   @  sl   e Zd ZU dZded< ded< ded< ded< ded< ded	< ded
< ddœdd„Zedd dœdd„ƒZdS )ÚInsecureContentStatusz/Information about insecure content on the page.r8   Úran_mixed_contentÚdisplayed_mixed_contentÚcontained_mixed_formÚran_content_with_cert_errorsÚ"displayed_content_with_cert_errorsr(   Úran_insecure_content_styleÚ displayed_insecure_content_styler   r
   c                 C  sX   t ƒ }| j|d< | j|d< | j|d< | j|d< | j|d< | j ¡ |d< | j ¡ |d< |S )NÚranMixedContentÚdisplayedMixedContentÚcontainedMixedFormÚranContentWithCertErrorsÚdisplayedContentWithCertErrorsÚranInsecureContentStyleÚdisplayedInsecureContentStyle)	rV   rr   rs   rt   ru   rv   rw   r   rx   rW   r   r   r   r   O  s    



ÿÿÿzInsecureContentStatus.to_jsonr   c                 C  sX   | t | d¡ƒt | d¡ƒt | d¡ƒt |d ƒt |d ƒt |d ¡t |d ¡d�S )	Nry   rz   r{   r|   r}   r~   r   )rr   rs   rt   ru   rv   rw   rx   )r8   rY   r(   r   r   r   r   r   r   `  s"    ÿÿÿÿózInsecureContentStatus.from_jsonN)r   r   r   r   rZ   r   r    r   r   r   r   r   rq   =  s   
rq   c                   @  s:   e Zd ZdZdZdZddœdd„Zedd dœd	d
„ƒZdS )ÚCertificateErrorActionz—
    The action to take when a certificate error occurs.
    continue will continue processing the request
    and cancel will cancel the request.
    ÚcontinueÚcancelr$   r
   c                 C  s   | j S r   r%   r   r   r   r   r   ~  s    zCertificateErrorAction.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   �  s    z CertificateErrorAction.from_jsonN)	r   r   r   r   ÚCONTINUEZCANCELr   r    r   r   r   r   r   r€   u  s   r€   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r
   c                  c  s   ddi} | V }dS )z)Disables tracking security state changes.ÚmethodzSecurity.disableNr   ©Úcmd_dictr   r   r   r   Údisable†  s    ÿr‡   c                  c  s   ddi} | V }dS )z(Enables tracking security state changes.r„   zSecurity.enableNr   r…   r   r   r   ÚenableŽ  s    ÿrˆ   r8   )Úignorer   c                 c  s"   t ƒ }| |d< d|dœ}|V }dS )zŽ
    Enable/disable whether all certificate errors should be ignored.
    :param ignore: If true, all certificate errors will be ignored.
    r‰   z#Security.setIgnoreCertificateErrors)r„   ÚparamsN)rV   )r‰   rŠ   r†   r   r   r   r   Úset_ignore_certificate_errors–  s    þr‹   zSecurity.certificateErrorc                   @  s>   e Zd ZU dZded< ded< ded< edd dœd	d
„ƒZdS )ÚCertificateErroraN  
    There is a certificate error. If overriding certificate errors is enabled,
    then it should be handled with the `handleCertificateError` command.
    Note: this event does not fire if the certificate error has been allowed
    internally. Only one client per target should override certificate errors
    at the same time.
    r	   Úevent_idr$   Ú
error_typeÚrequest_urlr   r   c                 C  s,   | t | d¡ƒt| d¡ƒt| d¡ƒd�S )NZeventIdZ	errorTypeZ
requestURL)r�   rŽ   r�   )r	   rY   r$   r   r   r   r   r   ·  s
    ýzCertificateError.from_jsonN©r   r   r   r   rZ   r    r   r   r   r   r   rŒ   ¦  s   
rŒ   z$Security.visibleSecurityStateChangedc                   @  s.   e Zd ZU dZded< edd dœdd„ƒZdS )	ÚVisibleSecurityStateChangedzF
    **EXPERIMENTAL**
    The security state of the page changed.
    ra   Úvisible_security_stater   r   c                 C  s   | t  |d ¡d�S )NZvisibleSecurityState)r’   )ra   r   r   r   r   r   r   Ê  s
    ÿÿz%VisibleSecurityStateChanged.from_jsonNr�   r   r   r   r   r‘   À  s   
r‘   zSecurity.securityStateChangedc                   @  sN   e Zd ZU dZded< ded< ded< ded	< d
ed< edd dœdd„ƒZdS )ÚSecurityStateChangedz=The security state of the page changed. No longer being sent.r(   rb   r8   Úscheme_is_cryptographicz%typing.List[SecurityStateExplanation]Úexplanationsrq   Úinsecure_content_statusr@   rl   r   r   c              	   C  s^   | t  | d¡¡t| d¡ƒdd„ |d D ƒt |d ¡| dd ¡d urVt| d¡ƒnd d�S )	Nrf   ZschemeIsCryptographicc                 S  s   g | ]}t  |¡‘qS r   )rj   r   rE   r   r   r   rH   è  s   ÿz2SecurityStateChanged.from_json.<locals>.<listcomp>r•   ZinsecureContentStatusrl   )rb   r”   r•   r–   rl   )r(   r   rY   r8   rq   r$   r   r   r   r   r   ã  s    þÿÿózSecurityStateChanged.from_jsonNr�   r   r   r   r   r“   Ó  s   
r“   )Ú
__future__r   ÚenumÚtypingÚdataclassesr   Úutilr   r   Ú r   r	   r   ÚEnumr"   r(   r.   r[   r\   ra   rj   rq   r€   r‡   rˆ   r‹   rŒ   r‘   r“   r   r   r   r   Ú<module>   s@   m307