PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` gi"YNddlmZmZmZmZddlZddlZddlZddlm Z ddl m Z m Z m Z mZmZmZmZmZmZmZddlmZddlmZmZddlmZdd lmZej<d kreZ e!Z"nd Z e Z#e#d k7re$d gdZ%ddddZ&ddddZ'dZ(dZ)dZ*dZ+dZ, dZ-GddZ.GddZ/e/dddZ0e.ddd Z1e/e1d!d"d#Z2e.d$dd%Z3e/e3d&d'd(Z4e.d)dd*Z5e/e5d+d,d-Z6e.d.dd/Z7e/e7d0d1d2Z8e.d3dd4Z9e/e9d5d6d7Z:y)8)unicode_literalsdivisionabsolute_importprint_functionN)backend) Certificate DSASignatureECDomainParametersECPointBitString ECPrivateKeyint_from_bytesPrivateKeyAlgorithmPrivateKeyInfoPublicKeyAlgorithm PublicKeyInfo)pretty_message) type_namebyte_cls) rand_bytes)SignatureError)ct|gSN)bytes)nums @/opt/nydus/tmp/pip-target-bkdi07qp/lib/python/oscrypto/_ecdsa.pychr_clsrscU| winlegacyz2Pure-python ECDSA code is only for Windows XP/2003)ec_generate_pairec_compute_public_key_pointec_public_key_info ecdsa_sign ecdsa_verify 0B secp256r1 secp384r1 secp521r1c |tgdvrttdt|t|}t t td|} t|}t|d}|dkDr||jkrn.tdtdtd|d td |d d }t|}|j!|d j"d<t%|||fS)a Generates a EC public/private key pair :param curve: A unicode string. Valid values include "secp256r1", "secp384r1" and "secp521r1". :raises: ValueError - when any of the parameters contain an invalid value TypeError - when any of the parameters are of the wrong type :return: A 2-element tuple of (asn1crypto.keys.PublicKeyInfo, asn1crypto.keys.PrivateKeyInfo) r)\ curve must be one of "secp256r1", "secp384r1", "secp521r1", not %s Fsignedrecnamednamevalue algorithm parameters ecPrivkeyVer1)version private_key)r;private_key_algorithmr<r< public_key)set ValueErrorrrepr CURVE_BYTESSECP256R1_BASE_POINTSECP384R1_BASE_POINTSECP521R1_BASE_POINTrrorderrrr r r"copyparsedr#)curvecurve_num_bytescurve_base_pointprivate_key_bytesprivate_key_intprivate_key_infoec_points rr!r!Cs" C?@@  K    "%(O)))   &7():5I Q ?5E5K5K#K  &!4,6 " $&*%   ' ++; 2  k "    &++J]"    [     w  #EF F^W  .--     M : A A- P W WWL  ' '   GGrc |tgdvrttdt|t t dt d|d|dS)a Constructs the PublicKeyInfo for an ECPointBitString :param private_key: An asn1crypto.keys.ECPointBitString object :param curve: A unicode string of the curve name - one of secp256r1, secp384r1 or secp521r1 :raises: ValueError - when any of the parameters contain an invalid value :return: An asn1crypto.keys.PublicKeyInfo object r)r/r2r3r4r7)r8r>)r?r@rrArrr )public_key_pointrIs rr#r#sk" C?@@  K     ',)  '   rct|drt|jtst t dt ||j}|tgdvrtt dt|tst t dt ||tgdvrtt dt|tt|}|jdj}|dj}|dj }t"|}t$t&t(d|} | j*} ||j-} t/| } t1| d | z} d | z}d | z}t3j4||d z|z| z|j-}t3j4|||j-}t3j4||d z|z| z|j-}t3j4|||j-}d }d } d}t/||kr9t3j4|||j-}||z }t/||kr9t1|d |d }|d k(s|| k\re| |zj6| z}|d k(r}t9|| | ||z| zzz| z}|d k(r t;||dj=S)aN Generates an ECDSA signature in pure Python (thus slow) :param private_key: The PrivateKey to generate the signature with :param data: A byte string of the data the signature is for :param hash_algorithm: A unicode string of "sha1", "sha256", "sha384" or "sha512" :raises: ValueError - when any of the parameters contain an invalid value TypeError - when any of the parameters are of the wrong type OSError - when an error is returned by the OS crypto library :return: A byte string of the signature asn1zy private_key must be an instance of the oscrypto.asymmetric.PrivateKey class, not %s r)zx private_key does not use one of the named curves secp256r1, secp384r1 or secp521r1 < data must be a byte string, not %s sha1sha224sha256sha384sha512z hash_algorithm must be one of "sha1", "sha224", "sha256", "sha384", "sha512", not %s r<Fr0rr)rs)hasattrrSr`rrTrrrIr?r@rrAgetattrhashlibrHcontentsrUrBrCrDrErFdigestlenrhmacnewrW inverse_modr dump)r<datahash_algorithm curve_name hash_funcec_private_keyrLrMrJrKnrq hash_lengthhVKrkrlTks rr$r$s , ; 'z+:J:JN/[  k "    ""JDEE     dH %  dO    S!QRR      0I %%m4;;N&}5>>$]3::O!*-O)))  A t_ # # %Ff+Kve,q0A +A +A AK"33f 6Q!V  ! $ $q ( 6  A !':a&?"? @A E 6  aa( ) . . 00rct|d}|r t|jttfst t dt||j}|tgdvrtt dt|tst t dt|t|tst t dt||tgdvrtt dt||j}t|tr |j}ttt d|}|d j#\}} |j$} t'|j|| | } t)j*|}|d j,} |d j,} d }|| dkz}|| | k\z}|| dkz}|| | k\z}|r t/d t1t2|}||j5}t7|d| z}t9| | }||z| z}| |z| z}||z| |zz}| |j:| zk7r t/d y#t$r t/d wxYw)a Verifies an ECDSA signature in pure Python (thus slow) :param certificate_or_public_key: A Certificate or PublicKey instance to verify the signature with :param signature: A byte string of the signature to verify :param data: A byte string of the data the signature is for :param hash_algorithm: A unicode string of "md5", "sha1", "sha256", "sha384" or "sha512" :raises: oscrypto.errors.SignatureError - when the signature is determined to be invalid ValueError - when any of the parameters contain an invalid value TypeError - when any of the parameters are of the wrong type OSError - when an error is returned by the OS crypto library r`z certificate_or_public_key must be an instance of the oscrypto.asymmetric.PublicKey or oscrypto.asymmetric.Certificate classes, not %s r)z certificate_or_public_key does not use one of the named curves secp256r1, secp384r1 or secp521r1 zA signature must be a byte string, not %s rarbrhr>rkrlzSignature is invalidrrFr0N)rmrSr`rr rTrrrIr?r@rrAr>rCrDrE to_coordsrF PrimePointr loadrUrrnrorqrrurW)certificate_or_public_key signaturerwrxhas_asn1ryr`rKrWrXr|r^rkrlinvalidrzrqzwu1u2 hash_points rr%r%`s.0&9H :&?&D&D}VaFbc  / 0    +00JDEE     i *  i     dH %  dO    S!QRR       % ) )D$ $*))    ' ' )DAqA""2"8"8!QB5 %%i0 cN ! ! cN ! !G q1uG qAvG q1uG qAvG3440I t_ # # %Fve,q0AAqA a%1B a%1B"R',|dkDsJd}||kr d|z}||kr |dzS)Nrrr)rWresults r leftmost_bitz(PrimePoint.__mul__..leftmost_bits5q5L5FA+VA+Q; rrrrr)rFrrrIrWrXr)rrree3 negative_selfirs r__mul__zPrimePoint.__mul__s   ::DJJA 6O 8 O1u uU"4::tvvw K   !!e]]_FQ1}!a%A$Q1}!a%A-/QA!e rc ||zS)rrrs r__rmul__zPrimePoint.__rmul__se|rct|jj}|jj}d|jz|jz|zt d|j z|z|z}||zd|jzz |z}||j|z z|j z |z}t |j||S)zS :return: A PrimePoint object that is twice this point rr)rIrrrWrurXr)rrrrrrs rrzPrimePoint.doubles JJLL JJLL466zDFF"Q&+a$&&j!*DD I2gDFF "a 'DFFRK 466)Q .$**b"--rr) rrrrrrrrrrrrrrrMs&5: .>)V .rrl l 9{uDjSg9g(Bl +'1t:_|v!a:@ml H<^W]dZ{cxW\Iql 1(i&^#a;l?lF eY8 w-X"PVd/%PP!-l!"X!#BXtJ9!'|%VA-l4~ f&Dv@h!fE0m9_ qlM/l=*8%(?l?@lK`Opq^cv 3,e< 1U]>{|R*ZlB11e %:f=K`wrH7gHK8hklQ~o]l+fUg+<)Z?8O?q!OlQ%x +Ohbi+}s@l~l*'#.TEbc+Z'@=D 1 "(?7N2Z_+|S/1fl dxRjoyU8T( :ss"nZL8k&"_Ul_!uR/sX0 @qaNQNB&JxS8KJEY K%lls)e`gwl X_[nlv|l#l#?VQ(zO%b95~cte1oR{V;LH w>l-rZE]"Sr&Ga9}*Fl#f=xK)H-apY$3^Q n%k{;/K!u{4-{?$Od8V1l3s: l#Pf?QE$XN!85aZU WL9YLhz f$Du13otc!% pMxjRr`l# dp"z\}[z3"nZ;PK# `7roCQ); __future__rrrrrorssysr_asn1r r r r r rrrrr_errorsr_typesrrutilrerrorsr version_infochrrxrangerange_backend SystemError__all__rBCURVE_EXTRA_BITSr!r"r#r$r%rurrrSECP192R1_CURVESECP192R1_BASE_POINTSECP224R1_CURVESECP224R1_BASE_POINTSECP256R1_CURVErCSECP384R1_CURVErDSECP521R1_CURVErErrrrsRR    $'"dG E 9 { J KK  9Cx8Hv"J~1Br5j,^ F#E#ELT.T.p dD$ '>6 "66> H> ">>H RF "FFR xf "ffx bJ "IJb r