Lines Matching refs:md
134 static void sha512_compress(struct hash_state * md, const unsigned char *buf)
141 S[i] = md->sha512.state[i];
168 md->sha512.state[i] = md->sha512.state[i] + S[i];
172 static void sha512_init(struct hash_state * md)
174 md->sha512.curlen = 0;
175 md->sha512.length = 0;
176 md->sha512.state[0] = CONST64(0x6a09e667f3bcc908);
177 md->sha512.state[1] = CONST64(0xbb67ae8584caa73b);
178 md->sha512.state[2] = CONST64(0x3c6ef372fe94f82b);
179 md->sha512.state[3] = CONST64(0xa54ff53a5f1d36f1);
180 md->sha512.state[4] = CONST64(0x510e527fade682d1);
181 md->sha512.state[5] = CONST64(0x9b05688c2b3e6c1f);
182 md->sha512.state[6] = CONST64(0x1f83d9abfb41bd6b);
183 md->sha512.state[7] = CONST64(0x5be0cd19137e2179);
186 static void sha512_done(struct hash_state * md, unsigned char *out)
191 md->sha512.length += md->sha512.curlen * CONST64(8);
194 md->sha512.buf[md->sha512.curlen++] = (unsigned char)0x80;
199 if (md->sha512.curlen > 112) {
200 while (md->sha512.curlen < 128) {
201 md->sha512.buf[md->sha512.curlen++] = (unsigned char)0;
203 sha512_compress(md, md->sha512.buf);
204 md->sha512.curlen = 0;
209 while (md->sha512.curlen < 120) {
210 md->sha512.buf[md->sha512.curlen++] = (unsigned char)0;
214 STORE64H(md->sha512.length, md->sha512.buf + 120);
215 sha512_compress(md, md->sha512.buf);
219 STORE64H(md->sha512.state[i], out+(8 * i));
225 static void sha512_process(struct hash_state * md,
232 if (md->sha512.curlen == 0 && inlen >= SHA512_BLOCKSIZE) {
233 sha512_compress(md, in);
234 md->sha512.length += SHA512_BLOCKSIZE * 8;
238 n = MIN(inlen, (SHA512_BLOCKSIZE - md->sha512.curlen));
239 memcpy(md->sha512.buf + md->sha512.curlen,
241 md->sha512.curlen += n;
244 if (md->sha512.curlen == SHA512_BLOCKSIZE) {
245 sha512_compress(md, md->sha512.buf);
246 md->sha512.length += SHA512_BLOCKSIZE * 8;
247 md->sha512.curlen = 0;
256 struct hash_state md;
258 sha512_init(&md);
259 sha512_process(&md, in, in_size);
260 sha512_done(&md, out);
305 struct hash_state md;