From d40f16d48ec1ed9670c20ffaad1005c59a689484 Mon Sep 17 00:00:00 2001 From: Aris Adamantiadis Date: Tue, 5 Jul 2005 01:24:22 +0000 Subject: [PATCH] git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@2 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh.kdevelop | 129 ----------------------- libssh.kdevelop.pcs | Bin 230 -> 0 bytes libssh.kdevses | 29 ------ samplesftp | 1 - samplessh | Bin 35458 -> 0 bytes samplesshd | Bin 11338 -> 0 bytes ssh1/auth1.c | 202 ------------------------------------ ssh1/channels1.c | 244 -------------------------------------------- 8 files changed, 605 deletions(-) delete mode 100644 libssh.kdevelop delete mode 100644 libssh.kdevelop.pcs delete mode 100644 libssh.kdevses delete mode 120000 samplesftp delete mode 100755 samplessh delete mode 100755 samplesshd delete mode 100644 ssh1/auth1.c delete mode 100644 ssh1/channels1.c diff --git a/libssh.kdevelop b/libssh.kdevelop deleted file mode 100644 index ed5d8f41..00000000 --- a/libssh.kdevelop +++ /dev/null @@ -1,129 +0,0 @@ - - - - Aris Adamantiadis (aka spacewalker) - aris@0xbadc0de.be - $VERSION$ - KDevAutoProject - C - - - - - src/libssh - debug - - - src/libssh - executable - - - - optimized - GccOptions - GppOptions - G77Options - -O2 -g0 - - - --enable-debug=full - debug - GccOptions - GppOptions - G77Options - -O0 -g3 - - - - - - - - - - - - libtool - - - - - ada - ada_bugs_gcc - bash - bash_bugs - clanlib - fortran_bugs_gcc - gnome1 - gnustep - gtk - gtk_bugs - haskell - haskell_bugs_ghc - java_bugs_gcc - java_bugs_sun - kde2book - libstdc++ - opengl - pascal_bugs_fp - php - php_bugs - perl - perl_bugs - python - python_bugs - qt-kdev3 - ruby - ruby_bugs - sdl - stl - sw - w3c-dom-level2-html - w3c-svg - w3c-uaag10 - wxwidgets_bugs - - - Guide to the Qt Translation Tools - Qt Assistant Manual - Qt Designer Manual - Qt Reference Documentation - qmake User Guide - - - KDE Libraries (Doxygen) - - - - - - - - - - - - - true - true - true - false - true - true - true - 250 - 400 - 250 - - - - - false - false - - - *.o,*.lo,CVS - false - - - diff --git a/libssh.kdevelop.pcs b/libssh.kdevelop.pcs deleted file mode 100644 index 81a143674be60febf64c0b15b69d9ec029d60a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmZQzU|?eiU~py#W?*1o1!6`Zc45$G$Y984$Yn?cvJx4J7%~}(fvglDzYIv{0QpHk okz$}KUASm6P)8m^8c;5sL60HBsax3=XjT$6&HN7pK=Vij0J;t!1poj5 diff --git a/libssh.kdevses b/libssh.kdevses deleted file mode 100644 index b7db0959..00000000 --- a/libssh.kdevses +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samplesftp b/samplesftp deleted file mode 120000 index 66848001..00000000 --- a/samplesftp +++ /dev/null @@ -1 +0,0 @@ -samplessh \ No newline at end of file diff --git a/samplessh b/samplessh deleted file mode 100755 index 704edbdc1f9de6c82fbf1bf3bf82f7a5c3781817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35458 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 diff --git a/samplesshd b/samplesshd deleted file mode 100755 index 81be44ed1faa8269de86abb74336e5edfcaa75dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11338 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 diff --git a/ssh1/auth1.c b/ssh1/auth1.c deleted file mode 100644 index d92f50cc..00000000 --- a/ssh1/auth1.c +++ /dev/null @@ -1,202 +0,0 @@ -/* auth1.c deals with authentication with SSH-1 protocol */ -/* -Copyright 2005 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" -#include "libssh/ssh1.h" -#include -#include - -/* -static void burn(char *ptr){ - if(ptr) - memset(ptr,'X',strlen(ptr)); -} -*/ -#ifdef HAVE_SSH1 -static int wait_auth1_status(SSH_SESSION *session){ - /* wait for a packet */ - if(packet_read(session)) - return SSH_AUTH_ERROR; - if(packet_translate(session)) - return SSH_AUTH_ERROR; - switch(session->in_packet.type){ - case SSH_SMSG_SUCCESS: - return SSH_AUTH_SUCCESS; - case SSH_SMSG_FAILURE: - return SSH_AUTH_DENIED; - } - ssh_set_error(session,SSH_FATAL,"Was waiting for a SUCCESS or " - "FAILURE, got %d",session->in_packet.type); - return SSH_AUTH_ERROR; -} -static int send_username(SSH_SESSION *session, char *username){ - STRING *user; - /* returns SSH_AUTH_SUCCESS or SSH_AUTH_DENIED */ - if(session->auth_service_asked) - return session->auth_service_asked; - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_USER); - if(!username) - if(!(username=session->options->username)){ - if(options_default_username(session->options)) - return session->auth_service_asked=SSH_AUTH_ERROR; - else - username=session->options->username; - } - user=string_from_char(username); - buffer_add_ssh_string(session->out_buffer,user); - free(user); - packet_send(session); - session->auth_service_asked=wait_auth1_status(session); - return session->auth_service_asked; -} - -/* use the "none" authentication question */ - -int ssh_userauth1_none(SSH_SESSION *session,char *username){ - return send_username(session,username); -} - -/* -int ssh_userauth_offer_pubkey(SSH_SESSION *session, char *username,int type, STRING *publickey){ - STRING *user; - STRING *service; - STRING *method; - STRING *algo; - int err=SSH_AUTH_ERROR; - if(!username) - if(!(username=session->options->username)){ - if(options_default_username(session->options)) - return SSH_AUTH_ERROR; - else - username=session->options->username; - } - if(ask_userauth(session)) - return SSH_AUTH_ERROR; - user=string_from_char(username); - service=string_from_char("ssh-connection"); - method=string_from_char("publickey"); - algo=string_from_char(ssh_type_to_char(type)); - - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH2_MSG_USERAUTH_REQUEST); - buffer_add_ssh_string(session->out_buffer,user); - buffer_add_ssh_string(session->out_buffer,service); - buffer_add_ssh_string(session->out_buffer,method); - buffer_add_u8(session->out_buffer,0); - buffer_add_ssh_string(session->out_buffer,algo); - buffer_add_ssh_string(session->out_buffer,publickey); - packet_send(session); - err=wait_auth_status(session,0); - free(user); - free(method); - free(service); - free(algo); - return err; -} -*/ -int ssh_userauth1_offer_pubkey(SSH_SESSION *session, char *username, int type, - STRING *pubkey){ - return SSH_AUTH_DENIED; -} - -/* -int ssh_userauth_pubkey(SSH_SESSION *session, char *username, STRING *publickey, PRIVATE_KEY *privatekey){ - STRING *user; - STRING *service; - STRING *method; - STRING *algo; - STRING *sign; - int err=SSH_AUTH_ERROR; - if(!username) - if(!(username=session->options->username)){ - if(options_default_username(session->options)) - return err; - else - username=session->options->username; - } - if(ask_userauth(session)) - return err; - user=string_from_char(username); - service=string_from_char("ssh-connection"); - method=string_from_char("publickey"); - algo=string_from_char(ssh_type_to_char(privatekey->type)); - - -*/ /* we said previously the public key was accepted */ -/* packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH2_MSG_USERAUTH_REQUEST); - buffer_add_ssh_string(session->out_buffer,user); - buffer_add_ssh_string(session->out_buffer,service); - buffer_add_ssh_string(session->out_buffer,method); - buffer_add_u8(session->out_buffer,1); - buffer_add_ssh_string(session->out_buffer,algo); - buffer_add_ssh_string(session->out_buffer,publickey); - sign=ssh_do_sign(session,session->out_buffer,privatekey); - if(sign){ - buffer_add_ssh_string(session->out_buffer,sign); - free(sign); - packet_send(session); - err=wait_auth_status(session,0); - } - free(user); - free(service); - free(method); - free(algo); - return err; -} -*/ - -int ssh_userauth1_password(SSH_SESSION *session,char *username,char *password){ - STRING *password_s; - int err; - err=send_username(session,username); - if(err!=SSH_AUTH_DENIED) - return err; - /* we trick a bit here. A known flaw in SSH1 protocol is that it's - * easy to guess password sizes. - * not that sure ... - */ - if(strlen(password)>=128){ - /* not risky to disclose the size of such a big password .. */ - password_s=string_from_char(password); - } else { - /* fill the password string from random things. the strcpy - * ensure there is at least a nul byte after the password. - * most implementation won't see the garbage at end. - * why garbage ? because nul bytes will be compressed by - * gzip and disclose password len. - */ - password_s=string_new(128); - ssh_get_random(password_s->string,128); - strcpy(password_s->string,password); - } - - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_AUTH_PASSWORD); - buffer_add_ssh_string(session->out_buffer,password_s); - string_burn(password_s); - free(password_s); - packet_send(session); - return wait_auth1_status(session); -} - -#endif /* HAVE_SSH1 */ diff --git a/ssh1/channels1.c b/ssh1/channels1.c deleted file mode 100644 index eecfdb0a..00000000 --- a/ssh1/channels1.c +++ /dev/null @@ -1,244 +0,0 @@ -/* channels1.c */ -/* Support for SSH-1 type channels */ -/* -Copyright 2005 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 -#include -#include -#include -#include - -#include "libssh/priv.h" -#include "libssh/ssh1.h" - -#ifdef HAVE_SSH1 - -/* this is a big hack. In fact, SSH-1 doesn't make a clever use of channels. - * The whole packets concerning Shells are sent outside of a channel. - * Thus, an inside limitation of this behaviour is that you can't only - * request one Shell. - * And i don't even know yet how they managed to imbed two "channel" - * into one protocol. - */ - -CHANNEL *channel_open_session1(SSH_SESSION *session){ - CHANNEL *chan; - // we guess we are requesting an *exec* channel. It can only have - // only one exec channel. so we abort with an error if we need more than - // one. - if(session->exec_channel_opened){ - ssh_set_error(session,SSH_REQUEST_DENIED,"SSH-1 supports only one execution channel. One has already been opened"); - return NULL; - } - session->exec_channel_opened=1; - chan=channel_new(session); - chan->open=1; - ssh_say(2,"Opened a ssh1 channel session\n"); - return chan; -} -/* 10 SSH_CMSG_REQUEST_PTY - * - * string TERM environment variable value (e.g. vt100) - * 32-bit int terminal height, rows (e.g., 24) - * 32-bit int terminal width, columns (e.g., 80) - * 32-bit int terminal width, pixels (0 if no graphics) (e.g., 480) - * 32-bit int terminal height, pixels (0 if no graphics) (e.g., 640) - * n bytes tty modes encoded in binary - * Some day, someone should have a look at that nasty tty encoded. It's - * much simplier under ssh2. I just hope the defaults values are ok ... - */ - -int channel_request_pty_size1(CHANNEL *channel, char *terminal, int col, - int row){ - STRING *str; - SSH_SESSION *session=channel->session; - str=string_from_char(terminal); - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_REQUEST_PTY); - buffer_add_ssh_string(session->out_buffer,str); - free(str); - buffer_add_u32(session->out_buffer,ntohl(row)); - buffer_add_u32(session->out_buffer,ntohl(col)); - buffer_add_u32(session->out_buffer,0); /* x */ - buffer_add_u32(session->out_buffer,0); /* y */ - buffer_add_u8(session->out_buffer,0); /* tty things */ - ssh_say(2,"Opening a ssh1 pty\n"); - if(packet_send(session)) - return -1; - if(packet_read(session)) - return -1; - if(packet_translate(session)) - return -1; - switch (session->in_packet.type){ - case SSH_SMSG_SUCCESS: - ssh_say(2,"pty : Success\n"); - return 0; - break; - case SSH_SMSG_FAILURE: - ssh_set_error(session,SSH_REQUEST_DENIED, - "Server denied PTY allocation"); - ssh_say(2,"pty : denied\n"); - break; - default: - ssh_say(2,"pty : error\n"); - ssh_set_error(session,SSH_FATAL, - "Received unexpected packet type %d", - session->in_packet.type); - return -1; - } - return -1; -} - -int channel_change_pty_size1(CHANNEL *channel, int cols, int rows){ - SSH_SESSION *session=channel->session; - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_WINDOW_SIZE); - buffer_add_u32(session->out_buffer,ntohl(rows)); - buffer_add_u32(session->out_buffer,ntohl(cols)); - buffer_add_u32(session->out_buffer,0); - buffer_add_u32(session->out_buffer,0); - if(packet_send(session)) - return -1; - ssh_say(2,"Change pty size send\n"); - packet_wait(session,SSH_SMSG_SUCCESS,1); - switch (session->in_packet.type){ - case SSH_SMSG_SUCCESS: - ssh_say(2,"pty size changed\n"); - return 0; - break; - case SSH_SMSG_FAILURE: - ssh_say(2,"pty size change denied\n"); - ssh_set_error(session,SSH_REQUEST_DENIED,"pty size change denied"); - return -1; - } - ssh_set_error(session,SSH_FATAL,"Received unexpected packet type %d", - session->in_packet.type); - return -1; -} - -int channel_request_shell1(CHANNEL *channel){ - SSH_SESSION *session=channel->session; - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_EXEC_SHELL); - if(packet_send(session)) - return -1; - ssh_say(2,"Launched a shell\n"); - return 0; -} - -int channel_request_exec1(CHANNEL *channel, char *cmd){ - SSH_SESSION *session=channel->session; - STRING *command=string_from_char(cmd); - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_EXEC_CMD); - buffer_add_ssh_string(session->out_buffer,command); - free(command); - if(packet_send(session)) - return -1; - ssh_say(2,"executing %s...\n",cmd); - return 0; -} - -static void channel_rcv_data1(SSH_SESSION *session, int is_stderr){ - CHANNEL *channel; - STRING *str; - channel=session->channels; // Easy. hack this when multiple channel - // are comming - str=buffer_get_ssh_string(session->in_buffer); - if(!str){ - ssh_say(0,"Invalid data packet !\n"); - return; - } - ssh_say(3,"adding %d bytes data in %d\n",string_len(str),is_stderr); - if(!is_stderr){ - /* stdout */ - if(channel->write_fct){ - channel->write_fct(channel,str->string,string_len(str), - channel->userarg); - } else { - channel_default_bufferize(channel,str->string,string_len(str), - is_stderr); - } - } else { - /* stderr */ - if(channel->write_err_fct){ - channel->write_err_fct(channel,str->string,string_len(str), - channel->userarg); - } else { - channel_default_bufferize(channel,str->string,string_len(str), - is_stderr); - } - } - free(str); -} - -static void channel_rcv_close1(SSH_SESSION *session){ - CHANNEL *channel=session->channels; - u32 status; - buffer_get_u32(session->in_buffer,&status); - /* it's much more than a channel closing. spec says it's the last - * message sent by server (strange) - */ - /* actually status is lost somewhere */ - channel->open=0; - channel->remote_eof=1; - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_EXIT_CONFIRMATION); - packet_send(session); -} - -void channel_handle1(SSH_SESSION *session, int type){ - ssh_say(3,"Channel_handle1(%d)\n",type); - switch (type){ - case SSH_SMSG_STDOUT_DATA: - channel_rcv_data1(session,0); - break; - case SSH_SMSG_EXITSTATUS: - channel_rcv_close1(session); - break; - default: - ssh_say(0,"Unexepected message %d\n",type); - - } -} - -int channel_write1(CHANNEL *channel, void *data, int len){ - SSH_SESSION *session=channel->session; - int origlen=len; - int effectivelen; - while(len>0){ - packet_clear_out(session); - buffer_add_u8(session->out_buffer,SSH_CMSG_STDIN_DATA); - if(len > 32000) - effectivelen=32000; - else - effectivelen=len; - buffer_add_u32(session->out_buffer,htonl(effectivelen)); - buffer_add_data(session->out_buffer,data,effectivelen); - data+=effectivelen; - len-=effectivelen; - if(packet_send(session)) - return -1; - } - return origlen; -} - -#endif /* HAVE_SSH1 */