On Wednesday 08 April 2009 01:28:41 Daniel Cheng wrote:
> On Wed, Apr 8, 2009 at 4:02 AM, Matthew Toseland
> <[email protected]> wrote:
> > On Tuesday 07 April 2009 16:26:42 [email protected] wrote:
> >> Author: j16sdiz
> >> Date: 2009-04-07 15:26:41 +0000 (Tue, 07 Apr 2009)
> >> New Revision: 26609
> >>
> >> Modified:
> >>    trunk/freenet/src/freenet/crypt/Yarrow.java
> >> Log:
> >> Use int[] instead of Integer, save autoboxing and put()
> >>
> >> Modified: trunk/freenet/src/freenet/crypt/Yarrow.java
> >> ===================================================================
> >> --- trunk/freenet/src/freenet/crypt/Yarrow.java       2009-04-07 15:06:39 
UTC (rev
> > 26608)
> >> +++ trunk/freenet/src/freenet/crypt/Yarrow.java       2009-04-07 15:26:41 
UTC (rev
> > 26609)
> >> @@ -444,12 +444,12 @@
> >>       private MessageDigest fast_pool,  slow_pool;
> >>       private int fast_entropy,  slow_entropy;
> >>       private boolean fast_select;
> >> -     private Map<EntropySource, Integer> entropySeen;
> >> +     private Map<EntropySource, int[]> entropySeen;
> >>
> >>       private void accumulator_init(String digest) throws
> > NoSuchAlgorithmException {
> >>               fast_pool = MessageDigest.getInstance(digest);
> >>               slow_pool = MessageDigest.getInstance(digest);
> >> -             entropySeen = new HashMap<EntropySource, Integer>();
> >> +             entropySeen = new HashMap<EntropySource, int[]>();
> >>       }
> >>
> >>       @Override
> >> @@ -515,21 +515,21 @@
> >>                               slow_entropy += actualEntropy;
> >>
> >>                               if(source != null) {
> >> -                                     Integer contributedEntropy = 
entropySeen.get(source);
> >> -                                     if(contributedEntropy == null)
> >> -                                             contributedEntropy = 
Integer.valueOf(actualEntropy);
> >> -                                     else
> >> -                                             contributedEntropy = 
Integer.valueOf(actualEntropy +
> > contributedEntropy.intValue());
> >> -                                     entropySeen.put(source, 
contributedEntropy);
> >> +                                     int[] contributedEntropy = 
entropySeen.get(source);
> >> +                                     if(contributedEntropy == null) {
> >> +                                             contributedEntropy = new 
int[] { actualEntropy };
> >> +                                             entropySeen.put(source, 
contributedEntropy);
> >> +                                     } else
> >> +                                             contributedEntropy[0]++;
> >
> > Wrong.
> > contributedEntropy[0] += actualEntropy;
> > Please do not make mistakes in crypt/!
> > Otherwise it's a neat optimisation, although using a MutableInt would be
> > cleaner.
> 
> fixed in r26629.
> 
> (this is in the reseed from entropy source code path.)
> btw, the current code maybe reseeding too infrequent.
> 
> This is the current reseed logic:
>    (1) we have more then  (SLOW_THRESHOLD * 2) bits in slow_entropy
>  _AND_
>    (2) those entropy are from TWO DIFFERENT source, each contribute more 
then
>           THRESHOLD bits
> 
> However, we have ONLY TWO sources,
> the TWO DIFFERENT sources requirement is too hard to meet.

Yeah. And one of the sources (incoming packet hashes) always reports 0, as it 
may be observable/influencible. Ideas?

BTW, what are the two sources?

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to