mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-09 09:54:25 +09:00
Improve key free functions.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@386 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
@@ -152,29 +152,31 @@ PUBLIC_KEY *publickey_make_rsa(SSH_SESSION *session, BUFFER *buffer, char *type)
|
|||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
|
||||||
void publickey_free(PUBLIC_KEY *key){
|
void publickey_free(PUBLIC_KEY *key) {
|
||||||
if(!key)
|
if (key == NULL) {
|
||||||
return;
|
return;
|
||||||
switch(key->type){
|
}
|
||||||
case TYPE_DSS:
|
|
||||||
|
switch(key->type) {
|
||||||
|
case TYPE_DSS:
|
||||||
#ifdef HAVE_LIBGCRYPT
|
#ifdef HAVE_LIBGCRYPT
|
||||||
gcry_sexp_release(key->dsa_pub);
|
gcry_sexp_release(key->dsa_pub);
|
||||||
#elif HAVE_LIBCRYPTO
|
#elif HAVE_LIBCRYPTO
|
||||||
DSA_free(key->dsa_pub);
|
DSA_free(key->dsa_pub);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case TYPE_RSA:
|
case TYPE_RSA:
|
||||||
case TYPE_RSA1:
|
case TYPE_RSA1:
|
||||||
#ifdef HAVE_LIBGCRYPT
|
#ifdef HAVE_LIBGCRYPT
|
||||||
gcry_sexp_release(key->rsa_pub);
|
gcry_sexp_release(key->rsa_pub);
|
||||||
#elif defined HAVE_LIBCRYPTO
|
#elif defined HAVE_LIBCRYPTO
|
||||||
RSA_free(key->rsa_pub);
|
RSA_free(key->rsa_pub);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
free(key);
|
SAFE_FREE(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
PUBLIC_KEY *publickey_from_string(SSH_SESSION *session, STRING *pubkey_s){
|
PUBLIC_KEY *publickey_from_string(SSH_SESSION *session, STRING *pubkey_s){
|
||||||
@@ -613,29 +615,31 @@ SIGNATURE *signature_from_string(SSH_SESSION *session, STRING *signature,PUBLIC_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void signature_free(SIGNATURE *sign){
|
void signature_free(SIGNATURE *sign) {
|
||||||
if(!sign)
|
if (sign == NULL) {
|
||||||
return;
|
return;
|
||||||
switch(sign->type){
|
}
|
||||||
case TYPE_DSS:
|
|
||||||
|
switch(sign->type) {
|
||||||
|
case TYPE_DSS:
|
||||||
#ifdef HAVE_LIBGCRYPT
|
#ifdef HAVE_LIBGCRYPT
|
||||||
gcry_sexp_release(sign->dsa_sign);
|
gcry_sexp_release(sign->dsa_sign);
|
||||||
#elif defined HAVE_LIBCRYPTO
|
#elif defined HAVE_LIBCRYPTO
|
||||||
DSA_SIG_free(sign->dsa_sign);
|
DSA_SIG_free(sign->dsa_sign);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case TYPE_RSA:
|
case TYPE_RSA:
|
||||||
case TYPE_RSA1:
|
case TYPE_RSA1:
|
||||||
#ifdef HAVE_LIBGCRYPT
|
#ifdef HAVE_LIBGCRYPT
|
||||||
gcry_sexp_release(sign->rsa_sign);
|
gcry_sexp_release(sign->rsa_sign);
|
||||||
#elif defined HAVE_LIBCRYPTO
|
#elif defined HAVE_LIBCRYPTO
|
||||||
free(sign->rsa_sign);
|
SAFE_FREE(sign->rsa_sign);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ssh_log(NULL,SSH_LOG_RARE,"freeing a signature with no type !\n");
|
ssh_log(NULL, SSH_LOG_RARE, "Freeing a signature with no type!\n");
|
||||||
}
|
}
|
||||||
free(sign);
|
SAFE_FREE(sign);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LIBCRYPTO
|
#ifdef HAVE_LIBCRYPTO
|
||||||
|
|||||||
Reference in New Issue
Block a user