Spade
Mini Shell
| Directory:~$ /proc/self/root/usr/lib/python2.7/site-packages/certbot/_internal/plugins/ |
| [Home] [System Details] [Kill Me] |
�
���_c@sdZddlZddlZddlmZddlmZddlm Z ddlm
Z
ddlmZddlmZdd lm
Z
dd
lmZddlmZddlmZdd
lmZejjej�ejjej�dejfd��Y��ZdS(sManual
authenticator plugini����N(t
challenges(tDict(tachallenges(terrors(t
interfaces(treverter(tutil(thooks(tmisc(tos(tcommont
AuthenticatorcBs�eZdZdZeZdZdZdZdZ dZ
d�Zed��Z
d �Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�ZRS(s�Manual
authenticator
This plugin allows the user to perform the domain validation
challenge(s) themselves. This either be done manually by the user or
through shell scripts provided to Certbot.
s2Manual configuration or run your own shell scriptss�Authenticate
through manual configuration or custom shell scripts. When using shell
scripts, an authenticator script must be provided. The environment
variables available to this script depend on the type of challenge.
$CERTBOT_DOMAIN will always contain the domain being authenticated. For
HTTP-01 and DNS-01, $CERTBOT_VALIDATION is the validation string, and
$CERTBOT_TOKEN is the filename of the resource requested when performing an
HTTP-01 challenge. An additional cleanup script can also be provided and
can use the additional variable $CERTBOT_AUTH_OUTPUT which contains the
stdout output from the auth script. For both authenticator and cleanup
script, on HTTP-01 and DNS-01 challenges, $CERTBOT_REMAINING_CHALLENGES
will be equal to the number of challenges that remain after the current
one, and $CERTBOT_ALL_DOMAINS contains a comma-separated list of all
domains that are challenged for the current certificate.s�Please deploy a
DNS TXT record under the name
{domain} with the following value:
{validation}
Before continuing, verify the record is deployed.suCreate a file containing
just this data:
{validation}
And make it available on your web server at this URL:
{uri}
s�
(This must be set up in addition to the previous challenges; do not remove,
replace, or undo the previous challenge tasks yet.)
s�
(This must be set up in addition to the previous challenges; do not remove,
replace, or undo the previous challenge tasks yet. Note that you might be
asked to create multiple distinct TXT records with the same name. This is
permitted by DNS standards.)
cOsZtt|�j||�tj|j�|_|jj�i|_t|_ t|_
dS(N(tsuperRt__init__RtRevertertconfigtrecovery_routinetenvtFalsetsubsequent_dns_challengetsubsequent_any_challenge(tselftargstkwargs((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyR
Hs
cCs7|ddd�|ddd�tj|dd�dS(Ns auth-hookthelps8Path
or command to execute for the authentication scriptscleanup-hooks1Path or
command to execute for the cleanup
scriptspublic-ip-logging-oki(Rtadd_deprecated_argument(tclstadd((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pytadd_parser_argumentsQs
cCsN|jjr@|jd�r@tjdj|jd����n|j�dS(Ns auth-hooksdAn
authentication script must be provided with --{0} when using the manual
plugin
non-interactively.(Rtnoninteractive_modetconfRtPluginErrortformattoption_namet_validate_hooks(R((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pytprepareYs
cCsl|jjrhxYdD]N}|j|�}|dk r|j|�td�
}tj||�qqWndS(Ns auth-hookscleanup-hooks-hook(s auth-hookscleanup-hook(Rtvalidate_hooksRtNoneR!tlenRt
validate_hook(Rtnamethookthook_prefix((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyR"as
cCsdS(Ns�This
plugin allows the user to customize setup for domain validation challenges
either through shell scripts provided by the user or by performing the
setup
manually.((R((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyt more_infoiscCstjtjgS(N(RtHTTP01tDNS01(Rtdomain((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pytget_chall_prefoscCscg}xV|D]N}|jd�r5|j||�n
|j|�|j|j|j��q
W|S(Ns auth-hook(Rt_perform_achall_with_scriptt_perform_achall_manuallytappendtresponsetaccount_key(Rtachallst responsestachall((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pytperformss
cCs�td|jd|j|j�ddjd�|D��dtt|�|j|�d��}t|j t
j�r�|j jd�|d <nt
jjd d�t
jj|�|jd
�\}}|j�|d<||j|<dS(NtCERTBOT_DOMAINtCERTBOT_VALIDATIONtCERTBOT_ALL_DOMAINSt,css|]}|jVqdS(N(R.(t.0t
one_achall((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pys <genexpr>�stCERTBOT_REMAINING_CHALLENGESittokent
CERTBOT_TOKENs auth-hooktCERTBOT_AUTH_OUTPUT(tdictR.t
validationR4tjointstrR&tindext
isinstancetchallRR,tencodeR tenvirontpopR%tupdatet
_execute_hooktstripR(RR7R5Rt_tout((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyR0}s&cCs-|j|j�}t|jtj�rx|jjd|d|jjd�d|j j
d|jj|j�d|�}n'|j
jd|j|j�d|�}t|jtj�r�|jr�||j7}nt|_n|jr�||j7}ntjjtj�}|j|dtd t�t|_dS(
NR7t
encoded_tokenR@tportturiRDR.twraptforce_interactive(RDR4RHRIRR,t_HTTP_INSTRUCTIONSR
RJRthttp01_portRTR.t_DNS_INSTRUCTIONStvalidation_domain_nameR-Rt&_SUBSEQUENT_DNS_CHALLENGE_INSTRUCTIONStTrueRt"_SUBSEQUENT_CHALLENGE_INSTRUCTIONStzopet componentt
getUtilityRtIDisplaytnotificationR(RR7RDtmsgtdisplay((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyR1�s$! cCs�|jd�rtxb|D]W}|jj|�}d|krPtjjdd�ntjj|�|jd�qWn|jj �dS(Nscleanup-hookRA(
RRRLR RKR%RMRNRR(RR5R7R((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pytcleanup�s
cCs.tj|j|�|j|�dtj��S(NR(Rtexecute_commandR!RRtenv_no_snap_for_external_calls(Rt hook_name((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyRN�s!(t__name__t
__module__t__doc__tdescriptionR\thiddentlong_descriptionRYRWR]R[R
tclassmethodRR#R"R+R/R8R0R1ReRN(((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyRs&
(Rktzope.componentR^tzope.interfacetacmeRtacme.magic_typingRtcertbotRRRRRtcertbot._internalRtcertbot.compatRR tcertbot.pluginsR
t interfacetimplementertIAuthenticatortprovidertIPluginFactorytPluginR(((sD/usr/lib/python2.7/site-packages/certbot/_internal/plugins/manual.pyt<module>s