Advertisement
Guest User

Untitled

a guest
Jul 27th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. #include "SHA1.h"
  2. #include "BigNumber.h"
  3. #include <cstring>
  4. #include <stdarg.h>
  5. #include <Log.h>
  6.  
  7. SHA1Hash::SHA1Hash()
  8. {
  9. SHA1_Init(&mC);
  10. memset(mDigest, 0, SHA_DIGEST_LENGTH * sizeof(uint8));
  11. }
  12.  
  13. SHA1Hash::~SHA1Hash()
  14. {
  15. SHA1_Init(&mC);
  16. }
  17.  
  18. void SHA1Hash::UpdateData(const uint8 *dta, int len)
  19. {
  20. SHA1_Update(&mC, dta, len);
  21. }
  22.  
  23. void SHA1Hash::UpdateData(const std::string &str)
  24. {
  25. UpdateData((uint8 const*)str.c_str(), str.length());
  26. }
  27.  
  28. void SHA1Hash::UpdateBigNumbers(BigNumber* bn0, ...)
  29. {
  30. va_list v;
  31. BigNumber* bn;
  32.  
  33. va_start(v, bn0);
  34. bn = bn0;
  35. while (bn)
  36. {
  37. UpdateData(bn->AsByteArray().get(), bn->GetNumBytes());
  38. bn = va_arg(v, BigNumber*);
  39. }
  40. va_end(v);
  41. }
  42.  
  43. void SHA1Hash::Initialize()
  44. {
  45. SHA1_Init(&mC);
  46. }
  47.  
  48. void SHA1Hash::Finalize(void)
  49. {
  50. SHA1_Final(mDigest, &mC);
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement