On Wed, May 21, 2003 at 03:25:07AM +0100, Toad wrote:
> D'OH.
> 
> java.security.MessageDigest, not javax.crypto.Mac.

Okay, that IS compatible. And about 7MB/sec on my system against about
3MB/sec for our java code on the same system. I have implemented a
compatibility layer. Of course if we call digest(boolean, byte[], int)
with the boolean false, it blows up because java doesn't implement that.

We only use digest(false,...) in crypt/Util.java, line 461. What I need
to know is would it be possible to rewrite that section not to need that
functionality without changing its output?

> 
> Can somebody explain what the difference is between the two?
> 
> On Wed, May 21, 2003 at 02:45:58AM +0100, Toad wrote:
> > It would appear that javax.crypto is not compatible with our
> > implementation. We implement FIPS 180-1. Sun implements RFC 2104.
> > Experimentally, their implementation does not produce the expected
> > results in the code, whereas ours does. Standards are great, there are
> > so many to choose from :(
> > 
> > 
> > On Wed, May 21, 2003 at 01:39:27AM +0100, Toad wrote:
> > > It turns out that Sun JDK 1.4 implements SHA-1 natively.
> > > 
> > > Benchmarks on my local machine (XP 1700+):
> > > 
> > > Sun javax.crypto, default provider for HmacSHA1:
> > > 
> > > SHA update 100000 times for the same data block of size 4096 bytes:
> > > 54479ms [7518493bytes/second, 1ms/update]
> > > SHA update 1000 times for different data blocks of size 4096 bytes:
> > > 574ms [7135888bytes/second, 1ms/update]
> > > 
> > > freenet.crypt:
> > > 
> > > SHA update 100000 times for the same data block of size 4096 bytes:
> > > 144562ms [2833386bytes/second, 0ms/update] 
> > > SHA update 1000 times for different data blocks of size 4096 bytes:
> > > 1388ms [2951008bytes/second, 0ms/update]
> > > 
> > > Looking good, what remains:
> > > 
> > > * Implement a compatibility layer (should be trivial)
> > > * Run our SHA1 tests to verify that they interpret the standard the same
> > >   way as we do.
> > > 
> > > According to 
> > > http://194.236.28.174/freenetstuff/6037/8kQPH_10_minutes/getCurrentTreadCPUTime/
> > > 
> > > SHA1 makes up a significant fraction of our CPU usage. It is also the
> > > limiting factor in many user visible operations. I am not sure whether
> > > we can do the same thing for DLES... have a look at
> > > 
> > > http://java.sun.com/j2se/1.4.1/docs/guide/security/jce/JCERefGuide.html
> > > 
> > > 
> > 
> > 
> 
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20030521/b53c27bd/attachment.pgp>

Reply via email to