Skip to content

CampGareth/reco_sha256

 
 

Repository files navigation

SHA256 for ReconfigureIO

This is an implementation of the FIPS 180-4 SHA256 hashing algorithm written in Go and intended for use with ReconfigureIO tools. It uses the SMI protocol for memory communication.

vendor/crypto/sha256/sha256.go

  • A package that contains the functions necessary to implement a SHA256 hash generator. The main function is 'HashGen' which iterates over all the 512bit blocks of the input message which it reads from the msgChan channel and outputs a 256 hash (or digest) to the hashChan channel.

vendor/crypto/sha256/host/padsha256.go

  • A padding function design to be run on the host. It will pad the message according to FIPS 180-4 such that its length is and integer multiple of 512bits.

cmd/test-sha256/main.go

  • An example host code.

main.go

  • An example kernel code.

main_test.go

  • A go test file that was used to emulate the functionality of both host and kernel for initial prototyping and debugging.

Possible modifications

  • the main loop of 64 rounds in the 'HashGen' function could be unrolled partially or completely to improve performance at the cost of extra resources.

About

SHA256 for ReconfigureIO

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%