Skip to content

hanbu97/motoko-sha3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Motoko Sha3 and Keccak Library

Supporting:

  • Sha3
    • Sha3-224: SHA3.Sha3(224)
    • Sha3-256: SHA3.Sha3(256)
    • Sha3-384: SHA3.Sha3(384)
    • Sha3-512: SHA3.Sha3(512)
  • Keccak
    • Keccak-224: SHA3.Keccak(224)
    • Keccak-256: SHA3.Keccak(256)
    • Keccak-384: SHA3.Keccak(384)
    • Keccak-512: SHA3.Keccak(512)

Usage

  • Create hasher
var sha = SHA3.Sha3(224);
  • Digest data bytes
sha.update([104 : Nat8, 101, 108, 108, 111]);
  • finalize to a [Nat8] array
let result = sha.finalize();

Example

  • hash "hello world!" using keccak-512
var sha = SHA3.Keccak(512);
let hello = Blob.toArray(Text.encodeUtf8("hello"));
let space = Blob.toArray(Text.encodeUtf8(" "));
let world = Blob.toArray(Text.encodeUtf8("world!"));
sha.update(hello);
sha.update(space);
sha.update(world);
let result = sha.finalize();
let hex = Hex.encode(result);
Debug.print(hex);
// assert ("d50b81a30b0ee3b355ae0b5af973fa28518377822165c76b735404470aaf91553ef4a5cf43a3511f2fc0decfd14da1048e244ec1a94aac2fbde2ae87c2d95455" == hex);

Ref