A small Clojure library for securely comparing strings or byte arrays
Clojure
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/crypto
test/crypto
.gitignore
README.md
project.clj

README.md

crypto-equality

A very small Clojure library for protecting against timing attacks when comparing strings or sequences of bytes.

This is useful for comparing user-supplied values against secrets held by the application, such as tokens or keys.

Installation

Add the following dependency to your project.clj file:

[crypto-equality "1.0.0"]

Usage

Require the crypto.equality namespace:

(require '[crypto.equality :as crypto])

Then use the eq? function to compare strings, byte arrays, or any ordered sequence of integers.

(crypto/eq? "foo" "foo") ;; => true
(crypto/eq? "foo" "bar") ;; => false

License

Copyright © 2014 James Reeves

Distributed under the Eclipse Public License, the same as Clojure.