U N9a? @sfddlmZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z ddl m Z ejddkZdadaeredZnedZdZzddlmZmZd ZWnek rYnXdZzdd lmZd ZWn"ek rZzW5dZ[XYnXdZzdd lmZd ZWn$ek r2ZzW5dZ[XYnXd gZ d dZ!Gddde"Z#Gdd d e$Z%dS))unicode_literalsN)InvalidCredentialsError WinRMErrorWinRMTransportError) Encryption2F)HTTPKerberosAuthREQUIREDT) HttpNtlmAuth)HttpCredSSPAuth TransportcCs0|}|dkrdS|dkr dStd|dS)N)truetyesyon1T)falsefnonoff0Fzinvalid truth value '%s')lower ValueError)valuerC:\Users\Justin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\winrm/transport.py strtobool2s rc@s eZdZdS)UnsupportedAuthArgumentN)__name__ __module__ __qualname__rrrrr >sr c@sNeZdZddd Zd d Zd d ZddZddZddZddZ ddZ dS)r Nlegacy_requestsvalidateFautoTcCs||_||_||_||_||_||_||_||_| |_| |_ | |_ | |_ ||_ ||_ ||_||_||_||_|j dkrtd|j t| tr| |_nttt| |_||_ddd|_zddlm}tjd|d Wntk rYnXzdd lm}tjd|d Wntk r"YnX|j dkrzdd lm }tjd|d Wntk rdYnXzdd l!m }tjd|d Wntk rYnX|jd krV|jd ks|jdkr&|js|jr&|jr|jst"dt#j$%|jst"d|jt#j$%|jsVt"d|jn0|jsboth cert_pem and cert_key_pem must be specified for cert authzcert_pem file not found (%s)z cert_key_pem file not found (%s)z"auth method %s requires a usernamez"auth method %s requires a password)r&alwaysneverzJinvalid message_encryption arg: %s. Should be 'auto', 'always', or 'never')(endpointusernamepasswordrealmservicekeytab ca_trust_pathcert_pem cert_key_pemread_timeout_secserver_cert_validationkerberos_hostname_overridemessage_encryptioncredssp_disable_tlsv1_2credssp_auth_mechanismcredssp_minimum_versionsend_cbtproxyr isinstanceboolkerberos_delegationrstr auth_methoddefault_headersZ$requests.packages.urllib3.exceptionsr)warnings simplefilter Exceptionr+r,Zurllib3.exceptionsrospathexistssession encryption)selfr2r3r4r5r6r7r8r9r:r;r<rFr=rHr>r?r@rArBrCr)r+r,rrr__init__Cs            zTransport.__init__c Cst}t}|jdkr"d|d<n|jdkr@|j|d<|j|d<|j|j|dddd}ts|jdkrd|dks|d|dkrd}d|dkr|d j|ddd 7}d|dkr|d j|ddd 7}d at |t |d|_ |j d k|_ |j r|jdkr|ddk r|d|_ ts|j d k rd}tjddk r\|djtjdd7}n*tjddk r|djtjdd7}d at |t n|j r|jdk r|j|_ d}|jdkr2tstdttd}t|jd |j|jd|j|jd}|||tj}tf||_t |jdo,|jj!}nL|jdkr|jdkrr|j"sr|j#srtjj$|j|j%d|_n|j"|j#f|_&d|j'd<n|jd krt(std!t|j|j%d}t|jd"}|||t)j} t)f| |_t |jd#}n|jd$krtjj$|j|j%d|_nn|jd%krpt*s*td&t|j|j%d}t|j+|j,|j-d'}|||t.j} t.f| |_d }ntd(|j|j'/|j0||_1|j2d)kr|std*|jnB|r|j2d)kr|3n&|j2d+kr|j45ds|3dS),N*no_proxyr$httphttps)urlproxiesstreamverifycertrYz{'pywinrm' will use an environment defined proxy. This feature will be disabled in the future, please specify it explicitly.z HTTP proxy {proxy} discovered.)rCz HTTPS proxy {proxy} discovered.Tr%r[z'pywinrm' will use an environment variable defined CA Trust. This feature will be disabled in the future, please specify it explicitly.REQUESTS_CA_BUNDLEz& REQUESTS_CA_BUNDLE contains {ca_path})Zca_pathCURL_CA_BUNDLEz" CURL_CA_BUNDLE contains {ca_path}Fr-zIrequested auth method is kerberos, but requests_kerberos is not installed)Zmutual_authentication)ZdelegateZforce_preemptiveZ principalZhostname_overrideZsanitize_mutual_error_responser6rBwinrm_encryption_available)r.r/r/)r3r4zBhttp://schemas.dmtf.org/wbem/wsman/1/wsman/secprofile/https/mutual AuthorizationZntlmzArequested auth method is ntlm, but requests_ntlm is not installed)rBZsession_security)basic plaintextZcredsspzFrequests auth method is credssp, but requests-credssp is not installed)Zdisable_tlsv1_2Zauth_mechanismminimum_versionzunsupported auth method: %sr0zYmessage encryption is set to 'always' but the selected auth method %s does not support itr&)6requestsSessiondictrCmerge_environment_settingsr2DISPLAYED_PROXY_WARNINGformatrJwarnDeprecationWarningrYr<r[r8DISPLAYED_CA_TRUST_WARNINGrMenvirongetrH HAVE_KERBEROSrr rFr3r=r6rB _get_argsr rSauthhasattrr_r9r: HTTPBasicAuthr4r\headers HAVE_NTLMr HAVE_CREDSSPr?r@rAr updaterIrPr>setup_encryptionr startswith) rRrPrYsettingsmessageZencryption_availableZman_argsZopt_argsZ kerb_argsZ ntlm_argsZ credssp_argsrrr build_sessions                         zTransport.build_sessioncCs>tjd|jdd}|j|}||dt|j|j|_dS)NPOSTdatar) rdRequestr2rPprepare_request_send_message_requestrrHrQ)rRrequestprepared_requestrrrrx2s  zTransport.setup_encryptioncCs|js dS|jd|_dSN)rPclose)rRrrr close_session9s zTransport.close_sessioncCsr|js|t|tr"|d}|jr>|j|j|j|}ntj d|j|d}|j |}| ||}| |S)Nzutf-8r}r~) rPr|rD unicode_typeencoderQZprepare_encrypted_requestr2rdrrr_get_message_response_text)rRr{rrresponserrr send_message?s    zTransport.send_messagec Csz |jj||jd}||WStjk r}zB|jjdkrHtd|jj r^| |j}nd}t d|jj|W5d}~XYnXdS)N)timeoutiz5the specified credentials were rejected by the serverrrV) rPsendr;raise_for_statusrd HTTPErrorr status_codercontentrr)rRrr{rex response_textrrrrQs zTransport._send_message_requestcCs|jr|j|}n|j}|Sr)rQZparse_encrypted_responser)rRrrrrrr`sz$Transport._get_message_response_textcCstt|j}t}|D].\}}||kr8|||<qtdt||fq|D]0\}}||krp|||<qVt dt||fqV|S)NzTFunction %s does not contain mandatory arg %s, check installed version with pip listzSFunction %s does not contain optional arg %s, check installed version with pip list) setinspect getargspecargsrfitemsrLrGrJrj)rRZmandatory_argsZ optional_argsfunctionZargspecZ function_argsnamerrrrrpgs    zTransport._get_args)NNNNNr$NNNr%FNr&r&Fr&r'Tr$) r!r"r#rSr|rxrrrrrprrrrr Bs8 c )& __future__rsysrMrrdZ requests.authrJZwinrm.exceptionsrrrZwinrm.encryptionrversionis_py2rhrltyperroZwinrm.vendor.requests_kerberosr r ImportErrorruZ requests_ntlmr ZiervZrequests_credsspr __all__rWarningr objectr rrrrsH