From 1e49c17da6705d7e65b18a7f9c63c99b1258624d Mon Sep 17 00:00:00 2001 From: Orson Peters Date: Thu, 11 Apr 2013 20:17:21 +0200 Subject: [PATCH] add_scalar now generates a new salt --- ed25519_32.dll | Bin 127488 -> 127488 bytes ed25519_64.dll | Bin 112128 -> 112128 bytes src/add_scalar.c | 11 ++++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ed25519_32.dll b/ed25519_32.dll index d5077a19657d56b33436791871d91839a70b3cc4..ac15a9513e20efe8eb8388bbf3176a97e7610fe9 100644 GIT binary patch delta 2104 zcmb7Fdr(wW96sl=JR-`qP|;}EX>O9GcHi&aOU5LPL_3lr0m|m1So49n8YHzK?&QTt z^qTarBAwAno55h+GN&-qFtjk4(KJ)Zn#~MxD%4E2-(8k)`maB}`F`j7J$=5Rd1WA=`9( z%uJ47m%8;LLV-5ppzon~=iLZ;AwJw-ei)xYWKA`{jxWCB!Xp^{GB6N{d}$*y5JKTY zrk0R~+sqjWIipK@5i%B%Nnd7@Ht-=sBg50KnJoz};?`dC_XKeyad|MpC?;)|_X|@^ zoRId~RfK9Uru;W`y;+sW5VNnE&50V}xN7z$X5+6+HfahzZmviwAH6pYp|!1KmqnY& zZi_aOC(MDQ1^yAMw?O~;Y|?JPEYK~*s3Mb$bTYiajOuRCqjP3ibAtZuIY@tkEDQ7- z`3^9AMm`BtVdUQjRAuB(gyPj!a6Sdr>ZrwmwI*swV7(l*G+&012-~aQOm>;C+%nd0 zjaf9iWLA5i-**|*G9ucsekW-MkKrS2VP-lQ){(#)s|oQF5z-EQ2m68jntb>at7 zJOx2--p^T|?i%}fb_gHF5gdvf!8LKXIaG5LKaTy>{Xwsd9K@Y5J3huu6NY^ru(M)o z2QZ4+=kFVi8LIO?*dJ})7Aw*a<5J*kfFrj4DRa0<*G=|+8x`ENnIWI&-r?LKZJ7Oo zPAV4E2Pfek4~+qRpzQ-RK|@P>Db{!?}%6lpgjiL}bG%4t{$B;D{icJp9>Bd{);oH)fa1xLAJFEx(3_@M-3OKGIV^LY`9a zF919XSO~cQ`yz;2ghYfEg8^_af#Lvr859AORe%md^}PoPFl5;ku>XXDzr&z^gnCY5 z;kKma8?9asz$rJD0h9 zmR3EeEvHt{%a}=AF3f|vUapQTso8+3FQArjV3-pzLi$AlN9fTSu@lr-%@?Hgy0 z)6h5Ss1G4H7}QIR_tODwhqhO{qK$A)aPD@tLrBDeGH)=g%s!@v8DRWlS(PnhSFm;L+w3m3o&ARWneAuexeSisrf^Si ztGM^MJ=}ioFn5|G_(Xm(&+#sPDxb?2@gBaEU&^oKYxp|;O@0sG#vkMl^WXAG!tDYn z%olt@rQjD{7B&b$p;I_292W>NNz4={iHf*Xd|nKQ4SsQx_^!A^+$SCrzY|wVhSVUv zD)mdZ%Xi9x{D}OR{EYm(TqD0EAC$Z0Yw{Q+U3pX~QsyefYmVv({)yXeex&2@FVPP)#zF1Y@7P1CPi*9o6azZKj;#nH)h zAswJM(sAq<_BnPd+ojCZmT8?@hyK0ZV+ChnWc>jSFn6%y*b=ss-OgR$p5~kRk%B|W zgne!nwhPOCr>s%ow}L-neQ)k@W`zOL?2gX&(jL+y5} zXVl-+el=Mer9Gf!YtuEaR<5nlUe}tmom!7}Ny~B0byhgvac;AA=f*Njc8}b(U1NkF)kDRB>Q%Xa# IF5#`jKdyJgH~;_u delta 2031 zcmb7DZE#fO6+Z9HCRvyu5<*NMH4$z=5Qh7G-}|w5qc8~yrYki9F+zfv$tEcuvQ=qg zH+(4zM3=dev?Dqgq-C(uKv-9?Gwz5(YArU6A2UtV$wWpMNn$kG#8B9tn`}nLfBtyp zIq!4MdCs}-+_&*kdgG<^@IIz5erSIwbNJMu?mv;7_MPMalM!A)Amn00=i?s_*g38S zCO&32yYiW@OYEp?HQ8=YO?@_NSwFzuSm;9F&X+b_i}1dF$Hs56@#Fp*$akhU9bv=v z;FR2;^T5Ud)O0B&auS{N6?^iv0*Z<$FG$ET&_wa65(*T{rRaY z2XrWp_;+7T1lYYjf$52?7sk(5NYi8Rn{V*`eJK%tT=*f8*!@nrrmBmUAairze(`_}R(`6o$`XyPK-nL>Qgo&P4kB*D&w5&z5c zCeWUYk0-h4h8$qrd;3IP4Ebm>-jn1>kDtlG@!^$86E4Ya~v~Ds# z7&`!P^fQ31`v7A2%7%UbD9Q#1BYGXa1)yLyat;Eyk^*$%yXFe;JQtvC3HIQi&Jut| z9(&hd-+Ih#K)o7!ci>tznD--U5p~#Gk9~;VdQjo$uQ5OjZASAgm_QV51-SVM)SpJ9 z6WDMN&m$OrkA}mz=y0^Jn<&%VzH4XwfN*}lUh>*kq=E?^7e~eWr8X%;u8}+B0_9h9 zy;kDIEzmRzDXPsdGd(k{EJtgc&}MPj{7m7Z*sq}0iNlb(tZP=TSMWkF0E_2Or6H+C z*{yXFI)hp}Xz=LJuy zHO*RLZLqdkuUa2ipW^sxZ_t}?mH+~I_{8UODra$Pxmxb`Tr>9)_a^rVH^>chqug{p zk6*+u=J@63U3HK!kCaPE)p&A zKJj63i};k-EFKr%61&7c@jG#@bhlJ4ZIbGxC#6>D&(izShtg-#mr}oURRY;9&yeTH zx5TI%daW2W&7qr-#(0*mpE{QM67oS;a9%2jQedC=40NwEUfZ>>gazjegA zVmLbQXv(BvXHh6bA#YF`6AUz_S5zYw- z!7Y|Z`=vD5C!dyM_~+y+rc$C5tLxNC^%1>Je?mW~AJ$*d&+2dMU3!n+uYa#kF>W$) zjeJ8hRvKkSg;8S!f=1A2GMbH(M#Ol}xMX~5OffUf+fB_ZGFO?q%xBHGnc~Uucs<1) zobDq~fi#`l&HaZX{Ao3Z7SN@174^|gbUS^L?xd~sBt1jV(YNV8Xcz6Kee^5(Eghqb kHdV{So1CjH(gaP{?$YkjR%_|y+Mwpr-O-1>CdZin1GYcQng9R* diff --git a/ed25519_64.dll b/ed25519_64.dll index 78c819982383cd97c21b2c7870a80034b425d886..f50647c852b28adec5cc556a7756e3d30eec935c 100644 GIT binary patch delta 6370 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 diff --git a/src/add_scalar.c b/src/add_scalar.c index d728995..e305e73 100644 --- a/src/add_scalar.c +++ b/src/add_scalar.c @@ -1,4 +1,5 @@ #include "ed25519.h" +#include "sha512.h" #include "ge.h" #include "sc.h" @@ -7,7 +8,8 @@ void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, const unsigned char *scalar) { const unsigned char SC_1[32] = {1}; /* scalar with value 1 */ - unsigned char n[32]; + unsigned char n[32]; + unsigned char salt[64]; ge_p3 nB; ge_p1p1 A_p1p1; ge_p3 A; @@ -23,8 +25,15 @@ void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, c n[31] = scalar[31] & 127; /* private key: a = n + t */ + /* we also create a new salt, just to be sure */ if (private_key) { sc_muladd(private_key, SC_1, n, private_key); + + /* generate new salt as the last 32 bytes of SHA512(new_private_key, old_salt) */ + sha512(private_key, 64, salt); + for (i = 0; i < 32; ++i) { + private_key[i + 32] = salt[i + 32]; + } } /* public key: A = nB + T */