| 194 | */ |
| 195 | |
| 196 | static void |
| 197 | MD5Pad (MD5_CTX *context) |
| 198 | { |
| 199 | unsigned char bits[8]; |
| 200 | unsigned int index, padLen; |
| 201 | |
| 202 | /* Save number of bits */ |
| 203 | Encode (bits, context->count, 8); |
| 204 | |
| 205 | /* Pad out to 56 mod 64. */ |
| 206 | index = (unsigned int)((context->count[0] >> 3) & 0x3f); |
| 207 | padLen = (index < 56) ? (56 - index) : (120 - index); |
| 208 | MD5Update (context, PADDING, padLen); |
| 209 | |
| 210 | /* Append length (before padding) */ |
| 211 | MD5Update (context, bits, 8); |
| 212 | } |
| 213 | |
| 214 | /* |
| 215 | * MD5 finalization. Ends an MD5 message-digest operation, writing the |