#ifndef __SHA1_H__
#define __SHA1_H__

unsigned char *doSHA1_buf(const unsigned char *buf, int len);
unsigned char *doSHA1_file(const char *filename);

typedef struct {
  unsigned long state[5];
  unsigned long count[2];
  unsigned char buffer[64];
} SHA1_CTX;

class SHA1
{
public:
  SHA1();
  void addChar(unsigned char c);
  void finalize();
  unsigned char operator[](int n);

private:
  unsigned char digest[20];
  SHA1_CTX context;
};

#endif

