NidNmk.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #include <stdint.h>
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. typedef struct sha256
  6. {
  7. uint32_t count [2];
  8. uint32_t state [8];
  9. uint8_t block [64];
  10. uint8_t extra [64];
  11. }
  12. SHA256;
  13. #define SHA256_DIGEST_LENGTH 256/8
  14. #define HPAVKEY_NMK_LEN 16
  15. #define HPAVKEY_NID_LEN 7
  16. #define SHR(word,bits) ((word & 0xFFFFFFFF) >> bits)
  17. #define ROTR(word,bits) (SHR(word,bits) | (word << (32 - bits)))
  18. #define DEFAULT_LEVEL 0
  19. //--------------------------------------------------------------------------
  20. /* Functions -----------------------------------------------------------*/
  21. //--------------------------------------------------------------------------
  22. void HPAVKeyNMK (uint8_t NMK [], const char * string);
  23. void HPAVKeyNID (uint8_t NID [], const uint8_t NMK [], uint8_t level);
  24. void SHA256Reset (struct sha256 *sha256);
  25. void SHA256Block (struct sha256 *sha256, void const *memory);
  26. void SHA256Write (struct sha256 *sha256, void const *memory, uint16_t extent);
  27. void SHAEncode(uint8_t memory [], uint32_t number);
  28. void SHA256Fetch (struct sha256 *sha256, uint8_t digest []) ;