18 unsigned char result[64];
27 sat_chksum_create(Id type)
30 h = sat_calloc(1, sizeof(*h));
34 case REPOKEY_TYPE_MD5:
35 sat_MD5_Init(&h->c.md5);
37 case REPOKEY_TYPE_SHA1:
38 sat_SHA1_Init(&h->c.sha1);
40 case REPOKEY_TYPE_SHA256:
41 sat_SHA256_Init(&h->c.sha256);
51 sat_chksum_create_from_bin(Id type, const unsigned char *buf)
54 int l = sat_chksum_len(type);
55 if (buf == 0 || l == 0)
57 h = sat_calloc(1, sizeof(*h));
60 memcpy(h->result, buf, l);
65 sat_chksum_add(void *handle, const void *data, int len)
67 struct ctxhandle *h = handle;
72 case REPOKEY_TYPE_MD5:
73 sat_MD5_Update(&h->c.md5, (void *)data, len);
75 case REPOKEY_TYPE_SHA1:
76 sat_SHA1_Update(&h->c.sha1, data, len);
78 case REPOKEY_TYPE_SHA256:
79 sat_SHA256_Update(&h->c.sha256, data, len);
87 sat_chksum_get(void *handle, int *lenp)
89 struct ctxhandle *h = handle;
93 *lenp = sat_chksum_len(h->type);
98 case REPOKEY_TYPE_MD5:
99 sat_MD5_Final(h->result, &h->c.md5);
104 case REPOKEY_TYPE_SHA1:
105 sat_SHA1_Final(&h->c.sha1, h->result);
110 case REPOKEY_TYPE_SHA256:
111 sat_SHA256_Final(h->result, &h->c.sha256);
124 sat_chksum_get_type(void *handle)
126 struct ctxhandle *h = handle;
131 sat_chksum_free(void *handle, unsigned char *cp)
135 const unsigned char *res;
137 res = sat_chksum_get(handle, &l);