以前勢い余ってSHA1の実装を書いたことがあって。 せっかくだから公開してみます。
SHA1とそのテスト、と、計測用サンプル、です。
とりあえずFIP180-1にあるtest caseは全部通ってます
BIG ENDIANな環境ではsrc/hash.h内の#define IS_LITTLE_ENDIANをコメントアウトして ください(ぅゎ
規格書見てべたべたと書いて、src/usr.bin/cksum のfunctionをC++風に arrangeしたものです(CTXをクラスに単純に置き換えただけのつもり) でもMD5とか書いてないのであんまり意味ないです
さすがにそのままだと遅いのでループの展開だけは(しぶしぶ)やりました