1
1

keys: Remove obsolete signatue functions.

Этот коммит содержится в:
Andreas Schneider 2011-08-26 10:48:37 +02:00
родитель ab1a66ca7b
Коммит 696f574a56
3 изменённых файлов: 0 добавлений и 129 удалений

Просмотреть файл

@ -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_ */

Просмотреть файл

@ -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: */

Просмотреть файл

@ -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
****************************************************************************/