Advertisement
Guest User

Untitled

a guest
Jul 27th, 2014
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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