Overview
- Status: Open
 - Project Type: Traditional: One applicant is selected to work on the task.
 - Time Commitment: Days
 - Experience Level: Intermediate
 - Size: USD 2'000 in ICP (at time of distribution)
 
Description
Since the Internet Computer allows canisters to sign Ethereum transactions, there's a need to hash those transactions. This is currently not directly possible in canisters written in Motoko. and a workaround like calling the EVM utility canister has to be used.
In this bounty, you will implement two cryptographic hashing algorithms in Motoko. Keccak-256 is the hashing algorithm used for signing Ethereum transactions. It is similar to the standardized SHA-3 but uses a different padding. Hence, it makes sense to include both variations, although the official SHA-3 is not used in Ethereum.
Acceptance Criteria
- Implementation with tests
 - Meaningful readme with usage example
 - Open Source license (e.g. MIT)
 - Available in the mops package manager
 
How to apply?
- Include links to previous relevant work.
 - Include a brief overview of how you will complete the task.
 - Give an estimated timeline for completing the task.
 - Post your application text in this thread
 
References
SHA-3 and Keccak implementations
- https://github.com/ethereum/eth-hash
 - https://github.com/RustCrypto/hashes/tree/master/sha3
 
Examples of cryptographic hashing libraries in Motoko
- https://github.com/timohanke/motoko-sha2
 - https://github.com/aviate-labs/crypto.mo
 - https://github.com/tgalal/motoko-bitcoin
 
