1 /*
2  * This file is part of the SSH Library
3  *
4  * Copyright (c) 2010 by Aris Adamantiadis
5  *
6  * The SSH Library is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or (at your
9  * option) any later version.
10  *
11  * The SSH Library is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14  * License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with the SSH Library; see the file COPYING.  If not, write to
18  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
19  * MA 02111-1307, USA.
20  */
21 
22 /* Since libssh.h includes legacy.h, it's important that libssh.h is included
23  * first. we don't define LEGACY_H now because we want it to be defined when
24  * included from libssh.h
25  * All function calls declared in this header are deprecated and meant to be
26  * removed in future.
27  */
28 
29 #include "libssh/libssh.h"
30 
31 #ifndef LEGACY_H_
32 #define LEGACY_H_
33 
34 typedef struct ssh_private_key_struct* ssh_private_key;
35 typedef struct ssh_public_key_struct* ssh_public_key;
36 
37 LIBSSH_API int ssh_auth_list(ssh_session session);
38 LIBSSH_API int ssh_userauth_offer_pubkey(ssh_session session, const char *username, int type, ssh_string publickey);
39 LIBSSH_API int ssh_userauth_pubkey(ssh_session session, const char *username, ssh_string publickey, ssh_private_key privatekey);
40 #ifndef _WIN32
41 LIBSSH_API int ssh_userauth_agent_pubkey(ssh_session session, const char *username,
42     ssh_public_key publickey);
43 #endif
44 LIBSSH_API int ssh_userauth_autopubkey(ssh_session session, const char *passphrase);
45 LIBSSH_API int ssh_userauth_privatekey_file(ssh_session session, const char *username,
46     const char *filename, const char *passphrase);
47 
48 LIBSSH_API void buffer_free(ssh_buffer buffer);
49 LIBSSH_API void *buffer_get(ssh_buffer buffer);
50 LIBSSH_API uint32_t buffer_get_len(ssh_buffer buffer);
51 LIBSSH_API ssh_buffer buffer_new(void);
52 
53 LIBSSH_API ssh_channel channel_accept_x11(ssh_channel channel, int timeout_ms);
54 LIBSSH_API int channel_change_pty_size(ssh_channel channel,int cols,int rows);
55 LIBSSH_API ssh_channel channel_forward_accept(ssh_session session, int timeout_ms);
56 LIBSSH_API int channel_close(ssh_channel channel);
57 LIBSSH_API int channel_forward_cancel(ssh_session session, const char *address, int port);
58 LIBSSH_API int channel_forward_listen(ssh_session session, const char *address, int port, int *bound_port);
59 LIBSSH_API void channel_free(ssh_channel channel);
60 LIBSSH_API int channel_get_exit_status(ssh_channel channel);
61 LIBSSH_API ssh_session channel_get_session(ssh_channel channel);
62 LIBSSH_API int channel_is_closed(ssh_channel channel);
63 LIBSSH_API int channel_is_eof(ssh_channel channel);
64 LIBSSH_API int channel_is_open(ssh_channel channel);
65 LIBSSH_API ssh_channel channel_new(ssh_session session);
66 LIBSSH_API int channel_open_forward(ssh_channel channel, const char *remotehost,
67     int remoteport, const char *sourcehost, int localport);
68 LIBSSH_API int channel_open_session(ssh_channel channel);
69 LIBSSH_API int channel_poll(ssh_channel channel, int is_stderr);
70 LIBSSH_API int channel_read(ssh_channel channel, void *dest, uint32_t count, int is_stderr);
71 
72 LIBSSH_API int channel_read_buffer(ssh_channel channel, ssh_buffer buffer, uint32_t count,
73     int is_stderr);
74 
75 LIBSSH_API int channel_read_nonblocking(ssh_channel channel, void *dest, uint32_t count,
76     int is_stderr);
77 LIBSSH_API int channel_request_env(ssh_channel channel, const char *name, const char *value);
78 LIBSSH_API int channel_request_exec(ssh_channel channel, const char *cmd);
79 LIBSSH_API int channel_request_pty(ssh_channel channel);
80 LIBSSH_API int channel_request_pty_size(ssh_channel channel, const char *term,
81     int cols, int rows);
82 LIBSSH_API int channel_request_shell(ssh_channel channel);
83 LIBSSH_API int channel_request_send_signal(ssh_channel channel, const char *signum);
84 LIBSSH_API int channel_request_sftp(ssh_channel channel);
85 LIBSSH_API int channel_request_subsystem(ssh_channel channel, const char *subsystem);
86 LIBSSH_API int channel_request_x11(ssh_channel channel, int single_connection, const char *protocol,
87     const char *cookie, int screen_number);
88 LIBSSH_API int channel_send_eof(ssh_channel channel);
89 LIBSSH_API int channel_select(ssh_channel *readchans, ssh_channel *writechans, ssh_channel *exceptchans, struct
90         timeval * timeout);
91 LIBSSH_API void channel_set_blocking(ssh_channel channel, int blocking);
92 LIBSSH_API int channel_write(ssh_channel channel, const void *data, uint32_t len);
93 
94 LIBSSH_API void privatekey_free(ssh_private_key prv);
95 LIBSSH_API ssh_private_key privatekey_from_file(ssh_session session, const char *filename,
96     int type, const char *passphrase);
97 LIBSSH_API void publickey_free(ssh_public_key key);
98 LIBSSH_API int ssh_publickey_to_file(ssh_session session, const char *file,
99     ssh_string pubkey, int type);
100 LIBSSH_API ssh_string publickey_from_file(ssh_session session, const char *filename,
101     int *type);
102 LIBSSH_API ssh_public_key publickey_from_privatekey(ssh_private_key prv);
103 LIBSSH_API ssh_string publickey_to_string(ssh_public_key key);
104 LIBSSH_API int ssh_try_publickey_from_file(ssh_session session, const char *keyfile,
105     ssh_string *publickey, int *type);
106 LIBSSH_API enum ssh_keytypes_e ssh_privatekey_type(ssh_private_key privatekey);
107 
108 LIBSSH_API ssh_string ssh_get_pubkey(ssh_session session);
109 
110 LIBSSH_API ssh_message ssh_message_retrieve(ssh_session session, uint32_t packettype);
111 LIBSSH_API ssh_public_key ssh_message_auth_publickey(ssh_message msg);
112 
113 LIBSSH_API void string_burn(ssh_string str);
114 LIBSSH_API ssh_string string_copy(ssh_string str);
115 LIBSSH_API void *string_data(ssh_string str);
116 LIBSSH_API int string_fill(ssh_string str, const void *data, size_t len);
117 LIBSSH_API void string_free(ssh_string str);
118 LIBSSH_API ssh_string string_from_char(const char *what);
119 LIBSSH_API size_t string_len(ssh_string str);
120 LIBSSH_API ssh_string string_new(size_t size);
121 LIBSSH_API char *string_to_char(ssh_string str);
122 
123 #endif /* LEGACY_H_ */
124