version 1.38, 2001/12/27 18:22:16 |
version 1.39, 2002/01/25 22:07:40 |
|
|
} |
} |
|
|
static u_char* |
static u_char* |
key_fingerprint_raw(Key *k, enum fp_type dgst_type, size_t *dgst_raw_length) |
key_fingerprint_raw(Key *k, enum fp_type dgst_type, u_int *dgst_raw_length) |
{ |
{ |
EVP_MD *md = NULL; |
EVP_MD *md = NULL; |
EVP_MD_CTX ctx; |
EVP_MD_CTX ctx; |
|
|
retval = xmalloc(EVP_MAX_MD_SIZE); |
retval = xmalloc(EVP_MAX_MD_SIZE); |
EVP_DigestInit(&ctx, md); |
EVP_DigestInit(&ctx, md); |
EVP_DigestUpdate(&ctx, blob, len); |
EVP_DigestUpdate(&ctx, blob, len); |
EVP_DigestFinal(&ctx, retval, NULL); |
EVP_DigestFinal(&ctx, retval, dgst_raw_length); |
*dgst_raw_length = md->md_size; |
|
memset(blob, 0, len); |
memset(blob, 0, len); |
xfree(blob); |
xfree(blob); |
} else { |
} else { |
|
|
} |
} |
|
|
static char* |
static char* |
key_fingerprint_hex(u_char* dgst_raw, size_t dgst_raw_len) |
key_fingerprint_hex(u_char* dgst_raw, u_int dgst_raw_len) |
{ |
{ |
char *retval; |
char *retval; |
int i; |
int i; |
|
|
} |
} |
|
|
static char* |
static char* |
key_fingerprint_bubblebabble(u_char* dgst_raw, size_t dgst_raw_len) |
key_fingerprint_bubblebabble(u_char* dgst_raw, u_int dgst_raw_len) |
{ |
{ |
char vowels[] = { 'a', 'e', 'i', 'o', 'u', 'y' }; |
char vowels[] = { 'a', 'e', 'i', 'o', 'u', 'y' }; |
char consonants[] = { 'b', 'c', 'd', 'f', 'g', 'h', 'k', 'l', 'm', |
char consonants[] = { 'b', 'c', 'd', 'f', 'g', 'h', 'k', 'l', 'm', |
|
|
{ |
{ |
char *retval = NULL; |
char *retval = NULL; |
u_char *dgst_raw; |
u_char *dgst_raw; |
size_t dgst_raw_len; |
u_int dgst_raw_len; |
|
|
dgst_raw = key_fingerprint_raw(k, dgst_type, &dgst_raw_len); |
dgst_raw = key_fingerprint_raw(k, dgst_type, &dgst_raw_len); |
if (!dgst_raw) |
if (!dgst_raw) |