aboutsummaryrefslogtreecommitdiff
path: root/libssh
diff options
context:
space:
mode:
authorJean-Philippe Garcia Ballester <giga@le-pec.org>2006-07-09 10:36:44 +0000
committerJean-Philippe Garcia Ballester <giga@le-pec.org>2006-07-09 10:36:44 +0000
commitb2d0d13a2d6709c740453ee3ff32bc37160cc331 (patch)
tree8749b08068a402d2d92469be576572b2c159c918 /libssh
parent9bb0be2dbb995097859f304111e61c6bbc910746 (diff)
downloadlibssh-b2d0d13a2d6709c740453ee3ff32bc37160cc331.tar.gz
libssh-b2d0d13a2d6709c740453ee3ff32bc37160cc331.tar.xz
libssh-b2d0d13a2d6709c740453ee3ff32bc37160cc331.zip
Add ssh_finalize to handle finalization of libssh and underlying cryptographic
library. Add corresponding paragraph in API draft. git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@75 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh')
-rw-r--r--libssh/Makefile.in2
-rw-r--r--libssh/init.c34
-rw-r--r--libssh/libssh.vers2
3 files changed, 36 insertions, 2 deletions
diff --git a/libssh/Makefile.in b/libssh/Makefile.in
index 5b28caaf..28f919f0 100644
--- a/libssh/Makefile.in
+++ b/libssh/Makefile.in
@@ -3,7 +3,7 @@ OBJECTS= client.o packet.o dh.o crypt.o connect.o error.o buffer.o \
string.o kex.o channels.o options.o keys.o auth.o base64.o \
keyfiles.o misc.o gzip.o wrapper.o sftp.o server.o crc32.o \
session.o messages.o channels1.o auth1.o sftpserver.o \
- gcrypt_missing.o
+ gcrypt_missing.o init.o
SHELL = /bin/sh
VPATH = @srcdir@
diff --git a/libssh/init.c b/libssh/init.c
new file mode 100644
index 00000000..e7f27bc1
--- /dev/null
+++ b/libssh/init.c
@@ -0,0 +1,34 @@
+/* init.c */
+/* This file handles initialization and finalization of the library */
+
+/*
+Copyright 2003,04,06 Aris Adamantiadis
+
+This file is part of the SSH Library
+
+The SSH Library is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or (at your
+option) any later version.
+
+The SSH Library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with the SSH Library; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+#include "libssh/priv.h"
+
+int ssh_finalize()
+{
+#ifdef HAVE_LIBGCRYPT
+ gcry_control(GCRYCTL_TERM_SECMEM);
+#elif defined HAVE_LIBCRYPTO
+ EVP_cleanup();
+#endif
+ return 0;
+}
diff --git a/libssh/libssh.vers b/libssh/libssh.vers
index a1bc8580..61665365 100644
--- a/libssh/libssh.vers
+++ b/libssh/libssh.vers
@@ -3,7 +3,7 @@ SSH_0.2 {
ssh_get_error; ssh_get_error_code; ssh_say; ssh_set_verbosity;
ssh_new; ssh_set_options; ssh_get_fd; ssh_silent_disconnect;
ssh_connect; ssh_disconnect; ssh_service_request; ssh_get_issue_banner;
- ssh_copyright; ssh_get_version;
+ ssh_copyright; ssh_get_version; ssh_finalize;
ssh_set_fd_toread; ssh_set_fd_towrite; ssh_set_fd_except;
string_from_char; string_len; string_new; string_fill; string_to_char;
string_copy; string_burn; string_data;