diff --git a/src/pki_gcrypt.c b/src/pki_gcrypt.c index 16e4833e..f7f9e355 100644 --- a/src/pki_gcrypt.c +++ b/src/pki_gcrypt.c @@ -1164,6 +1164,15 @@ ssh_string pki_publickey_to_blob(const ssh_key key) return NULL; } + if (key->cert != NULL) { + rc = ssh_buffer_add_buffer(buffer, key->cert); + if (rc < 0) { + ssh_buffer_free(buffer); + return NULL; + } + goto makestring; + } + type_s = ssh_string_from_char(key->type_c); if (type_s == NULL) { ssh_buffer_free(buffer); @@ -1300,6 +1309,7 @@ ssh_string pki_publickey_to_blob(const ssh_key key) goto fail; } +makestring: str = ssh_string_new(ssh_buffer_get_len(buffer)); if (str == NULL) { goto fail;