mirror of
https://github.com/deltachat/deltachat-core.git
synced 2025-10-05 19:42:04 +02:00
split binary-fingerprint-to-hex from get-fingerprint-function
This commit is contained in:
parent
53e3bbd6ee
commit
bbf329f9ba
2 changed files with 20 additions and 9 deletions
27
src/mrkey.c
27
src/mrkey.c
|
@ -475,12 +475,29 @@ char* mr_normalize_fingerprint(const char* in)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
char* mr_binary_fingerprint_to_uc_hex(const uint8_t* fingerprint_buf, size_t fingerprint_bytes)
|
||||||
|
{
|
||||||
|
char* fingerprint_hex = NULL;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if( (fingerprint_hex=calloc(1, fingerprint_bytes*2+1))==NULL ) {
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( i = 0; i < fingerprint_bytes; i++ ) {
|
||||||
|
snprintf(&fingerprint_hex[i*2], 3, "%02X", (int)fingerprint_buf[i]); /* 'X' instead of 'x' ensures the fingerprint is uppercase which is needed as we do not search case-insensitive, see comment in mrsqlite3.c */
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
return fingerprint_hex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
char* mrkey_get_fingerprint(const mrkey_t* key)
|
char* mrkey_get_fingerprint(const mrkey_t* key)
|
||||||
{
|
{
|
||||||
uint8_t* fingerprint_buf = NULL;
|
uint8_t* fingerprint_buf = NULL;
|
||||||
size_t fingerprint_bytes = 0;
|
size_t fingerprint_bytes = 0;
|
||||||
char* fingerprint_hex = NULL;
|
char* fingerprint_hex = NULL;
|
||||||
int i;
|
|
||||||
|
|
||||||
if( key == NULL ) {
|
if( key == NULL ) {
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -490,13 +507,7 @@ char* mrkey_get_fingerprint(const mrkey_t* key)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (fingerprint_hex=calloc(1, fingerprint_bytes*2+1))==NULL ) {
|
fingerprint_hex = mr_binary_fingerprint_to_uc_hex(fingerprint_buf, fingerprint_bytes);
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
for( i = 0; i < fingerprint_bytes; i++ ) {
|
|
||||||
snprintf(&fingerprint_hex[i*2], 3, "%02X", (int)fingerprint_buf[i]); /* 'X' instead of 'x' ensures the fingerprint is uppercase which is needed as we do not search case-insensitive, see comment in mrsqlite3.c */
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
free(fingerprint_buf);
|
free(fingerprint_buf);
|
||||||
|
|
|
@ -76,7 +76,7 @@ char* mrkey_get_fingerprint (const mrkey_t*);
|
||||||
char* mrkey_get_formatted_fingerprint(const mrkey_t*);
|
char* mrkey_get_formatted_fingerprint(const mrkey_t*);
|
||||||
|
|
||||||
void mr_wipe_secret_mem(void* buf, size_t buf_bytes);
|
void mr_wipe_secret_mem(void* buf, size_t buf_bytes);
|
||||||
|
char* mr_binary_fingerprint_to_uc_hex(const uint8_t* fingerprint_buf, size_t fingerprint_bytes);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* /extern "C" */
|
} /* /extern "C" */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue