On 06/23/2014 03:04 AM, unixninja92 wrote:
> Hi all,
> 
> I've had a busy week. The Crypto API now has interfaces with working
> with all the most recently used algorithms as well as many of the old
> ones meeting my deadline of having the first version of the API done
> by 6/24. I have written classes for Signing, Hashing, Authenticated
> Symmetric Encryption, Key Exchange, and Message Authentication Codes.
> It supports all sigs, hashs, and macs. The key exchange supports both
> DH and ECDH and I working on adding JFK. For Symmetric Encryption it
> currently supports AEAD/OCB/AES/128 both with the new nonce length and
> the old one. I'm working on the other symmetric algs, but I'm not sure
> how helpful it would be to move all the old ones to this API.

I'm happy to hear things are going well! I don't know enough to have a
particularly informed opinion on whether moving old algorithms to the
API makes sense, but it may be reason enough that it provides
consistency in the location/entry points of crypto code.

> I'm not sure if I should make a class for RNGs. If people think this
> would be helpful I can do that.
> 
> The next step is to write unit-tests and documentation. I am also
> planning on submitting a patch for our OCB nonce length problem that
> will let us upgrade Bouncy Castle to 150, and soon 151 which was just
> had it's last beta released. I made a copy of the OCB class from BC149
> and put it in crypt. I added a boolean to the AEAD classes to decide
> which version of OCB to use.

While boolean flags do work, I don't think it scales well. Would it make
sense to have unversioned AEAD classes that give the latest, with the
option of explicitly requesting a version? Something like
AEADInputStream vs. AEADInputStream_v149. Older versions could be
deprecated and removed with time. Maybe an enum instead?

> So far for JFK integration I have support for creating and processing
> message1 and creating message 2.
> 
> The MAC class supports both HMAC and Poly1305. I fixed verification of
> both hashs and macs to use MessageDigest.isEqual instead of Arrays.*
> methods.

Good! I find it disturbing that it was using Arrays methods.

> I've decided that I'm not going to use static methods in the API. This
> will make it easier to upgrade algs in the future. Instead of having
> to rewrite a bunch of code that uses static methods, all that needs to
> change is the constructor.

That makes sense.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Devl mailing list
Devl@freenetproject.org
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to