diff --git a/include/libssh/keys.h b/include/libssh/keys.h index 1fdc8af3..271b76a0 100644 --- a/include/libssh/keys.h +++ b/include/libssh/keys.h @@ -49,17 +49,6 @@ struct ssh_private_key_struct { #endif }; -typedef struct signature_struct { - int type; -#ifdef HAVE_LIBGCRYPT - gcry_sexp_t dsa_sign; - gcry_sexp_t rsa_sign; -#elif defined HAVE_LIBCRYPTO - DSA_SIG *dsa_sign; - ssh_string rsa_sign; -#endif -} SIGNATURE; - const char *ssh_type_to_char(int type); int ssh_type_from_name(const char *name); @@ -70,8 +59,5 @@ ssh_private_key privatekey_make_rsa(ssh_session session, ssh_buffer buffer, ssh_public_key publickey_make_dss(ssh_session session, ssh_buffer buffer); ssh_public_key publickey_make_rsa(ssh_session session, ssh_buffer buffer, int type); ssh_public_key publickey_from_string(ssh_session session, ssh_string pubkey_s); -ssh_string signature_to_string(SIGNATURE *sign); -SIGNATURE *signature_from_string(ssh_session session, ssh_string signature,ssh_public_key pubkey,int needed_type); -void signature_free(SIGNATURE *sign); #endif /* KEYS_H_ */ diff --git a/src/keys.c b/src/keys.c index e12fb399..92ddf788 100644 --- a/src/keys.c +++ b/src/keys.c @@ -264,37 +264,6 @@ error: return NULL; } -void signature_free(SIGNATURE *sign) { - if (sign == NULL) { - return; - } - - switch(sign->type) { - case SSH_KEYTYPE_DSS: -#ifdef HAVE_LIBGCRYPT - gcry_sexp_release(sign->dsa_sign); -#elif defined HAVE_LIBCRYPTO - DSA_SIG_free(sign->dsa_sign); -#endif - break; - case SSH_KEYTYPE_RSA: - case SSH_KEYTYPE_RSA1: -#ifdef HAVE_LIBGCRYPT - gcry_sexp_release(sign->rsa_sign); -#elif defined HAVE_LIBCRYPTO - SAFE_FREE(sign->rsa_sign); -#endif - break; - default: - /* FIXME Passing NULL segfaults */ -#if 0 - ssh_log(NULL, SSH_LOG_RARE, "Freeing a signature with no type!\n"); */ -#endif - break; - } - SAFE_FREE(sign); -} - /** @} */ /* vim: set ts=4 sw=4 et cindent: */ diff --git a/src/legacy.c b/src/legacy.c index c223fa31..4c52d981 100644 --- a/src/legacy.c +++ b/src/legacy.c @@ -536,90 +536,6 @@ ssh_string publickey_to_string(ssh_public_key pubkey) { return key_blob; } -ssh_string signature_to_string(SIGNATURE *sign) -{ - ssh_signature sig; - ssh_string sig_blob; - int rc; - - if (sign == NULL) { - return NULL; - } - - sig = ssh_signature_new(); - if (sig == NULL) { - return NULL; - } - - sig->type = sign->type; - sig->dsa_sig = sign->dsa_sign; - sig->rsa_sig = sign->rsa_sign; - - rc = ssh_pki_export_signature_blob(sig, &sig_blob); - sig->dsa_sig = NULL; - sig->rsa_sig = NULL; - ssh_signature_free(sig); - if (rc < 0) { - return NULL; - } - - return sig_blob; -} - -SIGNATURE *signature_from_string(ssh_session session, - ssh_string signature, - ssh_public_key pubkey, - int needed_type) -{ - SIGNATURE *sign; - ssh_signature sig; - ssh_key key; - int rc; - - if (session == NULL || signature == NULL || pubkey == NULL) { - return NULL; - } - - key = ssh_key_new(); - if (key == NULL) { - return NULL; - } - - key->type = pubkey->type; - key->type_c = pubkey->type_c; - key->flags = SSH_KEY_FLAG_PUBLIC; - key->dsa = pubkey->dsa_pub; - key->rsa = pubkey->rsa_pub; - - rc = ssh_pki_import_signature_blob(signature, key, &sig); - key->dsa = NULL; - key->rsa = NULL; - ssh_key_free(key); - if (rc < 0) { - return NULL; - } - - if ((enum ssh_keytypes_e)needed_type != sig->type) { - ssh_signature_free(sig); - return NULL; - } - - sign = malloc(sizeof(struct signature_struct)); - if (sign == NULL) { - ssh_signature_free(sig); - return NULL; - } - - sign->type = sig->type; - sign->dsa_sign = sig->dsa_sig; - sig->dsa_sig = NULL; - sign->rsa_sign = sig->rsa_sig; - sig->rsa_sig = NULL; - - ssh_signature_free(sig); - return sign; -} - /**************************************************************************** * SERVER SUPPORT ****************************************************************************/