spa
Version:
Single-page applications builder with continuous integration, granular updates and loader.
23 lines (19 loc) • 749 B
text/coffeescript
(HASH) ->
return (data) ->
if data instanceof String or typeof data is "string"
wa = CryptoJS.enc.Utf8.parse(data)
else
words = []
if data instanceof ArrayBuffer
array = new Uint8Array(data)
else if data instanceof Buffer
array = data
else
throw Error("invalid input type")
len = array.length
for i in [0..len-1]
words[i >>> 2] |= (array[i] & 0xff) << (24 - (i % 4) * 8)
wa = CryptoJS.lib.WordArray.create(words, len)
hash = CryptoJS.algo[HASH].create()
hash.update(wa)
return hash.finalize().toString(CryptoJS.enc.Hex)