K i.MddlmZddlmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mm?Z?ddl@mAZAddlBmCZCmDZDddlEmFZFddlGmHZHmIZIddlJmKZKd ZLd ZMd ZNd ZOd ZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbd Zcd!Zdd"Zed#Zfd$Zgd%Zhd&Zid'Zjd(Zkd)Zld*Zmd+Znd,Zod-Zpd.Zqd/Zrd0Zsd1Ztd2Zud3Zvd4Zwd5Zxd6Zyd7Zzd8Z{d9Z|d:Z}d;Z~y<)=symbols); cycle_listencipher_shiftencipher_affineencipher_substitutioncheck_and_joinencipher_vigeneredecipher_vigenere encipher_hill decipher_hillencipher_bifid5encipher_bifid6 bifid5_square bifid6_squarebifid5bifid6decipher_bifid5decipher_bifid6encipher_kid_rsadecipher_kid_rsakid_rsa_private_keykid_rsa_public_key decipher_rsarsa_private_keyrsa_public_key encipher_rsalfsr_connection_polynomiallfsr_autocorrelation lfsr_sequence encode_morse decode_morseelgamal_private_keyelgamal_public_keyencipher_elgamaldecipher_elgamaldh_private_key dh_public_key dh_shared_keydecipher_shiftdecipher_affineencipher_bifiddecipher_bifid bifid_square padded_keyuniq decipher_gm encipher_gm gm_public_keygm_private_key encipher_bg decipher_bgbg_private_key bg_public_keyencipher_rot13decipher_rot13encipher_atbashdecipher_atbashNonInvertibleCipherWarningencipher_railfencedecipher_railfence)gcd)Matrix)isprimeis_primitive_root)FF)raiseswarns) randrangecjtdddk(sJtdddk(sJtdddk(sJy)N hello world hlowrdel ol horel ollwd hwe olordll)r>d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/crypto/tests/test_crypto.pytest_encipher_railfencerSA mA .- ?? ? mA .- ?? ? mA .- ?? ?rQcjtdddk(sJtdddk(sJtdddk(sJy)NrKrJrIrMrLrOrN)r?rPrQrRtest_decipher_railfencerV!rTrQcvtddgdk(sJtddgdk(sJtddgdk(sJy)NrLrN)rLrrJrX)rXrJrLr)rrPrQrRtest_cycle_listrZ'sA a | ++ + b!  ,, , a | ++ +rQctdddk(sJtdddk(sJtdddk(sJtdddk(sJy)NABCrrXBCDrYZAB)rr*rPrQrRtest_encipher_shiftr_-sV % #u ,, , % #u ,, , % $ -- - % $ -- -rQctddk(sJtddk(sJtddk(sJtddk(sJy)Nr\NOP)r9r:rPrQrRtest_encipher_rot13rb3sN % E )) ) % E )) ) % E )) ) % E )) )rQctdddk(sJtdddk(sJtdddk(sJtddd d k(sJtd dd d k(sJtdddk(sJtdddk(sJy)Nr\)rXr)rXrXr])rYrAZY)rYrXABCDrBAD1231234214)rLQTW)rr+rPrQrRtest_encipher_affinerl:s 5& )U 22 2 5& )U 22 2 5' *e 33 3 5'6 :e CC C 5'6 :e CC C 5' *e 33 3 5' *e 33 3rQctddk(sJtddk(sJtddk(sJtddk(sJy)Nr\ZYX)r;r<rPrQrRtest_encipher_atbashroCsN 5 !U ** * 5 !U ** * 5 !U ** * 5 !U ** *rQcLtddddk(sJtddddk(sJy)Nr\BACrg1243rh124)rrPrQrRtest_encipher_substitutionrtIs0 u 5 >> >  75 @@ @rQctddk(sJttddk(sJtdjdk(sJtddddk(sJttdy)Nabcaaabczab caT)filterctddS)Nabrx)r rPrQrRz%test_check_and_join..Ss ~dC8rQ)r r0splitrE ValueErrorrPrQrRtest_check_and_joinrNsg % E )) ) $w- (E 11 1 &,,. )U 22 2 %T 2c 99 9 :89rQctdddk(sJtddddk(sJtddddk(sJtddddk(sJtd ddd k(sJy) Nr\ACErerACAABACCACA)r rPrQrRtest_encipher_vigenererVs UE *e 33 3 UE6 :e CC C UD& 9U BB B T5& 9T AA A S% 8C ?? ?rQctdddk(sJtddddk(sJtddddk(sJtddddk(sJtddddk(sJy) Nr\AAArerrAACAAr)r rPrQrRtest_decipher_vigenerer^rrQc\tddgd}td|dk(sJtddgd}td|dk(sJtd|ddk(sJtddgd}td|ddk(sJtd|dd k(sJtd |d k(sJtd |d dk(sJy)NrJrXrJrLreCFIVrXrrrXrCBABrCBABACFGCZ)padCFYV)rAr rs rRtest_encipher_hillrfsq!\"A  #v -- -q!\"A  #v -- - F 3v == =q!\"A F 3v == = q& 1T 99 9  "f ,, , s +v 55 5rQc6tddgd}td|dk(sJtddgd}td|dk(sJtd|ddk(sJtddgd}td|ddk(sJtd|dd k(sJtd |d k(sJy) NrJrrrerrrrrCFAABAA)rAr rs rRtest_decipher_hillrusq!\"A  #v -- -q!\"A  #v -- - F 3v == =q!\"A F 3v == = q& 1T 99 9  "f ,, ,rQctdddk(sJtdddk(sJtdddk(sJtddd k(sJy) NrCDCOr{cCHa bcbrq)rrPrQrRtest_encipher_bifid5rV 4 &$ .. . 4 &$ .. . 4 % -- - 63 '5 00 0rQcVtfd}tdd|}td|k(sJy)Nc,td|z|zS)Nrrijrs rRr|z$test_bifid5_square..WQqsQwZ(rQr)rrArfMrs @rRtest_bifid5_squarer-A(Aq!QA   !! !rQctdddk(sJtdddk(sJtdddk(sJtdddk(sJy) Nrrrchrb acrr\)rrPrQrRtest_decipher_bifid5rrrQctdddk(sJtdddk(sJtdddk(sJtddd k(sJy) NrrCPr{rCIrrrq)rrPrQrRtest_encipher_bifid6rrrQctdddk(sJtdddk(sJtdddk(sJtdddk(sJy) Nrrrcirrrr\)rrPrQrRtest_decipher_bifid6rrrQcVtfd}tdd|}td|k(sJy)Nc,td|z|zS)Nrrs rRr|z$test_bifid6_square..rrQrr)rrArrs @rRtest_bifid6_squarerrrQctddddk(sJtddddk(sJtt5tddddk(sJtdddd usJ dddy#1swYyxYw) NrJrLrXrrXrrLrNrXF)rrFr=rPrQrRtest_rsa_public_keyrs| !Q "f ,, , !Q "g -- - ) *0aA&&000aA&%///000s $A""A+ctddddk(sJtddddk(sJtdddd k(sJtt5tdddd k(sJtd d d d usJ dddy#1swYyxYw) NrJrLrXrrr)iirrF)rrFr=rPrQrRtest_rsa_private_keyrs 1a #v -- - 1a #w .. . 2b #y 00 0 ) *1q!Q'6111q!Q'5000111s $A44A=ctd}td}td}td}t|||||z|fk(sJt|||||z|fk(sJy)NN101565610013301240713207239558950144682174355406589305284428666903702505233009M8946871918875454889354556059559484138123760030531435214292421331206929398400365537ښ8936505818327042395303988587447591295947962354408444794561435666999402846577625762582824202269399672579058991442587406384754958587400493169361356902030209)intrr)pqeds rRtest_rsa_large_keyrsz   A   A G A  # $A !Q "qsAh .. . 1a #!Qx // /rQctddd}td|dk(sJtddd}td|dk(sJtt5tddd}td|dk(sJ dddy#1swYyxYwNrJrLrXrr)rrrFr=)puks rRtest_encipher_rsars Aq !C 3 1 $$ $ Aq !C 3 1 $$ $ ) *)Q1%As#q((())) A55A>ctddd}td|dk(sJtddd}td|dk(sJtt5tddd}td|dk(sJ dddy#1swYyxYwr)rrrFr=)prks rRtest_decipher_rsars !Q "C 3 1 $$ $ !Q "C 3 1 $$ $ ) *)aA&As#q((()))rc tddddddd}tddddddd}|dk(sJ|dk(sJd }td|zd z |}|d k(sJt||d zdz }||k(sJtd d ddd }td d ddd }td d ddd}td d ddd}|dk(sJ|dk(sJ|dk(sJ|dk(sJd}tt|||}|dk(sJtt|||}||k(sJy)NrJrLr )Nur)ri7 riF5)+/a)Cr)ri|)rr)ri!i!0i)rrrr) rrmsg encrypted decryptedpuk1prk1puk2prk2s rR!test_mutltiprime_rsa_full_examplersb Aq!RQ /C !Q1b"a 0C *   ,   CQWr\3/I   i-2a7I    "b"b" -D 2r2r2 .D "b"b" -D 2r2r2 .D =  $ $$ $ =  $ $$ $ C\#t4d;I   \)T:DAI   rQc Ftd}td}td}td}td}d}t||||||}t||||||}d}t||} t|||||||g} | | k(sJt | |t | ||||||gk(sJy)N51017715760715424506802386150369308212090648714372506228340650154082258226204046999838297167140821364638180697194879500245557654451869628933464638414194270088003412574686002240499862604719225724816301446884172547691863941572670973607781363296129091102564212329778330286774412060493092203547960143766983251016934287523423530951328722901815266072758861827932416608050778508017568951279775428697295227355312818186183057683628973866874525034028199691128870676414118458442900035778874482624765513861643279666963168221883983361990023065887039028941004761868238495951032394105272796054421482858161493686670831148028528049768935176982292598688257768795007363501868388509619359563101343782618977186218671746306754136969481624522529192113803880017112559607315449521981157084370187887650624061033066022458512942411841187478937899723152771600850861641198795360418753353848448205660287479617671726408053319619892052000850883994343378882717849468925428438585431029269182233502611027091755064643742383515623643213105828968933955293670749428083531871387944227457184196452829123186515721260426690367759918078989691645612028911275283598502265889669730331688206825220074713977607415178738015831030364290585369150502819743827343552098197095520550865360159439469035483433453632820551311892368908779778144568711455301541094314870476423226953576968609257479231896350331830698238209105217117290910679774888326149322416241405010692044244589681980660015448444826108008217972129130625571421904893252804729877353352739420480574842850202181462656251626522910618936534699566291ii)rrrrr) rrrstrrr plaintext ciphertext_1 ciphertext_2s rRtest_rsa_crt_extremers  H IA  G HA  H IA  G A  G A A Aq!Q *C !Q1a +CI 3/L 3Aq!Q@L < '' '  c *\3Aq!Q8 99 9rQc d\}}d}t|||d}t|||d}t|dD]"}t||}t ||} ||k(sJ$y#t $rt dj |||wxYw)N)=r Carmichael)totientrRThe RSA is not correctly decrypted (Original : {}, Encrypted : {}, Decrypted : {})rrrangerrAssertionErrorformat)rrrrrrrrs rRtest_rsa_exhaustiver 7s DAq A Aq, 7C !Q< 8CSV}  c*  C0  # ##    BY 2  s A&Bc gd}d}||gz}t|ddi}t|ddi}|d}t|D]"}t||}t ||} ||k(sJ$y#t $rt dj |||wxYw)N)rLrrrrrrrrr  primesrargsrrnrrrs rRtest_rsa_multiprime_exhanstiverJs F A QC 11 1  N 22 2  r !! !   $$ $  % -- -  && 00 0  '+\ \\ \  $C CC C  $C CC CrQcftddk(sJtddk(sJttdy)Nz -.-|.|-.--KEYz .-.|..-|-.||RUNctdS)Nz .....----)r"rPrQrRr|z#test_decode_morse..s \+6rQ)r"rEKeyErrorrPrQrRtest_decode_morser1s3  % .. .  '5 00 0 867rQc@ttdttdtd}t|dg|dgd|d|dgk(sJt|dg|dgd|d|dgk(sJtd}t|dg|dgd|d|dgk(sJt|dg|dgd|d|dgk(sJt|dg|dgd|d|dgk(sJy)NctddgdSNrXr rPrQrRr|z$test_lfsr_sequence..smAsA6rQctdgddSr4r5rPrQrRr|z$test_lfsr_sequence..smQCA6rQrJrXrrL)rE TypeErrorrDr )Fs rRtest_lfsr_sequencer9s 967 967 1A !A$!A$ +!ad| ;; ; !A$!A$ +!ad| ;; ; 1A !A$!A$ +!ad| ;; ; !A$!A$ +!ad| ;; ; !A$!A$ +!ad| ;; ;rQcttdtd}t|d|dg|d|dgd}t |dddk(sJt |dddk(sJy)NctdddS)NrXrJrL)rrPrQrRr|z+test_lfsr_autocorrelation..s21a;rQrJrXrrrY)rEr7rDr r)r8rs rRtest_lfsr_autocorrelationr<sj 9;< 1AqtQqTlQqT1Q4L!4A 1a (A -- - 1a (B .. .rQc2td}td}t|d|dg|d|dgd}t||dzdzk(sJt|d|dg|d|dgd}t||dz|zdzk(sJy)NrJxrXrr)rDrr r)r8r>rs rRtest_lfsr_connection_polynomialr?s 1A AqtQqTlQqT1Q4L!4A %a (AqD1H 44 4qtQqTlQqT1Q4L!4A %a (AqD1HqL 88 8rQctd\}}}t|sJt||sJtt |dk\sJyNddigitf)r#rBrClenbin)rxr_s rRtest_elgamal_private_keyrIsD!,GAq! 1:: Q "" " s1v;#  rQctdt}|ddz ttdz |k(sJt t fdt t fdy)NrrrXctS)Nr%)PdksrRr|ztest_elgamal..s/26rQctdS)NrYrL)rNsrRr|ztest_elgamal..s/B7rQ)r#r$r&r%rEr~)ekrMrNs @@rR test_elgamalrQs\ Q B B B 1A q5$%5a!eR%@"E EE E :67 :78rQctd\}}}t|sJt||sJtt |dk\sJyrA)r'rBrCrFrG)rgrHs rRtest_dh_private_keyrTsDS)GAq! 1:: Q "" " s1v;#  rQctd\}}}t|||f\}}}||k(sJ||k(sJ|t|||k(sJy)NrBrC)r'r(pow)p1g1rxp2g2gas rRtest_dh_public_keyr\sTs+IBAB{+JBB 8O8 8O8 RB  rQctd}t|\}}}td|}t|||f|}|t |||k(sJt t dy)NrBrCrJctddS)N)ii5i)r)rPrQrRr|z$test_dh_shared_key..s }_dCrQ)r'r(rGr)rVrEr~)rrrHr[rsks rRtest_dh_shared_keyrasZ  %CS!HAq"!QA 1bz1 %B RA   :CDrQcjtdddk(sJttdttdy)Nrr{bactddS)Nr{acer/rPrQrRr|z!test_padded_key..s z$6rQctddS)Nr{abbarfrPrQrRr|z!test_padded_key..s z$7rQ)r/rEr~rPrQrRtest_padded_keyris- c4 D (( ( :67 :78rQcttdtddddk(sJttdtddddk(sJttdtdtd k(sJt d t d k(sJy) NctdddS)Nrvrabcde)r,rPrQrRr|ztest_bifid..~eS'BrQrvrabcdbdbctdddS)Nrorrl)r-rPrQrRr|ztest_bifid..rmrQctdS)Nrl)r.rPrQrRr|ztest_bifid..s |G4rQBBACDEFGHIKLMNOPQRSTUVWXYZB0$B0ACDEFGHIJKLMNOPQRSTUVWXYZ123456789)rEr~r,rrrPrQrR test_bifidrvs :BC %f - 66 6 :BC %f - 66 6 :45  12 33 3  <= >> >rQcgd}gd}gd}t||D]C\}}t||}|D]-}t||}t||}t ||} | |k(r-JEy)N))Yregkmqrxryrzr{r|r}r) riWii9iS(iiii+iiH)zipr4r3r2r1 psqsmessagesrrprirpubencdecs rRtest_encipher_decipher_gmrs} -B ,BHB 1Q" C1%Cc3'Cc3'C#: :  rQcjttdttdttdy)NctddS)Nrrr3rPrQrRr|z%test_gm_private_key..  }R4rQctddS)NrrrPrQrRr|z%test_gm_private_key..  }Q2rQctddS)NrrrrPrQrRr|z%test_gm_private_key..rrQ)rEr~r3rPrQrRtest_gm_private_keyr s& :45 :23 :23 rQcvdtdddk(sJdtdddk(sJttdy) NiCrrXrrLrctddS)NrrrrPrQrRr|z$test_gm_public_key..rrQ)r3rEr~rPrQrRtest_gm_public_keyrsA -B'* ** * -1%a( (( ( :45rQcgd}gdx}}gd}t||D]C\}}t||}|D]-}t||}t||}t ||} | |k(r-JEy)N)CrGrrrrrOrSr;r)rrrrrrrrrrrrrrr) riHiWriiri[iiij)rr7r8r5r6rs rRtest_encipher_decipher_bgrs 'B00BH B 1Q" C1%Cc3'Cc3'C#: :  rQcjttdttdttdy)NctddS)Nrrjr7rPrQrRr|z%test_bg_private_key..*s ~a4rQctddS)NrrrPrQrRr|z%test_bg_private_key..+s ~a3rQctddSNrrrrPrQrRr|z%test_bg_private_key.., ~b"5rQ)rEr~r7rPrQrRtest_bg_private_keyr)s& :45 :34 :56 rQcjdtddk(sJdtddk(sJttdy)NirrirrctddSrrrPrQrRr|z$test_bg_public_key..2rrQ)r8rEr~rPrQrRtest_bg_public_keyr/s7 =R( (( ( -B' '' ' :56rQN) sympy.corersympy.crypto.cryptorrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?sympy.external.gmpyr@sympy.matricesrA sympy.ntheoryrBrCsympy.polys.domainsrDsympy.testing.pytestrErFsympy.core.randomrGrSrVrZr_rbrlrortrrrrrrrrrrrrrrrrrrr rrrrr!r$r+r1r9r<r?rIrQrTr\rarirvrrrrrrrPrQrRrst................"$!4".'@ @ , . *4+ A :@@ 6 -1"111"01 0))B/9d&*04 5 , , D8 </99 E9 >$+6 $, 7rQ