Created
April 14, 2012 07:00
-
-
Save jhickner/2382543 to your computer and use it in GitHub Desktop.
hmac
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (ns oauth.digest | |
| (:import (javax.crypto Mac) | |
| (javax.crypto.spec SecretKeySpec))) | |
| (defn hmac | |
| "Calculate HMAC signature for given data." | |
| [^String key ^String data] | |
| (let [hmac-sha1 "HmacSHA1" | |
| signing-key (SecretKeySpec. (.getBytes key) hmac-sha1) | |
| mac (doto (Mac/getInstance hmac-sha1) (.init signing-key))] | |
| (String. (org.apache.commons.codec.binary.Base64/encodeBase64 | |
| (.doFinal mac (.getBytes data))) | |
| "UTF-8"))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (defn hmac-sha-256 | |
| [key-seq byte-seq] | |
| (let [hmac-key (SecretKeySpec. (byte-array key-seq) "HmacSHA256") | |
| hmac (doto (Mac/getInstance "HmacSHA256") (.init hmac-key))] | |
| (.doFinal hmac (byte-array byte-seq)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
if someone will need a PHP-like version – take this
Different algo and will output hex, instead of UTF-8 formatted string