sha1.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef HV_SHA1_H_
  2. #define HV_SHA1_H_
  3. /*
  4. SHA-1 in C
  5. By Steve Reid <steve@edmweb.com>
  6. 100% Public Domain
  7. */
  8. /* for uint32_t */
  9. #include <stdint.h>
  10. #include "hexport.h"
  11. typedef struct {
  12. uint32_t state[5];
  13. uint32_t count[2];
  14. unsigned char buffer[64];
  15. } HV_SHA1_CTX;
  16. BEGIN_EXTERN_C
  17. HV_EXPORT void HV_SHA1Transform(
  18. uint32_t state[5],
  19. const unsigned char buffer[64]
  20. );
  21. HV_EXPORT void HV_SHA1Init(
  22. HV_SHA1_CTX * context
  23. );
  24. HV_EXPORT void HV_SHA1Update(
  25. HV_SHA1_CTX * context,
  26. const unsigned char *data,
  27. uint32_t len
  28. );
  29. HV_EXPORT void HV_SHA1Final(
  30. unsigned char digest[20],
  31. HV_SHA1_CTX * context
  32. );
  33. HV_EXPORT void HV_SHA1(
  34. char *hash_out,
  35. const char *str,
  36. uint32_t len);
  37. HV_EXPORT void hv_sha1(unsigned char* input, uint32_t inputlen, unsigned char digest[20]);
  38. // NOTE: if outputlen > 40: output[40] = '\0'
  39. HV_EXPORT void hv_sha1_hex(unsigned char* input, uint32_t inputlen, char* output, uint32_t outputlen);
  40. END_EXTERN_C
  41. #endif // HV_SHA1_H_