void mailbox_name_get_sha128(const char *name, guid_128_t guid_128_r) { unsigned char sha[SHA1_RESULTLEN]; sha1_get_digest(name, strlen(name), sha); memcpy(guid_128_r, sha, I_MIN(GUID_128_SIZE, sizeof(sha))); }
void mail_generate_guid_128_hash(const char *guid, uint8_t guid_128[MAIL_GUID_128_SIZE]) { unsigned char sha1_sum[SHA1_RESULTLEN]; sha1_get_digest(guid, strlen(guid), sha1_sum); memcpy(guid_128, sha1_sum, MAIL_GUID_128_SIZE); }
void mail_generate_guid_128_hash(const char *guid, guid_128_t guid_128_r) { unsigned char sha1_sum[SHA1_RESULTLEN]; buffer_t buf; if (guid_128_from_string(guid, guid_128_r) < 0) { /* not 128bit hex. use a hash of it instead. */ buffer_create_from_data(&buf, guid_128_r, GUID_128_SIZE); buffer_set_used_size(&buf, 0); sha1_get_digest(guid, strlen(guid), sha1_sum); #if SHA1_RESULTLEN < GUID_128_SIZE # error not possible #endif buffer_append(&buf, sha1_sum + SHA1_RESULTLEN - GUID_128_SIZE, GUID_128_SIZE); } }