o 7b@sddlZddlZddlZddlmZmZzddlmZddlm Z m Z Wn e y/eZYnwdee e fde fddZd ee e fde fd d Zd e de fd d Zdede fddZdee e fdefddZdedede fddZde defddZdede fddZde dede fddZd e dede fd!d"Zhd#Zed$d%ed&ejZd'e defd(d)Zd*Z ed+Z!gd,Z"d'e defd-d.Z#dS)/N)AnyUnion) EllipticCurve)decode_dss_signatureencode_dss_signaturevaluereturncCs*t|tr |dSt|tr|Std)Nzutf-8zExpected a string value) isinstancestrencodebytes TypeError)rr+/usr/lib/python3/dist-packages/jwt/utils.py force_bytess   rinputcCsBt|tr |d}t|d}|dkr|dd|7}t|S)Nasciir=)r r r lenbase64urlsafe_b64decode)rremrrrbase64url_decodes    rcCst|ddS)Nr)rurlsafe_b64encodereplace)rrrrbase64url_encode%srvalcCs0|dkrtdt|}t|dkrd}t|S)NrzMust be a positive integer) ValueErrorbytes_from_intrr)r int_bytesrrrto_base64url_uint)s  r#cCs*t|tr |d}t|}tj|ddS)Nrbig) byteorder)r r r rint from_bytes)rdatarrrfrom_base64url_uint5s  r)num num_bytescCs dd||f}t|dS)Nz%0*xr)binasciia2b_hexr )r*r+ padded_hexrrrnumber_to_bytes=sr0stringcCstt|dS)N)r&r-b2a_hex)r1rrrbytes_to_numberBsr4cCs8|}d}|dkr|dL}|d7}|dks|j|dddS)Nrr$F)signed)to_bytes)r remaining byte_lengthrrrr!Fsr!der_sigcurvecCs2|j}|dd}t|\}}t||t||S)Nr5)key_sizerr0)r;r<num_bitsr+rsrrrder_to_raw_signatureQs  rBraw_sigcCsT|j}|dd}t|d|krtdt|d|}t||d}t||S)Nr=r5r,zInvalid signature)r>rr r4r)rCr<r?r+r@rArrrraw_to_der_signatureZs  rD>X509 CRL PUBLIC KEY CERTIFICATE PRIVATE KEY DH PARAMETERSEC PRIVATE KEYRSA PUBLIC KEYDSA PRIVATE KEYRSA PRIVATE KEYSSH2 PUBLIC KEYCERTIFICATE REQUESTOPENSSH PRIVATE KEYTRUSTED CERTIFICATEENCRYPTED PRIVATE KEYNEW CERTIFICATE REQUESTSSH2 ENCRYPTED PRIVATE KEYs----[- ]BEGIN (|s,)[- ]---- ? .+? ? ----[- ]END \1[- ]---- ? ?keycCstt|SN)bool_PEM_REsearchrVrrr is_pem_formatsr\s-cert-v01@openssh.coms\A(\S+)[ \t]+(\S+))s ssh-ed25519sssh-rsasssh-dsssecdsa-sha2-nistp256secdsa-sha2-nistp384secdsa-sha2-nistp521csPtfddtDr dSt}|r&|d}t|tt dkr&dSdS)Nc3s|]}|vVqdSrWr).0 string_valuer[rr szis_ssh_key..Tr6F)any_SSH_KEY_FORMATS_SSH_PUBKEY_RCmatchgroup _CERT_SUFFIXr)rVssh_pubkey_matchkey_typerr[r is_ssh_keys  rh)$rr-retypingrr,cryptography.hazmat.primitives.asymmetric.ecr/cryptography.hazmat.primitives.asymmetric.utilsrrModuleNotFoundErrorr r rrrr&r#r)r0r4r!rBrD_PEMScompilejoinDOTALLrYrXr\rerbrarhrrrrsD