ARMv8 SHA256 instructions implementation in C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Makefile
README.md
sha256-armv8-aarch32.S
sha256-armv8-aarch64.S
sha256.c

README.md

SHA-256

This is a very basic implementation of a SHA-256 hash according to the FIPS 180-4 standard in C. I did it for educational purposes, the code is not optimized at all, but (almost) corresponds line by line to the standard.

The algorithm to process a small block of data is quite simple and very well described in the standard. I found that correctly implementing the padding is much harder.

It does not have any dependencies (except for the C standard library of course) and can be compiled with make. When sha256sum is installed, a short test can be run with make test.

Usage:

./main <input file>