aboutsummaryrefslogtreecommitdiff
path: root/src/libsec/port/md5pickle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsec/port/md5pickle.c')
-rw-r--r--src/libsec/port/md5pickle.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libsec/port/md5pickle.c b/src/libsec/port/md5pickle.c
index 5b353b5a..012489a2 100644
--- a/src/libsec/port/md5pickle.c
+++ b/src/libsec/port/md5pickle.c
@@ -7,11 +7,12 @@ md5pickle(MD5state *s)
char *p;
int m, n;
- m = 4*9+4*((s->blen+3)/3);
+ m = 17+4*9+4*((s->blen+3)/3);
p = malloc(m);
if(p == nil)
return p;
- n = sprint(p, "%8.8ux %8.8ux %8.8ux %8.8ux ",
+ n = sprint(p, "%16.16llux %8.8ux %8.8ux %8.8ux %8.8ux ",
+ s->len,
s->state[0], s->state[1], s->state[2],
s->state[3]);
enc64(p+n, m-n, s->buf, s->blen);
@@ -26,6 +27,7 @@ md5unpickle(char *p)
s = malloc(sizeof(*s));
if(s == nil)
return nil;
+ s->len = strtoull(p, &p, 16);
s->state[0] = strtoul(p, &p, 16);
s->state[1] = strtoul(p, &p, 16);
s->state[2] = strtoul(p, &p, 16);