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 );