a }|g @sPdZddlZddlmZddlmZddlmZddlZddlm Z ddlm Z ddl m Z dd l mZejed Zed Ze jd d Ze jd d Ze jdd ZeegZe je je jdddZeee jZeee jZeee jZeegZ e !eedZ"e !eedZ#e !eedZ$e"e#gZ%e je&ee jee je j'dddZ(dS)zACME utilities for testing.N)Any)Dict)Iterable) challenges)messages) auth_handler)utilzrsa512_key.pems+evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ+PCt92wr+oA)tokens 17817c66b60ce2e4012dfad92657527as cafecafecafecafecafecafe0feedbac)challstatusreturncCs@||jd|d}|tjkr0|dtjitjfi|S)z$Return ChallengeBody from Challenge.Z_uri)r urir Z validated)typr STATUS_VALIDupdatedatetimenow ChallengeBody)r r kwargsr;/usr/lib/python3.9/site-packages/certbot/tests/acme_util.pychall_to_challbs rz example.comz example.orgzesimerkki.example.org) authz_statusdomainchallsstatusesr cCstddt||D}tjtj|d|d}|tjkr\||tjtj dddn|d|itj d tj fi|d S) zGenerate 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 css|]\}}t||VqdS)N)r).0r r rrr Bszgen_authzr..)rvalue)Z identifierr)Zdays)r Zexpiresr z%https://trusted.ca/new-authz-resource)r body) tupleziprZ IdentifierZIDENTIFIER_FQDNrrrrZ timedeltaAuthorizationResourceZ Authorization)rrrrZchallbsZ authz_kwargsrrr gen_authzr8s(   r$))__doc__rtypingrrrZjosepyZjoseZacmerrZcertbot._internalrZ certbot.testsrZJWKloadZ load_vectorZload_rsa_private_keyZKEYZHTTP01ZDNS01ZDNS01_2Z CHALLENGESZ ChallengeZStatusrrZSTATUS_PENDINGZHTTP01_PZDNS01_PZ DNS01_P_2Z CHALLENGES_PZchallb_to_achallZHTTP01_AZDNS01_AZ DNS01_A_2Z ACHALLENGESstrr#r$rrrrs: