java version + signatures (Fwd: I2P implementation questions)

<auto97841-revL73yDgGBWk0Htik3J/[email protected]> Thu, 31 Jul 2003 17:50:54 -0700
Newsgroups gmane.comp.security.invisiblenet.iip.devel
Message-ID <[email protected]>
from a private email I recieved:

[mention that some of the Java code won't compile]

Ooops.  Thecrypto and I have been developing using Java 1.4.x.
We've switched down to 1.3 and as soon as the CVS server is up the
1.3 support will be committed.  This is important so that JVMs such
as Kaffe, GJC, and the like have a chance of compiling the client API.
I'm not 100% dead set on always doing everything Kaffe friendly, but
the client API should be pretty universal (though I'm not crazy enough
to jump back to 1.1.6 support).

[a questions about the hashes and what they're calculated against]

The only place the SHA256 hash is used is in the Payload data structure.
- It is calculated against the encryption key (for authentication)
- It is calculated against the payload (for verification)

For the first of those, the SHA256 is calculated exactly and only against
the bytes of the encryption key (SessionKey.getData()).  For the second,

the SHA256 is calculated against the unpadded, unencrypted message body

(the body being the actual content intended on being sent - "Hello World"
type stuff, not that packed with some various headers and trailing fields).
 

There is also a new place its used in the Payload structure, based on
some crypto discussions that occured on #iip-dev today related to the
AES IV (aka wrt the message hezekiah posted up earlier).  

Hezekiah, were you going to post up the summary and commit the changes
or
am I?

> 3. In data/i2cp/SessionConfig.java, what is supposed to be signed in
the signSessionConfig method?

The signSessionConfig, and the rest of the signing functions, runs against
the bytes of the structure up until the signature.  e.g. for SessionConfig,

the signature algorithm runs against the bytes from the destination structure,

followed by a 1 byte integer specifying the number of lease revocations,

followed by each of the actual lease revocations,
and finally followed by the mapping structure.

Is there some way I could make this more clear in the specs?

The java code will reflect this as soon as I can commit to our CVS server
;)

> 4. Note: you are misspelling "receive" as "recieve". No offense meant,
 just a note.

fucking hell.  my bad.  I made that mistake all over the place, from
the specs to the code.  As tempting as it is to stick with it, I'll go
ahead and fix it momentarily :)

gracias,
-jrandom



Concerned about your privacy? Follow this link to get
FREE encrypted email: https://www.hushmail.com/?l=2

Free, ultra-private instant messaging with Hush Messenger
https://www.hushmail.com/services.php?subloc=messenger&l=434

Promote security and make money with the Hushmail Affiliate Program: 
https://www.hushmail.com/about.php?subloc=affiliate&l=427