mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-08-08 19:02:06 +03:00
keys: Remove obsolete signatue functions.
This commit is contained in:
@@ -49,17 +49,6 @@ struct ssh_private_key_struct {
|
|||||||
#endif
|
#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);
|
const char *ssh_type_to_char(int type);
|
||||||
int ssh_type_from_name(const char *name);
|
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_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_make_rsa(ssh_session session, ssh_buffer buffer, int type);
|
||||||
ssh_public_key publickey_from_string(ssh_session session, ssh_string pubkey_s);
|
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_ */
|
#endif /* KEYS_H_ */
|
||||||
|
31
src/keys.c
31
src/keys.c
@@ -264,37 +264,6 @@ error:
|
|||||||
return NULL;
|
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: */
|
/* vim: set ts=4 sw=4 et cindent: */
|
||||||
|
84
src/legacy.c
84
src/legacy.c
@@ -536,90 +536,6 @@ ssh_string publickey_to_string(ssh_public_key pubkey) {
|
|||||||
return key_blob;
|
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
|
* SERVER SUPPORT
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
Reference in New Issue
Block a user