U
    ÓZjf  ã                   @   s  d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ej e d¡¡Ze d¡Zejdd	�Zejd
d	�Zejdd	�ZeegZdd„ Zdd„ ZeeejƒZeeejƒZeeejƒZeegZe	 eed¡Ze	 eed¡Ze	 eed¡ZeegZ ddd„Z!dS )zACME utilities for testing.é    N)Ú
challenges)Úmessages)Úauth_handler)Úutilzrsa512_key.pems+   evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ+PCt92wr+oA)Útokens    17817c66b60ce2e4012dfad92657527as    cafecafecafecafecafecafe0feedbacc                 C   s   t dd„ t| ƒD ƒƒS )z*Generate natural combinations for challbs.c                 s   s   | ]\}}|fV  qd S ©N© )Ú.0ÚiÚ_r   r   úZ/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/certbot/tests/acme_util.pyÚ	<genexpr>   s     zgen_combos.<locals>.<genexpr>)ÚtupleÚ	enumerate)Úchallbsr   r   r   Ú
gen_combos   s    r   c                 C   s<   | | j d |dœ}|tjkr0| dtj ¡ i¡ tjf |ŽS )z$Return ChallengeBody from Challenge.Z_uri)ÚchallÚuriÚstatusZ	validated)Útypr   ÚSTATUS_VALIDÚupdateÚdatetimeÚnowZChallengeBody)r   r   Úkwargsr   r   r   Úchall_to_challb!   s    ý
r   zexample.comzexample.orgzesimerkki.example.orgTc                 C   sš   t dd„ tj ||¡D ƒƒ}tjtj|d�|dœ}|rH| dt|ƒi¡ | tj	krv| | t
j
 ¡ t
jdd� dœ¡ n| d	| i¡ tjd
tjf |Žd�S )a&  Generate an authorization resource.

    :param authz_status: Status object
    :type authz_status: :class:`acme.messages.Status`
    :param list challs: Challenge objects
    :param list statuses: status of each challenge object
    :param bool combos: Whether or not to add combinations

    c                 s   s   | ]\}}t ||ƒV  qd S r   )r   )r	   r   r   r   r   r   r   J   s   ÿzgen_authzr.<locals>.<genexpr>)r   Úvalue)Ú
identifierr   Úcombinationsé   )Údays)r   Úexpiresr   z%https://trusted.ca/new-authz-resource)r   Úbody)r   ÚsixÚmovesÚzipr   Z
IdentifierZIDENTIFIER_FQDNr   r   r   r   r   Ú	timedeltaZAuthorizationResourceÚAuthorization)Zauthz_statusÚdomainZchallsZstatusesZcombosr   Zauthz_kwargsr   r   r   Ú
gen_authzr?   s0    þ ÿý
þ
 ÿ
þr)   )T)"Ú__doc__r   ZjosepyZjoser#   Zacmer   r   Zcertbotr   Zcertbot.testsr   ZJWKÚloadZload_vectorZload_rsa_private_keyZKEYZHTTP01ZDNS01ZDNS01_2Z
CHALLENGESr   r   ZSTATUS_PENDINGZHTTP01_PZDNS01_PZ	DNS01_P_2ZCHALLENGES_PZchallb_to_achallZHTTP01_AZDNS01_AZ	DNS01_A_2ZACHALLENGESr)   r   r   r   r   Ú<module>   s4   
ÿ