1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-03-09 15:53:54 +00:00
Files
bips/bip-schnorr/__pycache__/reference.cpython-36.pyc

83 lines
5.2 KiB
Plaintext
Raw Normal View History

3
<EFBFBD><EFBFBD><EFBFBD>]`<00>@s<>ddlZddlZdZdZd)Zdd<07>Zdd <09>Zd
d <0B>Zd d <0A>Zdd<0F>Z dd<11>Z
dd<13>Z dd<15>Z dd<17>Z dd<19>Zdd<1B>Zdd<1D>Zdd<1F>Zd d!<21>Zd"d#<23>Zd$d%<25>ZddlZd&d'<27>Zed(kr<>e<16>dS)*<2A>Nl/|<7C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lAAl 3z<33>~<7E>i<>9nW<6E>~<7E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><00><00><17>-l<05>O<EFBFBD> <0A>9<EFBFBD>6<EFBFBD>M:WZEuw>?3<>y<EFBFBD><00>T!v?B>b<>A<EFBFBD>P)<12> <0B>("8p<38>'<27>U<EFBFBD>x<EFBFBD>I;m:HcCs(tj|j<02><00>j<03>}tj|||<00>j<03>S)N)<04>hashlib<69>sha256<35>encode<64>digest)<03>tag<61>msgZtag_hash<73>r
<00>*/home/pw/git/bips/bip-schnorr/reference.py<70> tagged_hash sr cCs|dkS)Nr
)<01>Pr
r
r <00> is_infinitysrcCs|dS)Nrr
)r r
r
r <00>xsrcCs|dS)N<>r
)r r
r
r <00>ysrcCs<>|dkr |S|dkr|St|<00>t|<01>kr<t|<00>t|<01>kr<dS||krvdt|<00>t|<00>tdt|<00>tdt<03>t}n0t|<01>t|<00>tt|<01>t|<00>tdt<03>t}||t|<00>t|<01>t}||t|<00>|t|<00>tfS)N<><00>)rr<00>pow<6F>p)ZP1ZP2ZlamZx3r
r
r <00> point_adds 20rcCs:d}x0td<01>D]$}||?d@r(t||<00>}t||<00>}qW|S)N<>r)<02>ranger)r <00>n<>R<>ir
r
r <00> point_mul(s  
rcCs|jddd<03>S)N<> <00>big)<01> byteorder)<01>to_bytes)rr
r
r <00>bytes_from_int0sr!cCs tt|<00><01>S)N)r!r)r r
r
r <00>bytes_from_point3sr"cCsXt|<00>}|tkrdSt|dt<01>dt}t|tddt<01>}t|dt<01>|krPdS||gS)Nr<00>r<00>r)<03>int_from_bytesrr)<04>brZy_sqrr
r
r <00>point_from_bytes6sr'cCstj|dd<02>S)Nr)r)<02>int<6E>
from_bytes)r&r
r
r r%@sr%cCstj|<00>j<02>S)N)rrr)r&r
r
r <00> hash_sha256Csr*cCst|tddt<01>dkS)Nrr)rr)rr
r
r <00> is_squareFsr+cCst|<00> ott|<00><01>S)N)rr+r)r r
r
r <00> has_square_yIsr,cCs>t|<00>}d|kotdkns,td<02><01>tt|<01>}t|<02>S)Nrz6The secret key must be an integer in the range 1..n-1.)r%r<00>
ValueErrorr<00>Gr")<03>seckeyrr r
r
r <00>
pubkey_genLs

r0cCs<>t|<00>dkrtd<02><01>t|<01>}d|ko2tdkns@td<04><01>tt|<01>}t|<02>rV|nt|}ttdt|<03>|<00><02>t}|dkr<>t d<07><01>tt|<04>}t|<05>s<>t|n|}ttdt
|<05>t
|<02>|<00><02>t}t
|<05>t|||t<00>S) Nrz$The message must be a 32-byte array.rz6The secret key must be an integer in the range 1..n-1.ZBIPSchnorrDeriverz7Failure. This happens only with negligible probability.<2E>
BIPSchnorr) <0B>lenr-r%rrr.r,r r!<00> RuntimeErrorr")r <00>seckey0r r/Zk0r<00>k<>er
r
r <00> schnorr_signSs 

"r7cCs<>t|<00>dkrtd<02><01>t|<01>dkr(td<03><01>t|<02>dkr<td<05><01>t|<01>}|dkrPdSt|dd<01><00>}t|dd<04><00>}|tks<>|tkr<>dSttd|dd<01>||<00><02>t}ttt |<05>t|t|<00><02>}|dks<>t
|<07> s<>t |<07>|kr<>dSd S)
Nrz$The message must be a 32-byte array.z'The public key must be a 32-byte array.<2E>@z&The signature must be a 64-byte array.Frr1T) r2r-r'r%rrr rrr.r,r)r <00>pubkey<65>sigr <00>r<>sr6rr
r
r <00>schnorr_verifycs$   "r=cCs<>d}tddd<04><02><01>^}tj|<01>}|j<03><00>xB|D<00>]8}|\}}}}}} }
tj|<06>}tj|<07>}tj|<08>}| dk} tdt|<04><00>|dk<03>rtj|<05>}t|<05>} || kr<>td<07>td|j <09>j
<EFBFBD><00>td | j <09>j
<EFBFBD><00>t ||<05>} || kr<>td
<EFBFBD>n0td <0B>td |j <09>j
<EFBFBD><00>td | j <09>j
<EFBFBD><00>d}t |||<08>} | | k<02>r8td<0F>q.td<10>td| <09>td| <0A>|
<EFBFBD>rdtd|
<EFBFBD>d}q.WWdQRXt<06>|<00>r<>td<14>ntd<15>|S)NTztest-vectors.csv<73>)<01>newline<6E>TRUEz
Test vector #%-3i: z * Failed key generation.z Expected key:z Actual key:z * Passed signing test.z * Failed signing test.z Expected signature:z Actual signature:Fz * Passed verification test.z * Failed verification test.z Expected verification result:z Actual verification result:z Comment:zAll test vectors passed.zSome test vectors failed.) <0A>open<65>csv<73>reader<65>__next__<5F>bytes<65>fromhex<65>printr(r0<00>hex<65>upperr7r=)Z
all_passedZcsvfilerCZrow<6F>indexr/r9r r:<00>result<6C>commentZ pubkey_actualZ
sig_actualZ result_actualr
r
r <00> test_vectors|sN







 





rM<00>__main__)rr)rZbinasciirrr.r rrrrrr!r"r'r%r*r+r,r0r7r=rBrM<00>__name__r
r
r
r <00><module>s0
,