/naclj

Clojure library that abstracts libsodium's NaCl primitives (curve25519, ed25519, blake2b, box/unbox, sign/verify, etc.)

Primary LanguageClojureEclipse Public License 1.0EPL-1.0

naclj

Clojure library that abstracts libsodium's NaCl primitives (curve25519, ed25519, blake2b, box/unbox, sign/verify, etc.)

Usage

Still under construction... please check back later...

Installation

Requires the C-library libsodium to be installed. On Mac the easiest way to install is probably through brew:

brew install libsodium

History

I was looking for a Clojure library to work with NaCl's primitives. First I found the Clojure library Caesium, which is layered on top of Kalium, which is a Java library layered on top of libsodium. Unfortunately, the development on Caesium seem to have stalled. Then I tried to enhance Caesium, but the underlying Kalium forces you too much in a non-functional, Java-like programming style. Got distracted by the TweetNacl effort in Java - would like to focus on that again once this naclj is stable. Lastly, I used the foreign function interface jnr-ffi definitions from Kalium directly, and started to extend the interfaces defined for libsodium. The end result doesn't use anything from Caesium and Kalium anymore, except for a single java-file that defines the jnr-ffi "glue" between naclj's Clojure and libsodium's C-library.

References

License

Copyright © 2015 Frank Siebenlist.

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.