diff --git a/src/pki_crypto.c b/src/pki_crypto.c
index 147b2035..3e53a3cc 100644
--- a/src/pki_crypto.c
+++ b/src/pki_crypto.c
@@ -523,7 +523,7 @@ static ssh_string _RSA_do_sign(const unsigned char *payload,
 ssh_string pki_signature_to_blob(const ssh_signature sig)
 {
     char buffer[40] = {0};
-    ssh_string sig_blob;
+    ssh_string sig_blob = NULL;
     ssh_string r;
     ssh_string s;
 
@@ -560,7 +560,8 @@ ssh_string pki_signature_to_blob(const ssh_signature sig)
             sig_blob = string_copy(sig->rsa_sig);
         case SSH_KEYTYPE_ECDSA:
         case SSH_KEYTYPE_UNKNOWN:
-            break;
+            ssh_pki_log("Unknown signature key type: %d", sig->type);
+            return NULL;
     }
 
     return sig_blob;
diff --git a/src/pki_gcrypt.c b/src/pki_gcrypt.c
index c7402eeb..1bcfae2c 100644
--- a/src/pki_gcrypt.c
+++ b/src/pki_gcrypt.c
@@ -1173,7 +1173,7 @@ ssh_string pki_signature_to_blob(const ssh_signature sig)
     const char *s = NULL;
     gcry_sexp_t sexp;
     size_t size = 0;
-    ssh_string sig_blob;
+    ssh_string sig_blob = NULL;
 
     switch(sig->type) {
         case SSH_KEYTYPE_DSS:
@@ -1224,6 +1224,8 @@ ssh_string pki_signature_to_blob(const ssh_signature sig)
             break;
         case SSH_KEYTYPE_ECDSA:
         case SSH_KEYTYPE_UNKNOWN:
+            ssh_pki_log("Unknown signature key type: %d", sig->type);
+            return NULL;
             break;
     }