Pure Erlang alternative to crypto library
-----------------------------------------
Key: COUCHDB-625
URL: https://issues.apache.org/jira/browse/COUCHDB-625
Project: CouchDB
Issue Type: Improvement
Components: Infrastructure
Reporter: Jonathan D. Knezek
Priority: Minor
Attachments: ccrypto.erl
On some platforms (in my case a SheevaPlug running on armv5te) it may be
difficult or impossible to obtain a version of Erlang built with support for
the crypto standard library. I grepped the CouchDB source and have attempted
to reproduce the used crypto calls in pure Erlang.
I have reproduced the start/0, rand_uniform/2, rand_bytes/1, sha/1, and
sha_mac/2 functions, along with test_sha/1 and test_sha_mac/1 functions to
validate the pure Erlang results against the crypto library's results. The
public non-test functions attempt to first call into crypto if available, as it
is the preferred implementation.
As I'm not familiar with the build system, app system, etc. of Erlang I am only
attaching the library implementation. I'm sure more work would be required to
fully integrate it into CouchDB if accepted.
As far as licensing goes, SHA1 is defined in NIST FIPS 180-2
(http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf), and according
to the IETF, the patent covering the algorithm has been made royalty-free
(https://datatracker.ietf.org/ipr/858).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.