/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__
NameSizeModeActions
aead.cpython-310.pyc36860644editdlrm
backend.cpython-310.pyc703810644editdlrm
ciphers.cpython-310.pyc58010644editdlrm
cmac.cpython-310.pyc25840644editdlrm
decode_asn1.cpython-310.pyc214710644editdlrm
dh.cpython-310.pyc83450644editdlrm
dsa.cpython-310.pyc88530644editdlrm
ec.cpython-310.pyc116800644editdlrm
ed448.cpython-310.pyc42030644editdlrm
ed25519.cpython-310.pyc42350644editdlrm
encode_asn1.cpython-310.pyc170770644editdlrm
hashes.cpython-310.pyc26140644editdlrm
hmac.cpython-310.pyc26230644editdlrm
ocsp.cpython-310.pyc118630644editdlrm
poly1305.cpython-310.pyc20220644editdlrm
rsa.cpython-310.pyc137100644editdlrm
utils.cpython-310.pyc20800644editdlrm
x448.cpython-310.pyc33040644editdlrm
x509.cpython-310.pyc203490644editdlrm
x25519.cpython-310.pyc36560644editdlrm
__init__.cpython-310.pyc2700644editdlrm
Edit: /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/ec.cpython-310.pyc (11680B)
o Ri_8@sddlmZddlmZmZmZddlmZmZm Z ddl m Z m Z ddl mZmZmZdejfddZd d Zd d Zd#ddZd#ddZddZddZddZGdddeZGdddeZGdd d ejZGd!d"d"ejZdS)$)utils)InvalidSignatureUnsupportedAlgorithm_Reasons)_calculate_digest_and_algorithm_check_not_prehashed_warn_sign_verify_deprecated)hashes serialization)AsymmetricSignatureContextAsymmetricVerificationContextecsignature_algorithmcCst|tjs tdtjdS)Nz/Unsupported elliptic curve signature algorithm.) isinstancer ECDSArr UNSUPPORTED_PUBLIC_KEY_ALGORITHM)rrI/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ec.py_check_signature_algorithms rcCs|j|}|||jjk|j|}||jjkrtd|jjs/|j |dkr/td|j |}|||jjk|j | d}|S)Nz;ECDSA keys with unnamed curves are unsupported at this timerascii) _libEC_KEY_get0_groupopenssl_assert_ffiNULLEC_GROUP_get_curve_name NID_undefNotImplementedErrorCRYPTOGRAPHY_IS_LIBRESSLEC_GROUP_get_asn1_flag OBJ_nid2snstringdecode)backendec_keygroupnid curve_namesnrrr_ec_key_curve_sn#s"    r)cCs|j||jjdS)z Set the named curve flag on the EC_KEY. This causes OpenSSL to serialize EC keys along with their curve OID which makes deserialization easier. N)rEC_KEY_set_asn1_flagOPENSSL_EC_NAMED_CURVE)r#ec_cdatarrr_mark_asn1_named_ec_curveAsr-r#BackendreturnNcCsV|j|}|||jjk|j|}|||jjk|j||r)tddS)Nz;Cannot load an EC public key where the point is at infinity)rEC_KEY_get0_public_keyrrrrEC_POINT_is_at_infinity ValueError)r#r,pointr%rrr_check_key_infinityMs  r4cCs\|j|}|||jjk|j|}||}|dkr*|j|dkr,tddSdS)Nz1Invalid EC key (key out of range, infinity, etc.)) rrrrrEC_GROUP_get0_cofactor _bn_to_intEC_KEY_check_keyr2)r#r,r%bncofactorrrr_check_key_cofactorWs   r;cCs0ztj|WStytd|tjw)Nz${} is not a supported elliptic curve)r _CURVE_TYPESKeyErrorrformatrUNSUPPORTED_ELLIPTIC_CURVE)r#r(rrr_sn_to_elliptic_curvebs r@cCsz|j|j}||dk|jd|}|jdd}|jd|t||||j}||dk|j|d|dS)Nrzunsigned char[]zunsigned int[]r5) r ECDSA_size_ec_keyrrnew ECDSA_signlenbuffer)r# private_keydatamax_sizesigbuf siglen_ptrresrrr_ecdsa_sig_signlsrMcCs8|jd|t||t||j}|dkr|tdS)Nrr5)r ECDSA_verifyrErB_consume_errorsr)r# public_key signaturerHrLrrr_ecdsa_sig_verifyysrRc@sBeZdZdejdejfddZdeddfdd Z defd d Z dS) _ECDSASignatureContextrG algorithmcCs||_||_t|||_dSN)_backend _private_keyr Hash_digest)selfr#rGrTrrr__init__sz_ECDSASignatureContext.__init__rHr/NcC|j|dSrUrYupdaterZrHrrrr^z_ECDSASignatureContext.updatecCs|j}t|j|j|SrU)rYfinalizerMrVrWrZdigestrrrras z_ECDSASignatureContext.finalize) __name__ __module__ __qualname__r EllipticCurvePrivateKeyr HashAlgorithmr[bytesr^rarrrrrSs  rSc@sBeZdZdejdedejfddZdeddfd d Z d d d Z dS)_ECDSAVerificationContextrPrQrTcCs$||_||_||_t|||_dSrU)rV _public_key _signaturer rXrY)rZr#rPrQrTrrrr[sz"_ECDSAVerificationContext.__init__rHr/NcCr\rUr]r_rrrr^r`z _ECDSAVerificationContext.updatecCs"|j}t|j|j|j|dSrU)rYrarRrVrkrlrbrrrverifys z _ECDSAVerificationContext.verify)r/N) rdrerfr EllipticCurvePublicKeyrir rhr[r^rmrrrrrjs  rjc@seZdZddZedZedefddZ de j de fdd Z d e jd e jdefd d Zde jfddZde jfddZdejdejdejdefddZdede j defddZdS)_EllipticCurvePrivateKeycCs@||_||_||_t||}t|||_t||t||dSrU)rVrB _evp_pkeyr)r@_curver-r4rZr# ec_key_cdataevp_pkeyr(rrrr[s   z!_EllipticCurvePrivateKey.__init__rqr/cC|jjSrUcurvekey_sizerZrrrrxz!_EllipticCurvePrivateKey.key_sizercCs:tt|t|jt|jtjsJt|j||jSrU) rrrrTrr rhrSrV)rZrrrrsigners  z_EllipticCurvePrivateKey.signerrTpeer_public_keycCs|j||jstdtj|jj|jjkrtd|jj |j }|jj |dd}|j |dk|jj d|}|jj|j }|jj||||j |jj j}|j |dk|jj |d|S)Nz1This backend does not support the ECDH algorithm.z2peer_public_key and self are not on the same curverz uint8_t[])rV+elliptic_curve_exchange_algorithm_supportedrwrrUNSUPPORTED_EXCHANGE_ALGORITHMnamer2rrrBEC_GROUP_get_degreerrrCr0ECDH_compute_keyrrF)rZrTr|r%z_lenz_bufpeer_keyrrrrexchanges0z!_EllipticCurvePrivateKey.exchangecCs|jj|j}|j||jjjk|jj|}|j|}|jj |j}|j||jjjk|jj ||}|j|dk|j |}t |j||S)Nr5) rVrrrBrrrr_ec_key_new_by_curve_nidr0EC_KEY_set_public_key_ec_cdata_to_evp_pkey_EllipticCurvePublicKey)rZr% curve_nid public_ec_keyr3rLrtrrrrPs  z#_EllipticCurvePrivateKey.public_keycCs2|jj|j}|j|}tj||dS)N) private_valuepublic_numbers) rVrEC_KEY_get0_private_keyrBr7r EllipticCurvePrivateNumbersrPr)rZr9rrrrprivate_numberss   z(_EllipticCurvePrivateKey.private_numbersencodingr>encryption_algorithmcCs|j|||||j|jSrU)rV_private_key_bytesrprB)rZrr>rrrr private_bytessz&_EllipticCurvePrivateKey.private_bytesrHcCs*t|t|j||j\}}t|j||SrU)rrrV _algorithmrM)rZrHrrTrrrsignsz_EllipticCurvePrivateKey.signN)rdrerfr[rread_only_propertyrwpropertyintrxr EllipticCurveSignatureAlgorithmr r{ECDHrnrirrPrrr Encoding PrivateFormatKeySerializationEncryptionrrrrrrrosF      roc@seZdZddZedZedefddZ de de j de fd d Zde jfd d Zd ejde fddZdejd ejde fddZde de de j ddfddZdS)rcCsJ||_||_||_t||}t|||_t||t||t||dSrU) rVrBrpr)r@rqr-r4r;rrrrrr[!s    z _EllipticCurvePublicKey.__init__rqr/cCrurUrvryrrrrx.rzz _EllipticCurvePublicKey.key_sizerQrcCsHttd|t|t|jt|jtjsJt |j |||jS)NrQ) rr _check_bytesrrrTrr rhrjrV)rZrQrrrrverifier2s   z _EllipticCurvePublicKey.verifierc Cs|j|j\}}|jj|j}|j||jjjk|j2}|jj |}|jj |}||||||}|j|dk|j |}|j |} Wdn1sVwYt j || |j dS)Nr5)xyrw)rV _ec_key_determine_group_get_funcrBrr0rrr _tmp_bn_ctx BN_CTX_getr7r EllipticCurvePublicNumbersrq) rZget_funcr%r3bn_ctxbn_xbn_yrLrrrrrrBs   z&_EllipticCurvePublicKey.public_numbersr>c Cs$|tjjur |jjj}n |tjjusJ|jjj}|jj|j }|j ||jj j k|jj |j }|j ||jj j k|j;}|jj||||jj j d|}|j |dk|jj d|}|jj||||||}|j ||kWdn1swY|jj |ddS)Nrzchar[])r PublicFormatCompressedPointrVrPOINT_CONVERSION_COMPRESSEDUncompressedPointPOINT_CONVERSION_UNCOMPRESSEDrrBrrrr0rEC_POINT_point2octrCrF) rZr> conversionr%r3rbuflenbufrLrrr _encode_pointUs(      z%_EllipticCurvePublicKey._encode_pointrcCsl|tjjus|tjjus|tjjur+|tjjus"|tjjtjjfvr&td||S|j ||||j dS)NzKX962 encoding must be used with CompressedPoint or UncompressedPoint format) r rX962rrrr2rrV_public_key_bytesrp)rZrr>rrr public_bytesms     z$_EllipticCurvePublicKey.public_bytesrHNcCs0t|t|j||j\}}t|j|||dSrU)rrrVrrR)rZrQrHrrTrrrrmsz_EllipticCurvePublicKey.verify)rdrerfr[rrrwrrrxrir rr rrrr rrrrrmrrrrr s<   r)r#r.r/N) cryptographyrcryptography.exceptionsrrr*cryptography.hazmat.backends.openssl.utilsrrrcryptography.hazmat.primitivesr r )cryptography.hazmat.primitives.asymmetricr r r rrr)r-r4r;r@rMrRrSrjrgrornrrrrrs&        s