Hi folks,

sounds good to me 

* it would be appreciated to have no additional dependencies, e.g. BC library 
mismatch can be painful
* one point to keep in mind is https://www.apache.org/dev/crypto.html 
<https://www.apache.org/dev/crypto.html>
* I wrote some crypto-related code over the years so I won’t be a big help but 
I’m interested in the project
* I fully agree with the documentation aspect - crypto is somehow 
self-defending :-)

Cheers,

Siegfried Goeschl

> On 02 Apr 2015, at 23:34, Phil Steitz <phil.ste...@gmail.com> wrote:
> 
> On 4/2/15 1:47 PM, Duncan Jones wrote:
>> On 18 March 2015 at 15:47, Phil Steitz <phil.ste...@gmail.com> wrote:
>>> On 3/18/15 5:57 AM, Duncan Jones wrote:
>>>> Hi everyone,
>>>> 
>>>> I would like to begin work on a new sandbox component, Commons Crypto,
>>>> that makes it easier for developers to use crypto from the standard
>>>> Java libraries. The component would have two goals: 1) To make it
>>>> harder for users to make typical crypto errors, 2) To make it easier
>>>> to perform common crypto tasks. Some select examples are below:
>>>> 
>>>> Typical errors to avoid:
>>>> - Weak conversion of passwords to keys.
>>>> - Specifying algorithms that rely on system defaults.
>>>> - Bad conversions of ciphertext to strings.
>>>> - Encryption/decryption of strings without charsets.
>>>> 
>>>> Common tasks that could be easier:
>>>> - Specifying typical algorithms without figuring out 
>>>> "AES/CBC/PKCS5Padding".
>>>> - Working with X.509 certificates
>>>> - Generating keys (particularly using password derivation).
>>>> 
>>>> The scope of this library would be limited to the most commonly used
>>>> algorithms, key sizes, etc. The goal is to satisfy 80-90% of potential
>>>> use cases with a really well documented, compact library. Given that
>>>> crypto is confusing to many, documentation will be exceptionally
>>>> verbose.
>>>> 
>>>> Two existing open-source libraries might spring to mind when
>>>> considering this proposal: BouncyCastle [1] is a well-known crypto
>>>> library with a Java implementation. However, this has different goals,
>>>> namely to implement actual crypto algorithms. Commons Crypto, by
>>>> contrast, is focussed on working with existing JDK implementations.
>>>> JASYPT [2] is another library aimed at simplifying use of encryption,
>>>> yet in my mind it goes too far, focussing only on password-based
>>>> encryption, with limited control over how that's carried out.
>>>> 
>>>> If no-one objects, I'll begin work on this component, asking the Infra
>>>> team to create a new Git repository. Before committing any code, I'll
>>>> follow the instructions at [3] to ensure this project is compliant
>>>> with US Export Control Laws.
>>>> 
>>>> Comments, thoughts and objections very welcome.
>>>> 
>>>> Kind regards,
>>>> 
>>>> Duncan
>>>> 
>>>> 
>>>> [1] https://www.bouncycastle.org/java.html
>>>> [2] http://www.jasypt.org/
>>>> [3] http://www.apache.org/dev/crypto.html
>>> +1 to the idea.  Fits nicely into Commons, IMO.  Also have a look
>>> and maybe see if collaboration might be possible with Apache Shiro,
>>> which has a nice embedded, separately packaged crypto lib with sort
>>> of the same flavor as what you are describing (though probably more
>>> low-level).  And have a look at the already existing, but more
>>> limited scope (and really just BC wrapper) OpenPGP already in the
>>> sandbox.
>> Thanks for pointing out Apache Shiro - this seems quite interesting;
>> not sure how I missed it. They are certainly aiming to achieve similar
>> goals with their Cryptography component [1].
>> 
>> Perhaps it might be better for me to contribute to that project
>> instead. I need to get stuck into their API a little more deeply to
>> see what's available versus my concept for Commons Crypto.
>> 
>> Sorry for long delay in response, my mail filters are too aggressive
>> and I thought nobody had responded!
>> 
>> Duncan
>> 
>> [1] http://shiro.apache.org/cryptography-features.html
> 
> Of course you - and they - are welcome to carve the Shiro crypto lib
> out and move it here.  That's how some of our current components
> were born.
> 
> Phil
>> 
>>> Phil
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>> 
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>> 
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 

Reply via email to