30 #ifndef EMSHA_INTERNAL_H
31 #define EMSHA_INTERNAL_H
43 static inline uint32_t
44 rotr32(uint32_t x, uint8_t n)
46 return ((x >> n) | (x << (32 - n)));
50 static inline uint32_t
51 sha_ch(uint32_t x, uint32_t y, uint32_t z)
53 return ((x & y) ^ ((~x) & z));
57 static inline uint32_t
58 sha_maj(uint32_t x, uint32_t y, uint32_t z)
60 return (x & y) ^ (x & z) ^ (y & z);
64 static inline uint32_t
65 sha_Sigma0(uint32_t x)
67 return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
71 static inline uint32_t
72 sha_Sigma1(uint32_t x)
74 return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
78 static inline uint32_t
79 sha_sigma0(uint32_t x)
81 return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >> 3);
85 static inline uint32_t
86 sha_sigma1(uint32_t x)
88 return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >> 10);