This is a fork. There is no spoon. The original is here. Updated to work with Swift 4.2 and 5.
This is an implementation of Keccak 256 the hash function used in Ethereum as well as the final version of the Sha3 as published by NIST.
It is a wrapper around an older version of the keccak-tiny library.
Important Ethereum uses the original version of Sha3 which we use here as it's original name "keccak". The final published version of Sha3 had a few minor changes to it, but produce as you would expect different results. In this library we refer to that as "sha3Final".
Add the following to your Cartfile
github "uport-project/SwiftKeccak"
You can use the keccak256()
function with both Data
and String
inputs.
import SwiftKeccak
let hash: Data = keccak256("hello")
You can also use the sha3Final256()
function with both Data
and String
inputs for the final version of sha3 (see explanation above).
import SwiftKeccak
let hash: Data = sha3Final256("hello")
We also include a handy extension for both Data
and String
allowing you to call keccak()
and sha3final()
on them.
import SwiftKeccak
let hash: Data = "hello".keccak()
let hash: Data = "hello".sha3Final()