From c6eb54c39e4663c8f9ea82e8bf29bfdb3c8d945a Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 16 Apr 2009 14:50:53 +0000 Subject: Improve dh_import() functions. git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@505 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/dh.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'libssh/dh.c') diff --git a/libssh/dh.c b/libssh/dh.c index 9eb4810e..4f37615f 100644 --- a/libssh/dh.c +++ b/libssh/dh.c @@ -380,19 +380,31 @@ void dh_import_pubkey(SSH_SESSION *session, STRING *pubkey_string) { session->next_crypto->server_pubkey = pubkey_string; } -void dh_import_f(SSH_SESSION *session,STRING *f_string){ - session->next_crypto->f=make_string_bn(f_string); +int dh_import_f(SSH_SESSION *session, STRING *f_string) { + session->next_crypto->f = make_string_bn(f_string); + if (session->next_crypto->f == NULL) { + return -1; + } + #ifdef DEBUG_CRYPTO - ssh_print_bignum("f",session->next_crypto->f); + ssh_print_bignum("f",session->next_crypto->f); #endif + + return 0; } /* used by the server implementation */ -void dh_import_e(SSH_SESSION *session, STRING *e_string){ - session->next_crypto->e=make_string_bn(e_string); +int dh_import_e(SSH_SESSION *session, STRING *e_string) { + session->next_crypto->e = make_string_bn(e_string); + if (session->next_crypto->e == NULL) { + return -1; + } + #ifdef DEBUG_CRYPTO ssh_print_bignum("e",session->next_crypto->e); #endif + + return 0; } void dh_build_k(SSH_SESSION *session){ -- cgit