1f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com/* public api for steve reid's public domain SHA-1 implementation */ 2f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com/* this file is in the public domain */ 3f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com 4f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com#pragma once 5f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com 6f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com#include "Platform.h" 7f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com 8f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.comstruct SHA1_CTX 9f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com{ 10f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com uint32_t state[5]; 11f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com uint32_t count[2]; 12f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com uint8_t buffer[64]; 13f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com}; 14f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com 15f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com#define SHA1_DIGEST_SIZE 20 16f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com 17f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.comvoid SHA1_Init(SHA1_CTX* context); 18f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.comvoid SHA1_Update(SHA1_CTX* context, const uint8_t* data, const size_t len); 19f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.comvoid SHA1_Final(SHA1_CTX* context, uint8_t digest[SHA1_DIGEST_SIZE]); 20f3b789787b93945c974e2cc517b7dc352b28354etanjent@gmail.com 21ad4b363201477cb33966510b850c2193b1f825fetanjent@gmail.comvoid sha1_32a ( const void * key, int len, uint32_t seed, void * out );