4#define SHA1_K0 0x5a827999
5#define SHA1_K20 0x6ed9eba1
6#define SHA1_K40 0x8f1bbcdc
7#define SHA1_K60 0xca62c1d6
23uint32_t
rol32(uint32_t number, uint8_t bits) {
24 return ((number << bits) | (uint32_t)(number >> (32-bits)));
36 for (i=0; i<80; i++) {
42 t = (d ^ (b & (c ^ d))) +
SHA1_K0;
46 t = ((b & c) | (d & (b | c))) +
SHA1_K40;
110 for (i=0; i<5; i++) {
114 b|=(a<<8) & 0x00ff0000;
115 b|=(a>>8) & 0x0000ff00;
124#define HMAC_IPAD 0x36
125#define HMAC_OPAD 0x5c
127void initHmac(
const uint8_t* key, uint8_t keyLength) {
133 for (;keyLength--;)
write(*key++);
void writeArray(uint8_t *buffer, uint8_t size)
void initHmac(const uint8_t *key, uint8_t keyLength)
void addUncounted(uint8_t data)
uint8_t * resultHmac(void)
uint32_t rol32(uint32_t number, uint8_t bits)
uint8_t innerHash[HASH_LENGTH]
uint8_t keyBuffer[BLOCK_LENGTH]
uint32_t w[BLOCK_LENGTH/4]
uint32_t w[HASH_LENGTH/4]