All Projects → mimoo → Gokangarootwelve

mimoo / Gokangarootwelve

Implementation of KangarooTwelve in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Gokangarootwelve

Cape
String encryption for Arduino, limited microcontrollers and other embedded systems.
Stars: ✭ 58 (-35.56%)
Mutual labels:  hash
Flexiblelogin
A Sponge minecraft server plugin for second factor authentication
Stars: ✭ 73 (-18.89%)
Mutual labels:  sponge
Beamsplitter
💎 Beamsplitter - A new (possibly universal) hash that passes SMHasher. Built mainly with a random 10x64 S-box. Also in NodeJS
Stars: ✭ 83 (-7.78%)
Mutual labels:  hash
Spongeforge
A Forge mod that implements SpongeAPI
Stars: ✭ 1,106 (+1128.89%)
Mutual labels:  sponge
Digestif
Simple hash algorithms in OCaml
Stars: ✭ 69 (-23.33%)
Mutual labels:  hash
Griefprevention
GriefDefender has replaced GP. See github link for latest information.
Stars: ✭ 76 (-15.56%)
Mutual labels:  sponge
Cryptonight
➿ Pure Go/ASM implementation of CryptoNight hash function with its variants, without any CGO binding.
Stars: ✭ 58 (-35.56%)
Mutual labels:  hash
Lexicon
A data package containing lexicons and dictionaries for text analysis
Stars: ✭ 87 (-3.33%)
Mutual labels:  hash
Active enumerable
ActiveRecord like query methods for Ruby enumerable collections.
Stars: ✭ 73 (-18.89%)
Mutual labels:  hash
Birdseed
🐦 🎲 Use Twitter's Search API to get random numbers
Stars: ✭ 81 (-10%)
Mutual labels:  hash
Ore
Repository software for Sponge plugins and Forge mods
Stars: ✭ 63 (-30%)
Mutual labels:  sponge
Bughunt
A weekly challenge where we share some code and you find a bug in it.
Stars: ✭ 68 (-24.44%)
Mutual labels:  hash
Signature Base
Signature base for my scanner tools
Stars: ✭ 1,212 (+1246.67%)
Mutual labels:  hash
Luckperms
A permissions plugin for Minecraft servers.
Stars: ✭ 1,100 (+1122.22%)
Mutual labels:  sponge
Pluck all
A more efficient way to get data from database. Like #pluck method but return array of hashes instead.
Stars: ✭ 83 (-7.78%)
Mutual labels:  hash
Symbolized
Hash with indifferent access, with keys stored internally as symbols.
Stars: ✭ 58 (-35.56%)
Mutual labels:  hash
Meow hash
Official version of the Meow hash, an extremely fast level 3 hash
Stars: ✭ 1,204 (+1237.78%)
Mutual labels:  hash
Banmanager
Minecraft Java Plugin
Stars: ✭ 89 (-1.11%)
Mutual labels:  sponge
Dash
Scalable Hashing on Persistent Memory
Stars: ✭ 86 (-4.44%)
Mutual labels:  hash
Pictogrify
🎭 Generate unique pictograms from any text
Stars: ✭ 80 (-11.11%)
Mutual labels:  hash

Kangaroo Twelve Implementation in Go

This is an implementation of KangarooTwelve in Go.

It is heavily based on the official Go's x/crypto/sha3 library. But because of minor implementation details the relevant files have been copied and modified here so you do not need Go's SHA-3 implementation to run this package. Hopefully one day Go's SHA-3 library will be more flexible to allow other keccak construction to rely on it.

I have tested this implementation with different test vectors and it works fine. Note that it has not received proper peer review. If you look at the code and find issues (or not) please let me know!

See here why you should use KangarooTwelve instead of SHA-3. But see here first why you should still not skip SHA-3.

Installation

go get github.com/mimoo/GoKangarooTwelve/K12

Usage

package main

import(
    "fmt"
    "github.com/mimoo/GoKangarooTwelve/K12"
    "encoding/hex"
)

func main(){
    // custom string allows you to customize your hash function 🙃
    customString = []byte("davidwong.fr")
    hash := K12.NewK12(customString)

	// we absorb the payload
    payload := []byte("salut!")
    hash.Write(payload)

	// we squeeze a 32 output
    out := make([]byte, 32)
    hash.Read(out)

    fmt.Println(hex.EncodeToString(out))

    // or simpler with K12Sum()
    K12Sum(customString, payload, out)

    fmt.Println(hex.EncodeToString(out))
}

Other Keccak-based things

I've implemented a few other constructions that might be helpful:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].