Lines Matching refs:md

81 static int sha256_compress(struct sha256_state *md, unsigned char *buf)
89 S[i] = md->state[i];
117 md->state[i] = md->state[i] + S[i];
124 void sha256_init(struct sha256_state *md)
126 md->curlen = 0;
127 md->length = 0;
128 md->state[0] = 0x6A09E667UL;
129 md->state[1] = 0xBB67AE85UL;
130 md->state[2] = 0x3C6EF372UL;
131 md->state[3] = 0xA54FF53AUL;
132 md->state[4] = 0x510E527FUL;
133 md->state[5] = 0x9B05688CUL;
134 md->state[6] = 0x1F83D9ABUL;
135 md->state[7] = 0x5BE0CD19UL;
140 @param md The hash state
145 int sha256_process(struct sha256_state *md, const unsigned char *in,
150 if (md->curlen >= sizeof(md->buf))
154 if (md->curlen == 0 && inlen >= SHA256_BLOCK_SIZE) {
155 if (sha256_compress(md, (unsigned char *) in) < 0)
157 md->length += SHA256_BLOCK_SIZE * 8;
161 n = MIN(inlen, (SHA256_BLOCK_SIZE - md->curlen));
162 os_memcpy(md->buf + md->curlen, in, n);
163 md->curlen += n;
166 if (md->curlen == SHA256_BLOCK_SIZE) {
167 if (sha256_compress(md, md->buf) < 0)
169 md->length += 8 * SHA256_BLOCK_SIZE;
170 md->curlen = 0;
181 @param md The hash state
185 int sha256_done(struct sha256_state *md, unsigned char *out)
189 if (md->curlen >= sizeof(md->buf))
193 md->length += md->curlen * 8;
196 md->buf[md->curlen++] = (unsigned char) 0x80;
202 if (md->curlen > 56) {
203 while (md->curlen < SHA256_BLOCK_SIZE) {
204 md->buf[md->curlen++] = (unsigned char) 0;
206 sha256_compress(md, md->buf);
207 md->curlen = 0;
211 while (md->curlen < 56) {
212 md->buf[md->curlen++] = (unsigned char) 0;
216 WPA_PUT_BE64(md->buf + 56, md->length);
217 sha256_compress(md, md->buf);
221 WPA_PUT_BE32(out + (4 * i), md->state[i]);