diff options
-rw-r--r-- | ChangeLog.0 (renamed from ChangeLog-old) | 0 | ||||
-rw-r--r-- | ChangeLog.1 | 2928 |
2 files changed, 2928 insertions, 0 deletions
diff --git a/ChangeLog-old b/ChangeLog.0 index c151d251..c151d251 100644 --- a/ChangeLog-old +++ b/ChangeLog.0 diff --git a/ChangeLog.1 b/ChangeLog.1 new file mode 100644 index 00000000..2fdae5a0 --- /dev/null +++ b/ChangeLog.1 @@ -0,0 +1,2928 @@ +# do not edit -- automatically generated by arch changelog +# arch-tag: automatic-ChangeLog--robey@lag.net--2003-public/secsh--dev--1.0 +# + +2005-04-18 00:53:57 GMT Robey Pointer <robey@lag.net> patch-164 + + Summary: + fix some docs + Revision: + secsh--dev--1.0--patch-164 + + remove some epydoc comments about fileno() being non-portable. + + modified files: + paramiko/channel.py + + +2005-04-18 00:30:52 GMT Robey Pointer <robey@lag.net> patch-163 + + Summary: + add SFTPClient.close() + Revision: + secsh--dev--1.0--patch-163 + + add SFTPClient.close() and add a simple little unit test for it. + + + modified files: + paramiko/sftp_client.py tests/test_sftp.py + + +2005-04-18 00:11:34 GMT Robey Pointer <robey@lag.net> patch-162 + + Summary: + avoid os.environ['HOME'] in the demos + Revision: + secsh--dev--1.0--patch-162 + + avoid using os.environ['HOME'], which will never work on windows, and + use os.path.expanduser() instead. it's semi-moot because windows doesn't + have a standard location for ssh files, but i think paramiko should set a + good example anyway. + + modified files: + demo.py demo_simple.py + + +2005-04-16 23:38:22 GMT Robey Pointer <robey@lag.net> patch-161 + + Summary: + integrated laptop work (test commit) + Revision: + secsh--dev--1.0--patch-161 + + Patches applied: + + * robey@lag.net--2003-public-master-shake/secsh--dev--1.0--base-0 + tag of robey@lag.net--2003-public/secsh--dev--1.0--patch-160 + + * robey@lag.net--2003-public-master-shake/secsh--dev--1.0--patch-1 + test commit + + * robey@lag.net--2003-public/secsh--dev--1.0--base-0 + initial import + + * robey@lag.net--2003-public/secsh--dev--1.0--patch-1 + no changes + + + modified files: + README paramiko/server.py + + new patches: + robey@lag.net--2003-public-master-shake/secsh--dev--1.0--base-0 + robey@lag.net--2003-public-master-shake/secsh--dev--1.0--patch-1 + + +2005-04-10 00:46:41 GMT Robey Pointer <robey@lag.net> patch-160 + + Summary: + 1.3 marowak + Revision: + secsh--dev--1.0--patch-160 + + bump version to 1.3 / marowak + + modified files: + Makefile README paramiko/__init__.py paramiko/transport.py + setup.py + + +2005-04-10 00:39:18 GMT Robey Pointer <robey@lag.net> patch-159 + + Summary: + clean up SFTPAttributes.__repr__ + Revision: + secsh--dev--1.0--patch-159 + + clean up SFTPAttributes repr() a bit. + + modified files: + paramiko/sftp_attr.py + + +2005-04-10 00:13:54 GMT Robey Pointer <robey@lag.net> patch-158 + + Summary: + remove ChangeLog from MANIFEST.in + Revision: + secsh--dev--1.0--patch-158 + + remove ChangeLog from the dist list. + + modified files: + MANIFEST.in + + +2005-04-06 07:24:28 GMT Robey Pointer <robey@lag.net> patch-157 + + Summary: + change SubsystemHandler/SFTPServerInterface API + Revision: + secsh--dev--1.0--patch-157 + + change the API of SubsystemHandler to accept a reference to the + ServerInstance object during construction. this will break all code + that currently creates subsystem handlers (like sftp servers) -- sorry! + + lots of little doc fixups (mostly indenting). + + modified files: + paramiko/server.py paramiko/sftp_server.py paramiko/sftp_si.py + paramiko/transport.py tests/stub_sftp.py + + +2005-03-26 05:53:00 GMT Robey Pointer <robey@lag.net> patch-156 + + Summary: + rewrite channel pipes to work on windows + Revision: + secsh--dev--1.0--patch-156 + + the pipe system i was using for simulating an os-level FD (for select) was + retarded. i realized this week that i could just use a single byte in the + pipe to signal "data is ready" and not try to feed all incoming data thru + the pipe -- and then i don't have to try to make the pipe non-blocking (which + should make it work on windows). a lot of duplicate code got removed and now + it's all going thru the same code-path on read. + + there's still a slight penalty on incoming feeds and calling 'recv' when a + pipe has been opened (by calling 'fileno'), but it's tiny. + + removed a bunch of documentation and comments about things not working on + windows, since i think they probably do now. + + + removed files: + .arch-ids/demo_windows.py.id demo_windows.py + + modified files: + MANIFEST.in README paramiko/channel.py + + +2005-03-25 20:06:56 GMT Robey Pointer <robey@lag.net> patch-155 + + Summary: + fix sending of large sftp packet sizes + Revision: + secsh--dev--1.0--patch-155 + + fix a bug where packets larger than about 12KB would cause the session to + die on platforms other than osx. turns out that on most platforms, setting a + socket timeout also causes timeouts to occur on writes (but not on osx). so + on a huge write, once the os buffers were full, paramiko would get a + socket.timeout exception when writing, and bail. + + since the timeout is primarily so we can periodically poll to see if the + session has been killed from elsewhere, do that on a timeout but otherwise + continue trying to write. large packet sizes (in sftp) should now work. + + modified files: + paramiko/transport.py + + +2005-02-28 08:06:08 GMT Robey Pointer <robey@lag.net> patch-154 + + Summary: + even better 1.2 lapras + Revision: + secsh--dev--1.0--patch-154 + + re-bump the version # to 1.2 (with a new date since i added more stuff). + add 2005 to the copyright date in a bunch of files. + + + modified files: + Makefile README demo.py demo_server.py demo_simple.py + demo_windows.py forward.py paramiko/__init__.py + paramiko/auth_transport.py paramiko/ber.py paramiko/channel.py + paramiko/common.py paramiko/dsskey.py paramiko/file.py + paramiko/kex_gex.py paramiko/kex_group1.py + paramiko/logging22.py paramiko/message.py paramiko/pkey.py + paramiko/primes.py paramiko/rsakey.py paramiko/server.py + paramiko/sftp.py paramiko/sftp_attr.py paramiko/sftp_client.py + paramiko/sftp_handle.py paramiko/sftp_server.py + paramiko/sftp_si.py paramiko/ssh_exception.py + paramiko/transport.py paramiko/util.py setup.py test.py + tests/loop.py tests/stub_sftp.py tests/test_file.py + tests/test_kex.py tests/test_message.py tests/test_pkey.py + tests/test_sftp.py tests/test_transport.py + + +2005-02-28 07:49:56 GMT Robey Pointer <robey@lag.net> patch-153 + + Summary: + tweak sftp_file write behavior on large blocks of data + Revision: + secsh--dev--1.0--patch-153 + + BufferedFile.write() wasn't correctly dealing with the possibility that the + underlying write might not write the entire data block at once (even though + the docs said it would). now that it's working, make sftp_file take + advantage of it in order to chop up blocks larger than 32kB (the max allowed + on sftp) and add a unit test for it. + + + modified files: + paramiko/file.py paramiko/sftp_file.py tests/test_sftp.py + + +2005-02-28 07:17:21 GMT Robey Pointer <robey@lag.net> patch-152 + + Summary: + little doc fixes + Revision: + secsh--dev--1.0--patch-152 + + stupid little doc fixups that didn't fit with the other patches. + + modified files: + paramiko/auth_transport.py tests/loop.py + + +2005-02-28 07:16:22 GMT Robey Pointer <robey@lag.net> patch-151 + + Summary: + fix race in transport thread startup + Revision: + secsh--dev--1.0--patch-151 + + set active=True from the methods that start the main transport thread, right + before actually starting the thread. this avoids a race where the main + thread could be started, but the original thread could wake up from the + event.wait(0.1) before the new thread actually set the transport active. + impossible, you say? no machines so slow exist? au contraire, my sad + little linux box faced this problem earlier today. + + + modified files: + paramiko/transport.py + + +2005-02-28 07:14:11 GMT Robey Pointer <robey@lag.net> patch-150 + + Summary: + when combining stderr with stdout on a channel, merge the buffers too + Revision: + secsh--dev--1.0--patch-150 + + when turning on combine-stderr mode on a channel, grab the channel lock and + feed any existing stderr buffer into the normal buffer. this should help + applications (and my unit tests) avoid races between data coming in over + stderr and setting combine-stderr. + + _send_eof is now slightly safer too, although i don't think that really fixed + anything. it just makes me feel better. + + modified files: + paramiko/channel.py + + +2005-02-28 07:09:02 GMT Robey Pointer <robey@lag.net> patch-149 + + Summary: + add thread ids to logs + Revision: + secsh--dev--1.0--patch-149 + + add a logging filter that reports the thread-id of the logger, and use + that for all paramiko logging. since thread-local stuff didn't appear + until python 2.4, i hacked up my own little version to assign incrementing + numbers to threads as they log. + + + modified files: + paramiko/channel.py paramiko/sftp.py paramiko/sftp_client.py + paramiko/sftp_server.py paramiko/transport.py paramiko/util.py + + +2005-02-26 21:12:43 GMT Robey Pointer <robey@lag.net> patch-148 + + Summary: + forgot to check in stub_sftp + Revision: + secsh--dev--1.0--patch-148 + + yikes! don't forget to check this in: needed for unit tests. + + new files: + tests/.arch-ids/stub_sftp.py.id tests/stub_sftp.py + + +2005-02-26 21:11:04 GMT Robey Pointer <robey@lag.net> patch-147 + + Summary: + 1.2 (lapras) + Revision: + secsh--dev--1.0--patch-147 + + bump version stuff to 1.2 / lapras. + + modified files: + Makefile README paramiko/__init__.py paramiko/transport.py + setup.py + + +2005-02-15 15:48:47 GMT Robey Pointer <robey@lag.net> patch-146 + + Summary: + raise better exception on empty key + Revision: + secsh--dev--1.0--patch-146 + + raise a clearer exception when trying to create an empty key. + + + modified files: + README paramiko/dsskey.py paramiko/rsakey.py + tests/test_transport.py + + +2005-02-15 15:47:02 GMT Robey Pointer <robey@lag.net> patch-145 + + Summary: + add methods for sending/receiving a channel's exit status + Revision: + secsh--dev--1.0--patch-145 + + track a channel's exit status and provide a method (recv_exit_status) to + block waiting for it to arrive. also provide a convenience method for + servers to send it (send_exit_status). add shutdown_read and shutdown_write. + fix a bug in sending window change requests. + + + modified files: + README paramiko/channel.py paramiko/transport.py + + +2005-02-06 23:32:22 GMT Robey Pointer <robey@lag.net> patch-144 + + Summary: + fix docs + Revision: + secsh--dev--1.0--patch-144 + + clean up some of the docs. + + + modified files: + README paramiko/pkey.py paramiko/sftp_attr.py + + +2005-02-06 23:30:40 GMT Robey Pointer <robey@lag.net> patch-143 + + Summary: + fix an sftp unit test + Revision: + secsh--dev--1.0--patch-143 + + fix one of the sftp unit tests to actually work. + + + modified files: + tests/test_sftp.py + + +2005-02-05 07:45:20 GMT Robey Pointer <robey@lag.net> patch-142 + + Summary: + fix windows sample script's HOME + Revision: + secsh--dev--1.0--patch-142 + + fix the HOME environ var to work on windows too. + + modified files: + demo_windows.py + + +2005-01-25 05:17:55 GMT Robey Pointer <robey@lag.net> patch-141 + + Summary: + misc logging fixes + Revision: + secsh--dev--1.0--patch-141 + + change the level of some log messages so interesting stuff gets logged at + info instead of debug. fix an oops where channels defaulted to being in + ultra debug mode, and make this mode depend on a new Transport method: + "set_hexdump". + + + modified files: + paramiko/auth_transport.py paramiko/channel.py + paramiko/sftp.py paramiko/sftp_client.py + paramiko/sftp_server.py paramiko/transport.py + + +2005-01-17 10:09:09 GMT Robey Pointer <robey@lag.net> patch-140 + + Summary: + more flexible logging + Revision: + secsh--dev--1.0--patch-140 + + some tweaks to make channels etc follow the logger setting of their parent + transport, so that setting the log channel for a paramiko transport will + cause all sub-logging to branch out from that channel. + + also, close all open file handles when the sftp server ends. + + + modified files: + paramiko/channel.py paramiko/sftp_attr.py + paramiko/sftp_client.py paramiko/sftp_handle.py + paramiko/sftp_server.py paramiko/transport.py + + +2005-01-16 21:03:15 GMT Robey Pointer <robey@lag.net> patch-139 + + Summary: + make loopback sftp tests the default + Revision: + secsh--dev--1.0--patch-139 + + change the unit tests to default to always running the sftp tests locally, + and make a -R option to force the tests to run against a remote server. + the tests seem to work fine locally, and it helps test out server mode, + even though there's a danger that they could get isolated from reality + and only test that paramiko can talk to itself. + + + modified files: + test.py + + +2005-01-16 20:14:07 GMT Robey Pointer <robey@lag.net> patch-138 + + Summary: + doc fixups + Revision: + secsh--dev--1.0--patch-138 + + little doc fixups that i did obsessively on the train one morning. + + modified files: + paramiko/file.py + + +2005-01-09 05:27:07 GMT Robey Pointer <robey@lag.net> patch-137 + + Summary: + added listdir_attr() + Revision: + secsh--dev--1.0--patch-137 + + add SFTPClient.listdir_attr() to fetch a list of files & their attributes, + instead of just their filenames. artur piwko would find this useful. + + + modified files: + paramiko/sftp_attr.py paramiko/sftp_client.py + + +2004-12-19 19:56:48 GMT Robey Pointer <robey@lag.net> patch-136 + + Summary: + loopback sftp test + Revision: + secsh--dev--1.0--patch-136 + + add ability to turn off more tests, and a secret (for now) -X option to do + the sftp tests via loopback socket. added another symlink sftp test to see + what happens with absolute symlinks. + + + modified files: + test.py tests/test_sftp.py + + +2004-12-19 19:50:00 GMT Robey Pointer <robey@lag.net> patch-135 + + Summary: + more sftp cleanup + Revision: + secsh--dev--1.0--patch-135 + + oops, this should've been part of the last patch. + + + modified files: + paramiko/sftp_si.py + + +2004-12-19 19:43:27 GMT Robey Pointer <robey@lag.net> patch-134 + + Summary: + cleanup & docs in sftp + Revision: + secsh--dev--1.0--patch-134 + + add some more docs to SFTPHandle, and give a default implementation for + close() that's usually right. add a flush() to the default implementation + of write(). document that symlink's args in the sftp protocol are out of + order (the spec is wrong). + + + modified files: + paramiko/sftp_handle.py paramiko/sftp_server.py + + +2004-12-13 07:32:14 GMT Robey Pointer <robey@lag.net> patch-133 + + Summary: + unit test madness + Revision: + secsh--dev--1.0--patch-133 + + add some more testy bits and fix up some other bits. + + + modified files: + tests/test_transport.py + + +2004-12-13 07:31:01 GMT Robey Pointer <robey@lag.net> patch-132 + + Summary: + oops (continued) + Revision: + secsh--dev--1.0--patch-132 + + er, part 2 of that. + + + modified files: + paramiko/server.py + + +2004-12-13 07:29:38 GMT Robey Pointer <robey@lag.net> patch-131 + + Summary: + move check_global_request + Revision: + secsh--dev--1.0--patch-131 + + move check_global_request into the server interface -- i missed it during + the initial move (oops). + + + modified files: + paramiko/transport.py + + +2004-12-13 07:27:39 GMT Robey Pointer <robey@lag.net> patch-130 + + Summary: + small fixups + Revision: + secsh--dev--1.0--patch-130 + + move _wait_for_send_window into the right place in Channel. remove outdated + note from auth_transport. fix download url in setup.py. + + + + modified files: + paramiko/auth_transport.py paramiko/channel.py setup.py + + +2004-12-12 09:58:40 GMT Robey Pointer <robey@lag.net> patch-129 + + Summary: + 1.1 (kabuto) + Revision: + secsh--dev--1.0--patch-129 + + edit various files to bump the version to 1.1. + also fix to point to the new url. + + + modified files: + Makefile README paramiko/__init__.py paramiko/transport.py + setup.py + + +2004-12-12 09:38:24 GMT Robey Pointer <robey@lag.net> patch-128 + + Summary: + more unit tests + Revision: + secsh--dev--1.0--patch-128 + + added unit tests for multi-part auth, exec_command, and invoke_shell. + + + modified files: + tests/test_transport.py + + +2004-12-12 09:32:17 GMT Robey Pointer <robey@lag.net> patch-127 + + Summary: + doc fixups + Revision: + secsh--dev--1.0--patch-127 + + fix some typos in sftp_client docs + + + modified files: + paramiko/sftp_client.py + + +2004-12-12 09:25:15 GMT Robey Pointer <robey@lag.net> patch-126 + + Summary: + server support for stderr & exec_command + Revision: + secsh--dev--1.0--patch-126 + + for the server side of my stderr blunder, add send_stderr & sendall_stderr, + and make the sending side of makefile_stderr work correctly. + + also, call check_channel_exec_request on a server object for exec requests + on a channel. + + + modified files: + paramiko/channel.py paramiko/server.py + + +2004-12-12 09:16:03 GMT Robey Pointer <robey@lag.net> patch-125 + + Summary: + add client-side multi-part auth support + Revision: + secsh--dev--1.0--patch-125 + + added support for multi-part authentication (even though nobody supports it + that i've seen). on a successful "partial" auth, the auth_* method will + return a list of acceptable means to continue authenticating. + + + modified files: + paramiko/auth_transport.py paramiko/ssh_exception.py + + +2004-12-11 03:44:33 GMT Robey Pointer <robey@lag.net> patch-124 + + Summary: + docs fixup + Revision: + secsh--dev--1.0--patch-124 + + fix a comment typo, and add @since designators to a couple of new methods. + + + modified files: + paramiko/channel.py paramiko/sftp_server.py + + +2004-12-11 03:43:18 GMT Robey Pointer <robey@lag.net> patch-123 + + Summary: + clean up authentication + Revision: + secsh--dev--1.0--patch-123 + + add new exception "BadAuthenticationType", which is raised when auth fails + because your auth type (password or public-key) isn't valid on the server. + + used this as an excuse to clean up auth_password and auth_publickey so their + 'event' arg is optional, and if missing, they block until auth is finished, + raising an exception on error. + + also, don't close the session on failed auth -- the server may let you try + again. + + added some test cases for failed auth. + + + modified files: + paramiko/__init__.py paramiko/auth_transport.py + paramiko/ssh_exception.py paramiko/transport.py + tests/test_transport.py + + +2004-12-10 08:30:44 GMT Robey Pointer <robey@lag.net> patch-122 + + Summary: + symlink, readlink + Revision: + secsh--dev--1.0--patch-122 + + add support for symlink command, and finish support for readlink. (i guess + i started readlink a while ago but forgot to add the right method to the + SFTPServerInterface class.) + + + modified files: + paramiko/sftp_server.py paramiko/sftp_si.py tests/test_sftp.py + + +2004-12-10 08:27:43 GMT Robey Pointer <robey@lag.net> patch-121 + + Summary: + other part of that last patch + Revision: + secsh--dev--1.0--patch-121 + + oops, forgot this part. + + modified files: + paramiko/transport.py + + +2004-12-10 08:25:28 GMT Robey Pointer <robey@lag.net> patch-120 + + Summary: + add stderr support methods + Revision: + secsh--dev--1.0--patch-120 + + big embarrassment: i didn't read the ssh2 docs close enough, and all this + time paramiko wasn't handling "extended_data" packets, which contain stderr + output. + + so now, several new functions: recv_stderr_ready() and recv_stderr() to + mirror recv_ready() and recv(), and set_combined_stderr() to force stderr + to be combined into stdout. also, makefile_stderr() to create a fake file + object to represent stderr. + + + modified files: + paramiko/channel.py + + +2004-12-10 07:55:33 GMT Robey Pointer <robey@lag.net> patch-119 + + Summary: + reformat README + Revision: + secsh--dev--1.0--patch-119 + + reformatted the README to a slightly smaller margin, just because. + + + modified files: + README + + +2004-12-09 04:15:12 GMT Robey Pointer <robey@lag.net> patch-118 + + Summary: + fix SFTPFile gettimeout/settimeout + Revision: + secsh--dev--1.0--patch-118 + + i don't think the gettimeout/settimeout calls on SFTPFile ever worked. + also, simplify the implementation of _get_size() since it's nearly + identical to stat(). + + + modified files: + paramiko/sftp_file.py + + +2004-12-09 02:42:36 GMT Robey Pointer <robey@lag.net> patch-117 + + Summary: + readme comments + Revision: + secsh--dev--1.0--patch-117 + + add another fixme to the readme + + modified files: + README + + +2004-11-26 22:07:31 GMT Robey Pointer <robey@lag.net> patch-116 + + Summary: + doc fixups + Revision: + secsh--dev--1.0--patch-116 + + explain "recv_ready" better, and add debug descriptions for the kex codes. + + + modified files: + README paramiko/channel.py paramiko/common.py + + +2004-11-25 19:39:34 GMT Robey Pointer <robey@lag.net> patch-115 + + Summary: + fix CONNECTION_FAILED_CODE + Revision: + secsh--dev--1.0--patch-115 + + oops, fix typo in channel request failed. + + modified files: + paramiko/transport.py + + +2004-11-22 07:40:39 GMT Robey Pointer <robey@lag.net> patch-114 + + Summary: + fix typo in channel + Revision: + secsh--dev--1.0--patch-114 + + fix typo that alain found: pipd_wfd -> pipe_wfd. + + + modified files: + paramiko/channel.py + + +2004-11-22 07:27:21 GMT Robey Pointer <robey@lag.net> patch-113 + + Summary: + sftp server support! + Revision: + secsh--dev--1.0--patch-113 + + finally check in sftp_handle (file handle abstraction), sftp_si (server + interface), and sftp_server (server implementation) -- all of which make + a roughly 90% implementation of server-side sftp. + + + + new files: + paramiko/.arch-ids/sftp_handle.py.id + paramiko/.arch-ids/sftp_server.py.id + paramiko/.arch-ids/sftp_si.py.id paramiko/sftp_handle.py + paramiko/sftp_server.py paramiko/sftp_si.py + + modified files: + README demo_windows.py paramiko/__init__.py + + +2004-11-22 07:07:08 GMT Robey Pointer <robey@lag.net> patch-112 + + Summary: + add finish_subsystem() + Revision: + secsh--dev--1.0--patch-112 + + when a SubsystemHandler is being decomissioned (the client has closed the + channel or transport, or the socket went away), make a callback to let the + handler do any shutdown it needs to. + + + modified files: + paramiko/server.py + + +2004-11-22 07:04:31 GMT Robey Pointer <robey@lag.net> patch-111 + + Summary: + fix extremely unlikely channel counter wrapping + Revision: + secsh--dev--1.0--patch-111 + + Transport's channel counter can overflow after 4 billion some channels are + created. make it wrap back around after 16 million instead. also allow the + logging channel to be set manually. fix some comments elsewhere. + + + modified files: + paramiko/channel.py paramiko/primes.py paramiko/transport.py + + +2004-11-22 07:01:43 GMT Robey Pointer <robey@lag.net> patch-110 + + Summary: + fix Transport.get_username() to work in server mode too + Revision: + secsh--dev--1.0--patch-110 + + whenever i split the 'username' field into username and auth_username, + i guess that made get_username() stop working for server mode (because the + username was stored in a different field). this should fix it. + + modified files: + paramiko/auth_transport.py + + +2004-11-07 03:10:53 GMT Robey Pointer <robey@lag.net> patch-109 + + Summary: + v1.0 (jigglypuff) + Revision: + secsh--dev--1.0--patch-109 + + bump all the version numbers up to 1.0 (jigglypuff). + + modified files: + Makefile README paramiko/__init__.py paramiko/transport.py + setup.py + + +2004-11-07 02:51:42 GMT Robey Pointer <robey@lag.net> patch-108 + + Summary: + add filename to SFTPAttributes + Revision: + secsh--dev--1.0--patch-108 + + add filename to the attributes stored in an SFTPAttributes object. + + modified files: + paramiko/sftp_attr.py + + +2004-11-07 02:31:48 GMT Robey Pointer <robey@lag.net> patch-107 + + Summary: + fix kex_gex + Revision: + secsh--dev--1.0--patch-107 + + fix kex_gex (group-exchange key exchange) to, *cough*, work again, and also + layout kex_group1 a little more sanely. + + modified files: + paramiko/kex_gex.py paramiko/kex_group1.py + + +2004-11-07 02:29:54 GMT Robey Pointer <robey@lag.net> patch-106 + + Summary: + fix chmod +x on demo_windows.py + Revision: + secsh--dev--1.0--patch-106 + + forgot to make demo_windows +x + + +2004-11-07 02:29:20 GMT Robey Pointer <robey@lag.net> patch-105 + + Summary: + move ChangeLog + Revision: + secsh--dev--1.0--patch-105 + + move ChangeLog out of the way because tla can autogenerate any useful + ChangeLog. + + + renamed files: + .arch-ids/ChangeLog.id + ==> .arch-ids/ChangeLog-old.id + ChangeLog + ==> ChangeLog-old + + +2004-11-07 02:28:33 GMT Robey Pointer <robey@lag.net> patch-104 + + Summary: + fix location of SFTPError + Revision: + secsh--dev--1.0--patch-104 + + fix location of SFTPError. + + modified files: + paramiko/__init__.py paramiko/sftp_client.py + + +2004-11-07 02:17:18 GMT Robey Pointer <robey@lag.net> patch-103 + + Summary: + rename sftp constants + Revision: + secsh--dev--1.0--patch-103 + + replace oddly named sftp constants (FX_OK for example) with names that make + a bit more sense when sober (SFTP_OK). + + modified files: + paramiko/__init__.py paramiko/sftp.py paramiko/sftp_client.py + + +2004-11-07 02:08:11 GMT Robey Pointer <robey@lag.net> patch-102 + + Summary: + add key exchange tests + 1 more sftp test + Revision: + secsh--dev--1.0--patch-102 + + add test suite for key-exchange protocols, since i apparently broke the + "gex" protocol recently and never noticed. also add an sftp unit test for + mkdir/rmdir. + + new files: + tests/.arch-ids/test_kex.py.id tests/test_kex.py + + modified files: + test.py tests/test_sftp.py + + +2004-11-07 02:00:50 GMT Robey Pointer <robey@lag.net> patch-101 + + Summary: + remove old demo keys + Revision: + secsh--dev--1.0--patch-101 + + the keys are in tests/ now. + + removed files: + .arch-ids/demo_dss_key.id .arch-ids/demo_rsa_key.id + demo_dss_key demo_rsa_key + + +2004-11-06 20:32:08 GMT Robey Pointer <robey@lag.net> patch-100 + + Summary: + don't forget demo_windows.py + Revision: + secsh--dev--1.0--patch-100 + + update MANIFEST.in to include demo_windows.py and not include the demo + keys (they're in tests/ now). clean up the README to explain the demo + scripts better now, since there are so many of them. then fix up the + demo scripts to look in tests/ for the keys. + + demo_windows.py doesn't need to call get_pty() (in fact, i think that's + blowing openssh's mind) and was executing the wrong command. + + + modified files: + MANIFEST.in README demo_server.py demo_simple.py + demo_windows.py + + +2004-11-01 07:07:48 GMT Robey Pointer <robey@lag.net> patch-99 + + Summary: + use getpass + Revision: + secsh--dev--1.0--patch-99 + + convert raw_input to getpass as suggested many weeks ago. + + modified files: + forward.py + + +2004-11-01 03:54:01 GMT Robey Pointer <robey@lag.net> patch-98 + + Summary: + don't unlink a Channel until the server closes it too + Revision: + secsh--dev--1.0--patch-98 + + when close()'ing a Channel, don't immediately unlink it from the Transport. + instead, wait for the server to send a close message. + + this should fix a bug where doing close() on an EOF'd channel would cause + the entire transport to be killed, because the server would send an + 'exit-status' and 'close' message for a channel that we no longer had a + record of. + + + modified files: + paramiko/channel.py + + +2004-11-01 03:43:28 GMT Robey Pointer <robey@lag.net> patch-97 + + Summary: + better debugging, improve subsytem handler + Revision: + secsh--dev--1.0--patch-97 + + add a list of ssh packet names for debugging. improve the server-mode + subsystem handler so it can take extra parameters (list or keyword) and + pass them to the subsystem constructor. remove a misleading comment + about rekeying (which was already implemented). + + + modified files: + paramiko/common.py paramiko/server.py paramiko/transport.py + + +2004-11-01 03:37:42 GMT Robey Pointer <robey@lag.net> patch-96 + + Summary: + remove key.valid check + Revision: + secsh--dev--1.0--patch-96 + + oops! 'key.valid' no longer works -- catch the SSHException instead, and log + it. + + + modified files: + paramiko/auth_transport.py + + +2004-10-23 07:36:23 GMT Robey Pointer <robey@lag.net> patch-95 + + Summary: + ivysaur 0.9 + Revision: + secsh--dev--1.0--patch-95 + + update ivysaur release date, and add the list of changes to the README + file. + + + modified files: + Makefile README paramiko/__init__.py + + +2004-10-20 16:52:51 GMT Robey Pointer <robey@lag.net> patch-94 + + Summary: + start testing Transport + Revision: + secsh--dev--1.0--patch-94 + + the beginnings of tests for Transport. only the bare minimum is there right + now. + + also started doc'ing things up to ivysaur. + + new files: + .arch-ids/demo_windows.py.id demo_windows.py + tests/.arch-ids/loop.py.id + tests/.arch-ids/test_transport.py.id tests/loop.py + tests/test_transport.py + + modified files: + Makefile README paramiko/__init__.py setup.py test.py + + +2004-10-18 04:54:27 GMT Robey Pointer <robey@lag.net> patch-93 + + Summary: + switch Transport.connect() to using a Pkey object for the host key + Revision: + secsh--dev--1.0--patch-93 + + i suddenly realized that passing "hostkeytype" and "hostkey" as strings to + Transport.connect() was pretty silly since i went to all the effort of making + a class specifically for holding keys. so Transport.connect() now just takes + host-key argument: "hostkey" as a PKey object. + + updated the demos to use PKey objects when reading the host key file, and to + use the new "hostkey" argument. + + + modified files: + demo.py demo_simple.py paramiko/pkey.py paramiko/transport.py + + +2004-09-25 22:07:59 GMT Robey Pointer <robey@lag.net> patch-92 + + Summary: + add rsa/dss key object unit tests + Revision: + secsh--dev--1.0--patch-92 + + add tests for rsa/dss key objects -- yay! + + + new files: + tests/.arch-ids/test_dss.key.id + tests/.arch-ids/test_pkey.py.id + tests/.arch-ids/test_rsa.key.id tests/test_dss.key + tests/test_pkey.py tests/test_rsa.key + + +2004-09-25 22:03:48 GMT Robey Pointer <robey@lag.net> patch-91 + + Summary: + fix test.py to use options instead of env vars, sftp tests default off + Revision: + secsh--dev--1.0--patch-91 + + fix up the test framework so that the sftp unit tests aren't always run (you + have to ask for them explicitly) and they take their configuration from + command-line options. they still require a remote server. + + modified files: + test.py tests/test_sftp.py + + +2004-09-25 21:58:11 GMT Robey Pointer <robey@lag.net> patch-90 + + Summary: + fix __init__ + Revision: + secsh--dev--1.0--patch-90 + + fix __init__ to export BufferedFile and randpool, and to catch up with the + changes from a week or 2 ago where sftp_attr & friends were split off. + + modified files: + paramiko/__init__.py + + +2004-09-25 21:47:19 GMT Robey Pointer <robey@lag.net> patch-89 + + Summary: + fix some Transport docs + Revision: + secsh--dev--1.0--patch-89 + + document that Transport also would like close() and settimeout() to exist + on the socket-like object passed to the constructor. + + modified files: + paramiko/transport.py + + +2004-09-25 21:32:53 GMT Robey Pointer <robey@lag.net> patch-88 + + Summary: + add Message.rewind() + Revision: + secsh--dev--1.0--patch-88 + + add rewind() method to Message, which just resets the pointer so you can + start reading from the beginning again. this is useful for some tests. + + modified files: + paramiko/message.py tests/test_message.py + + +2004-09-25 21:28:23 GMT Robey Pointer <robey@lag.net> patch-87 + + Summary: + clean up pkey interface + Revision: + secsh--dev--1.0--patch-87 + + change the pkey interface so that it's no longer possible to have a pkey + that doesn't represent a valid key. (ie: no more "blank" key objects.) + also add "get_bits" and "can_sign" methods to determine the key bit length + and whether it can sign things (contains the "private parts") respectively. + + modified files: + paramiko/dsskey.py paramiko/pkey.py paramiko/rsakey.py + + +2004-09-11 21:01:32 GMT Robey Pointer <robey@lag.net> patch-86 + + Summary: + unit tests for Message + Revision: + secsh--dev--1.0--patch-86 + + spanking new unit tests for Message. i'm trying to fix the embarrassment + of having so little of paramiko testable. next up is Transport! + + new files: + tests/.arch-ids/test_message.py.id tests/test_message.py + + +2004-09-11 20:56:01 GMT Robey Pointer <robey@lag.net> patch-85 + + Summary: + move SFTPFile and SFTPAttributes into their own files + Revision: + secsh--dev--1.0--patch-85 + + move SFTPFile and SFTPAttributes into their own files. + + new files: + paramiko/.arch-ids/sftp_attr.py.id + paramiko/.arch-ids/sftp_file.py.id paramiko/sftp_attr.py + paramiko/sftp_file.py + + modified files: + paramiko/sftp.py paramiko/sftp_client.py + + +2004-09-11 20:50:39 GMT Robey Pointer <robey@lag.net> patch-84 + + Summary: + add sftp.normalize + Revision: + secsh--dev--1.0--patch-84 + + kevin c. dorff pointed out that it would be nice to expose a way to + determine the server's "current working directory", so this new method + (normalize) directly maps to REALPATH. + + modified files: + paramiko/sftp_client.py + + +2004-09-11 20:43:09 GMT Robey Pointer <robey@lag.net> patch-83 + + Summary: + tweak Message.add() in the key exchanges + Revision: + secsh--dev--1.0--patch-83 + + use the new Message.add() behavior to make a little code here much easier + to read. + + modified files: + paramiko/kex_gex.py paramiko/kex_group1.py + + +2004-09-11 20:40:08 GMT Robey Pointer <robey@lag.net> patch-82 + + Summary: + doc fixes + Revision: + secsh--dev--1.0--patch-82 + + fix "string" -> "str" in types when documenting BufferedFile. + + modified files: + paramiko/file.py + + +2004-09-11 20:37:59 GMT Robey Pointer <robey@lag.net> patch-81 + + Summary: + more unit tests + Revision: + secsh--dev--1.0--patch-81 + + add test for BufferedFile.read(-1) and sftp.normalize(). + + modified files: + tests/test_file.py tests/test_sftp.py + + +2004-09-11 20:36:49 GMT Robey Pointer <robey@lag.net> patch-80 + + Summary: + move SubsystemHandler to server.py + Revision: + secsh--dev--1.0--patch-80 + + move SubsystemHandler into server.py where it makes more sense (it's part of + the server interface). + + also fix up paramiko's "version string" used in ssh2 negotiation to stop + saying "pyssh" and start saying "paramiko". :) + + modified files: + paramiko/server.py paramiko/transport.py + + +2004-09-11 20:35:19 GMT Robey Pointer <robey@lag.net> patch-79 + + Summary: + Message.add() can take many args + Revision: + secsh--dev--1.0--patch-79 + + a bit of cleanup to Message: add() can now take any number of params, and + will add them all in order (using type guessing). + + modified files: + paramiko/message.py + + +2004-09-09 01:36:45 GMT Robey Pointer <robey@lag.net> patch-78 + + Summary: + fix rbuffer -> _rbuffer in 3 places i missed + Revision: + secsh--dev--1.0--patch-78 + + fix 3 places where "rbuffer" hadn't been converted to "_rbuffer". thanks to + kevin c. dorff for the bug report. + + modified files: + paramiko/file.py + + +2004-09-07 06:56:49 GMT Robey Pointer <robey@lag.net> patch-77 + + Summary: + docs for SubsystemHandler + Revision: + secsh--dev--1.0--patch-77 + + add documentation to constructor for SubsystemHandler. + + modified files: + paramiko/transport.py + + +2004-09-07 06:54:31 GMT Robey Pointer <robey@lag.net> patch-76 + + Summary: + add sftp_client.py + Revision: + secsh--dev--1.0--patch-76 + + i retardedly forgot to import this file a few days ago: it's the split-out + client mode for sftp. it now also has some changes to adapt it to the + improved SFTPAttributes object API. + + new files: + paramiko/.arch-ids/sftp_client.py.id paramiko/sftp_client.py + + +2004-09-07 06:51:03 GMT Robey Pointer <robey@lag.net> patch-75 + + Summary: + clean up SFTPAttributes + Revision: + secsh--dev--1.0--patch-75 + + add english descriptions to the FX_* error codes of sftp. clean up (and + document) SFTPAttributes since it's exported now, and make it simple to + generate one from a python os.stat object. make "_pythonize" the default -- + that is, just use the same field names as python does for os.stat. (i'm not + sure why i didn't do it that way in the first place; probably ignorance.) + also add str() method that converts the SFTPAttributes into a string suitable + for use in ls (used in an obscure way in sftp servers). + + modified files: + paramiko/sftp.py + + +2004-09-07 06:45:53 GMT Robey Pointer <robey@lag.net> patch-74 + + Summary: + note pycrypto 2.0 in README + Revision: + secsh--dev--1.0--patch-74 + + update the README to note that pycrypto 2.0 works (i just tried it). also + fix the name from pyCrypt back to pycrypto -- that project is having trouble + making up its mind about naming. :) + + modified files: + README + + +2004-09-05 07:44:03 GMT Robey Pointer <robey@lag.net> patch-73 + + Summary: + split sftp into sftp, sftp_client; renamed SFTP -> SFTPClient + Revision: + secsh--dev--1.0--patch-73 + + add sftp_client file, and split out the common code (sftp) from stuff specific + to client mode (sftp_client). renamed SFTP class to SFTPClient, but left an + alias so old code will still work. + + renamed a bunch of sftp constants now that they're better hidden from epydoc. + + modified files: + README paramiko/__init__.py paramiko/sftp.py + + +2004-09-05 07:41:45 GMT Robey Pointer <robey@lag.net> patch-72 + + Summary: + some framework for adding subsystem handlers in server mode + Revision: + secsh--dev--1.0--patch-72 + + you can now register a subsystem with a Transport by passing in the name + (like "sftp") and a class (like a hypothetical SFTPServer). the default + ServerInterface.check_channel_request_subsystem now checks this table in + Transport, and if it finds a match, it creates a new thread for the handler + and calls into it. a new class SubsystemHandler is added for this purpose + (to be subclassed). + + modified files: + paramiko/server.py paramiko/transport.py + + +2004-09-05 07:37:40 GMT Robey Pointer <robey@lag.net> patch-71 + + Summary: + remove redundant 'auth_complete' member + Revision: + secsh--dev--1.0--patch-71 + + remove the redundant 'auth_complete' field and just use 'authenticated' for + both client and server mode. this makes the repr() string look correct in + server mode instead of always claiming that the transport is un-auth'd. + + modified files: + paramiko/auth_transport.py + + +2004-09-03 22:39:20 GMT Robey Pointer <robey@lag.net> patch-70 + + Summary: + clean up server interface; no longer need to subclass Channel + Revision: + secsh--dev--1.0--patch-70 + + - export AUTH_*, OPEN_FAILED_*, and the new OPEN_SUCCEEDED into the paramiko + namespace instead of making people dig into paramiko.Transport.AUTH_* etc. + - move all of the check_* methods from Channel to ServerInterface so apps + don't need to subclass Channel anymore just to run an ssh server + - ServerInterface.check_channel_request() returns an error code now, not a + new Channel object + - fix demo_server.py to follow all these changes + - fix a bunch of places where i used "string" in docstrings but meant "str" + - added Channel.get_id() + + modified files: + README demo_server.py paramiko/__init__.py + paramiko/auth_transport.py paramiko/channel.py + paramiko/common.py paramiko/server.py paramiko/sftp.py + paramiko/transport.py + + +2004-08-31 02:44:56 GMT Robey Pointer <robey@lag.net> patch-69 + + Summary: + clean up SecurityOptions + Revision: + secsh--dev--1.0--patch-69 + + the preferences are now tuples in Transport, and passed as tuples out of + SecurityOptions, so that the options can't be modified without setting them + back to the options field again. the algorithm lists in Transport are used + to validate the fields. + + modified files: + paramiko/transport.py + + +2004-08-30 20:22:10 GMT Robey Pointer <robey@lag.net> patch-68 + + Summary: + added Transport.get_security_options() + Revision: + secsh--dev--1.0--patch-68 + + just something i wanted to play with: + added Transport.get_security_options() which returns a SecurityOptions object. + this object is a kind of proxy for the 4 "preferred_*" fields in Transport, + and lets me avoid exposing those fields directly in case i change my mind + later about how they should be stored. + + added some docs to Channel explaining that the request methods now return + True/False, and fixed up docs in a few other places. + + modified files: + paramiko/__init__.py paramiko/channel.py paramiko/server.py + paramiko/sftp.py paramiko/transport.py + + +2004-08-28 04:21:12 GMT Robey Pointer <robey@lag.net> patch-67 + + Summary: + replay patch 63 (missing channel changes) + Revision: + secsh--dev--1.0--patch-67 + + i'm still getting the hang of tla/arch, obviously. + + replay patch 63, which was meant to be part of the later mega-patch, but + apparently when i reversed it, i lost it entirely. + + modified files: + paramiko/channel.py + + +2004-08-27 00:57:40 GMT Robey Pointer <robey@lag.net> patch-66 + + Summary: + new ServerInterface class, outbound rekey works, etc. + Revision: + secsh--dev--1.0--patch-66 + + a bunch of changes that i'm too lazy to split out into individual patches: + * all the server overrides from transport.py have been moved into a separate + class ServerInterface, so server code doesn't have to subclass the whole + paramiko library + * updated demo_server to subclass ServerInterface + * when re-keying during a session, block other messages until the new keys + are activated (openssh doensn't like any other traffic during a rekey) + * re-key when outbound limits are tripped too (was only counting inbound + traffic) + * don't log scary things on EOF + + + new files: + paramiko/.arch-ids/server.py.id paramiko/server.py + + modified files: + README demo_server.py paramiko/__init__.py + paramiko/auth_transport.py paramiko/transport.py + + +2004-08-27 00:28:33 GMT Robey Pointer <robey@lag.net> patch-65 + + Summary: + add settimeout/gettimeout/setblocking, some bugfixes. + Revision: + secsh--dev--1.0--patch-65 + + hide the command and response codes in sftp so they aren't exported. + add settimeout/gettimeout/setblocking that just wrap calls to the underlying + socket or channel. fix _read_all to not catch timeout exceptions. + + + modified files: + paramiko/sftp.py + + +2004-08-27 00:26:35 GMT Robey Pointer <robey@lag.net> patch-64 + + Summary: + reverse messed-up patch + Revision: + secsh--dev--1.0--patch-64 + + Patches applied: + + * robey@lag.net--2003-public/secsh--dev--1.0--base-0 + initial import + + * robey@lag.net--2003-public/secsh--dev--1.0--patch-1 + no changes + + + modified files: + paramiko/channel.py {arch}/=tagging-method + + +2004-08-27 00:06:42 GMT Robey Pointer <robey@lag.net> patch-63 + + Summary: + add settimeout/gettimeout/setblocking, some bugfixes. + Revision: + secsh--dev--1.0--patch-63 + + hide the command and response codes in sftp so they aren't exported. + add settimeout/gettimeout/setblocking that just wrap calls to the underlying + socket or channel. fix _read_all to not catch timeout exceptions. + + modified files: + paramiko/channel.py + + +2004-06-27 20:14:15 GMT Robey Pointer <robey@lag.net> patch-62 + + Summary: + version -> horsea + Revision: + secsh--dev--1.0--patch-62 + + up version to horsea. + + modified files: + Makefile README paramiko/__init__.py setup.py + {arch}/secsh/secsh--dev/secsh--dev--1.0/robey@lag.net--2003-public/patch-log/patch-1 + + +2004-06-10 18:12:00 GMT Robey Pointer <robey@lag.net> patch-61 + + Summary: + no more Foobar + Revision: + secsh--dev--1.0--patch-61 + + fix "Foobar" to be "Paramiko" in the one place i missed it in all the gpl + headers. sigh. :) + + modified files: + paramiko/__init__.py paramiko/auth_transport.py + paramiko/ber.py paramiko/common.py paramiko/dsskey.py + paramiko/kex_gex.py paramiko/kex_group1.py + paramiko/logging22.py paramiko/message.py paramiko/pkey.py + paramiko/primes.py paramiko/rsakey.py + paramiko/ssh_exception.py paramiko/util.py test.py + + +2004-06-10 18:08:50 GMT Robey Pointer <robey@lag.net> patch-60 + + Summary: + limit read/write requests to 32KB, advertise 32KB max packet size + Revision: + secsh--dev--1.0--patch-60 + + one of the unit tests was failing because the openssh sftp server was dropping + the connection without any error. turns out they have a maximum allowed write + size (possibly around 64KB). the sftp rfcs have a small hint that some servers + may drop read/write requests of greater than 32KB. + + so, all reads are limited to 32KB, and all writes > 32KB are now chopped up + and sent in 32KB chunks. this seems to keep openssh happy. + + also, we now advertise 32KB max packet size instead of 8KB (the speed + improves a lot), and log when we read/write a packet. and sftp files are + flushed on seek. + + modified files: + paramiko/sftp.py paramiko/transport.py + + +2004-06-10 18:02:13 GMT Robey Pointer <robey@lag.net> patch-59 + + Summary: + speed up parts of BufferedFile + Revision: + secsh--dev--1.0--patch-59 + + BufferedFile uses cStringIO for the write buffer now (i don't actually notice + any speed difference so this might revert later) and the default buffer size + has been upped from 1KB to 8KB. + + when scanning for linefeeds (when writing to a line-buffered file), only scan + the newly-written bytes, since we know all the previously buffered data is + linefeed-free. this was the #1 slowdown on the 1MB-file unit test. + + also, limit the buffering on line-buffered files to whatever the default + buffer size is. there's no reason to buffer 1MB waiting for a linefeed. + + modified files: + paramiko/file.py + + +2004-06-10 17:55:17 GMT Robey Pointer <robey@lag.net> patch-58 + + Summary: + some Channel fixes for max packet size & blocking on zero window + Revision: + secsh--dev--1.0--patch-58 + + some clean-ups and fixes to channels: + * when send() is blocked on a zero-width window, check that the channel is + still open. this was causing some lockups. + * set a lower bound to the "maximum packet size" we accept from the remote + host. if they tell us anything less than 1KB, assume they meant 1KB. (it's + not reasonable to fragment below that.) + * leave a little padding instead of cutting right up to the maximum packet + size: some space will be taken up by protocol overhead. + * turn off some of the debug log lines unless "ultra_debug" is on (nobody + cares about the feed info) + + + modified files: + paramiko/channel.py + + +2004-06-10 17:35:30 GMT Robey Pointer <robey@lag.net> patch-57 + + Summary: + more unit tests + Revision: + secsh--dev--1.0--patch-57 + + add a unit test for sending a large (1MB) file with line buffering but no + linefeeds (this triggered several bugs and inefficiencies), and another test + to verify that the write buffer is flushed on seek. + + modified files: + tests/test_file.py tests/test_sftp.py + + +2004-05-31 23:48:10 GMT Robey Pointer <robey@lag.net> patch-56 + + Summary: + add forward.py demo script; bump to gyarados + Revision: + secsh--dev--1.0--patch-56 + + add a demo script to show how to do local port forwarding. + + add gyarados to all the docs and bump the version number everywhere. + + new files: + .arch-ids/forward.py.id forward.py + + modified files: + MANIFEST.in Makefile README paramiko/__init__.py setup.py + + +2004-05-29 18:58:11 GMT Robey Pointer <robey@lag.net> patch-55 + + Summary: + add an sftp unit test for making 100 files + Revision: + secsh--dev--1.0--patch-55 + + create 100 files on the remote server, set their mode with chmod, then verify + that they're all there and contain the right data. valeriy is reporting that + sometimes he's getting stuck after 20 and though i'm not seeing it, i want to + add a test to try to pin it down. + + modified files: + tests/test_sftp.py + + +2004-05-29 18:56:10 GMT Robey Pointer <robey@lag.net> patch-54 + + Summary: + add direct-tcpip ability to open_channel + Revision: + secsh--dev--1.0--patch-54 + + open_channel can now be given a dest_addr and src_addr, which are filled in + if the channel type is "forwarded-tcpip" or "direct-tcpip". these channel + types are used in remote & local port forwarding, respectively. i've only + tested "direct-tcpip" but i think if one works, they both should work. + + also fixed a bug in connect where it was still assuming the old meaning for + get_remove_server_key() (oops!) and changed the sense of a send() failure + from <= 0 to < 0 since it may be possible for send() to return 0 and it not + be an EOF error. + + modified files: + paramiko/transport.py + + +2004-05-29 18:48:23 GMT Robey Pointer <robey@lag.net> patch-53 + + Summary: + add note about utf8 encodings + Revision: + secsh--dev--1.0--patch-53 + + add info to the README about what to do if python complains about missing + encodings. veleriy pogrebitskiy ran into this and had advice. + + modified files: + README + + +2004-05-17 07:41:50 GMT Robey Pointer <robey@lag.net> patch-52 + + Summary: + fix deadlock in closing a channel + Revision: + secsh--dev--1.0--patch-52 + + closing a channel would enter an odd codepath where the lock was grabbed, + some stuff was done, then another function was called where the lock was + grabbed again. unfortunately python locks aren't monitors so this would + deadlock. instead, make the smaller function lock-free with an explicit + notice that you must be holding the lock before calling. + + modified files: + paramiko/channel.py + + +2004-05-17 00:43:43 GMT Robey Pointer <robey@lag.net> patch-51 + + Summary: + fix utf8, raise packet size, log exceptions, be more lax with sfp servers + Revision: + secsh--dev--1.0--patch-51 + + explicitly import utf8 encodings for "freezing" (and also because not all + platforms come with utf8, apparently). raise the max acceptable packet size + to 8kB, cuz 2kB was too low. log exceptions at error level instead of debug + level. and don't reject older sftp servers. + + modified files: + paramiko/auth_transport.py paramiko/sftp.py + paramiko/transport.py + + +2004-04-23 22:55:16 GMT Robey Pointer <robey@lag.net> patch-50 + + Summary: + fearow date and last-minute fixes + Revision: + secsh--dev--1.0--patch-50 + + update release date of fearow to 23apr. fix channel._set_closed() to grab + the lock before notifying the in/out buffers that the channel is closed. + try roger's trick for finding the home folder on windows. + + modified files: + Makefile README paramiko/__init__.py paramiko/channel.py + paramiko/common.py + + +2004-04-08 06:31:08 GMT Robey Pointer <robey@lag.net> patch-49 + + Summary: + fix doc typos + Revision: + secsh--dev--1.0--patch-49 + + + modified files: + paramiko/dsskey.py paramiko/rsakey.py paramiko/transport.py + + +2004-04-08 05:48:16 GMT Robey Pointer <robey@lag.net> patch-48 + + Summary: + set version number to fearow + Revision: + secsh--dev--1.0--patch-48 + + set version number to fearow. + + modified files: + Makefile README paramiko/__init__.py setup.py + + +2004-04-08 05:12:20 GMT Robey Pointer <robey@lag.net> patch-47 + + Summary: + add socket.timeout for py22 + Revision: + secsh--dev--1.0--patch-47 + + oops, forgot this vital part of the py22 patches. roger binns sent me a + code patch that included this snip. + + modified files: + paramiko/common.py + + +2004-04-07 16:05:48 GMT Robey Pointer <robey@lag.net> patch-46 + + Summary: + README update notes + Revision: + secsh--dev--1.0--patch-46 + + added notes on what's new, what to watch out for in py22. added a "since: + fearow" to all the relevant API calls that are new. + + modified files: + README paramiko/auth_transport.py paramiko/dsskey.py + paramiko/pkey.py paramiko/rsakey.py paramiko/transport.py + + +2004-04-07 15:52:07 GMT Robey Pointer <robey@lag.net> patch-45 + + Summary: + add set_keepalive() + Revision: + secsh--dev--1.0--patch-45 + + add set_keepalive() to set an automatic keepalive mechanism. (while waiting + for a packet on a connection, we periodically check if it's time to send a + keepalive packet.) + + modified files: + paramiko/transport.py + + +2004-04-07 06:07:29 GMT Robey Pointer <robey@lag.net> patch-44 + + Summary: + add get_username() method for remembering who you auth'd as + Revision: + secsh--dev--1.0--patch-44 + + add get_username() method for remembering who you auth'd as. also, fix these + bugs: + * "continue" auth response counted as a failure (in server mode). + * try to import 'logging' in py22 before falling back to the fake logger, + in case they have a backported version of 'logger' + * raise the right exception when told to read a private key from a file that + isn't a private key file + * tell channels to close when the transport dies + + modified files: + paramiko/auth_transport.py paramiko/channel.py + paramiko/common.py paramiko/pkey.py paramiko/transport.py + + +2004-04-06 22:03:21 GMT Robey Pointer <robey@lag.net> patch-43 + + Summary: + fix encrypted private key files + Revision: + secsh--dev--1.0--patch-43 + + the random byte padding on private key files' BER data was confusing openssh, + so switch to null-byte padding, which is slightly less secure but works with + crappy old openssh. also, enforce the mode when writing the private key + file. we really really want it to be 0600. (python seems to ignore the + mode normally.) + + modified files: + paramiko/pkey.py + + +2004-04-06 08:16:02 GMT Robey Pointer <robey@lag.net> patch-42 + + Summary: + support py22, more or less + Revision: + secsh--dev--1.0--patch-42 + + add roger binns' patches for supporting python 2.2. i hedged a bit on the + logging stuff and just added some trickery to let logging be stubbed out for + python 2.2. this changed a lot of import statements but i managed to avoid + hacking at any of the existing logging. + + socket timeouts are required for the threads to notice when they've been + deactivated. worked around it by using the 'select' module on py22. + + also fixed the sftp unit tests to cope with a password-protected private key. + + new files: + paramiko/.arch-ids/logging22.py.id paramiko/logging22.py + + modified files: + README demo.py demo_server.py demo_simple.py + paramiko/__init__.py paramiko/auth_transport.py + paramiko/channel.py paramiko/common.py paramiko/kex_gex.py + paramiko/kex_group1.py paramiko/message.py paramiko/sftp.py + paramiko/transport.py paramiko/util.py tests/test_sftp.py + + +2004-04-05 22:32:03 GMT Robey Pointer <robey@lag.net> patch-41 + + Summary: + make get_remote_server_key() return a PKey object + Revision: + secsh--dev--1.0--patch-41 + + a good suggestion from roger binns: make get_remote_server_key() just return + a pkey object instead of a tuple of strings. all the strings can be extracted + from the pkey object, as well as other potentially useful things. + + modified files: + demo.py paramiko/transport.py + + +2004-04-05 19:36:40 GMT Robey Pointer <robey@lag.net> patch-40 + + Summary: + add dss key generation too, and fix some bugs + Revision: + secsh--dev--1.0--patch-40 + + added the ability to generate dss keys and write private dss key files, + similar to rsa. in the process, fixed a couple of bugs with ber encoding + and writing password-encrypted key files. the key has to be padded to the + iblock size of the cipher -- it's very difficult to determine how the others + do this, so i just add random bytes to the end. + + fixed the simple demo to use Transport's (host, port) constructor for + simplicity, and fixed a bug where the standard demo's DSS login wouldn't + work. + + also, move the common logfile setup crap into util so all the demos can just + call that one. + + modified files: + demo.py demo_simple.py paramiko/ber.py paramiko/dsskey.py + paramiko/pkey.py paramiko/rsakey.py paramiko/util.py + + +2004-04-05 10:37:18 GMT Robey Pointer <robey@lag.net> patch-39 + + Summary: + add global request mechanism + Revision: + secsh--dev--1.0--patch-39 + + add transport.global_request() to make a global-style request (usually an + extension to the protocol -- like keepalives) and handle requests from the + remote host. incoming requests are now handled and responded to correctly, + which should make openssh-style keepalives work. (before, we would silently + ignore them, which was wrong.) + + modified files: + paramiko/common.py paramiko/message.py paramiko/transport.py + + +2004-04-05 10:24:33 GMT Robey Pointer <robey@lag.net> patch-38 + + Summary: + add common.py file + Revision: + secsh--dev--1.0--patch-38 + + missing from previous change because tla doesn't like to add files in some + situations. (frown) + + + new files: + paramiko/.arch-ids/common.py.id paramiko/common.py + + +2004-04-05 10:16:31 GMT Robey Pointer <robey@lag.net> patch-37 + + Summary: + can now generate rsa keys (not dss yet) + Revision: + secsh--dev--1.0--patch-37 + + added functionality to ber to create ber streams. added some common methods + to PKey to allow dumping the key to base64 (the format used by openssh for + public key files and host key lists), and a factory for creating a key from + a private key file, and a common way to save private keys. RSAKey luckily + didn't have to change that much. + + also added a factory method to RSAKey to generate a new key. + + + modified files: + paramiko/ber.py paramiko/pkey.py paramiko/rsakey.py + + +2004-04-05 10:12:59 GMT Robey Pointer <robey@lag.net> patch-36 + + Summary: + add common.py for commonly used constants and globals + Revision: + secsh--dev--1.0--patch-36 + + common.py now stores the constants and globals. + lots of renaming because of this. + + modified files: + paramiko/auth_transport.py paramiko/channel.py + paramiko/kex_gex.py paramiko/kex_group1.py + paramiko/transport.py paramiko/util.py + + +2004-04-02 02:41:43 GMT Robey Pointer <robey@lag.net> patch-35 + + Summary: + add send_ignore + Revision: + secsh--dev--1.0--patch-35 + + add send_ignore() call to allow for sending garbage ignored packets to the + remote side. + + modified files: + paramiko/transport.py + + +2004-03-16 07:33:09 GMT Robey Pointer <robey@lag.net> patch-34 + + Summary: + fix some arcana in unpacking private keys + Revision: + secsh--dev--1.0--patch-34 + + "!= type([])" is a pretty obscure way to say it. let's try "is not list" + which is a lot more readable. + + (mostly this is a test to make sure tla is working okay on my laptop.) + + modified files: + paramiko/dsskey.py paramiko/rsakey.py + + +2004-03-09 01:09:17 GMT Robey Pointer <robey@lag.net> patch-33 + + Summary: + include tests in manifest + Revision: + secsh--dev--1.0--patch-33 + + include the tests in the manifest for dist, and remove some outdated notes in + NOTES about the exported API (this is doc'd wayyy better in epydoc now). + + modified files: + MANIFEST.in NOTES + + +2004-03-08 17:54:19 GMT Robey Pointer <robey@lag.net> patch-32 + + Summary: + add unit tests + Revision: + secsh--dev--1.0--patch-32 + + add unit tests for BufferedFile and SFTP (it's a start). remove the demo sftp + client because it was 99% copied from the other demos, which makes it kinda + confusing. the unit tests are a much better example. + + new files: + .arch-ids/test.py.id test.py tests/.arch-ids/=id + tests/.arch-ids/test_file.py.id + tests/.arch-ids/test_sftp.py.id tests/test_file.py + tests/test_sftp.py + + removed files: + .arch-ids/demo_sftp.py.id demo_sftp.py + + new directories: + tests tests/.arch-ids + + +2004-03-08 17:52:25 GMT Robey Pointer <robey@lag.net> patch-31 + + Summary: + bump version number to eevee + Revision: + secsh--dev--1.0--patch-31 + + bump the version number to eevee in a few places and talk about the unit + tests. + + modified files: + Makefile README paramiko/__init__.py setup.py + + +2004-03-08 17:50:49 GMT Robey Pointer <robey@lag.net> patch-30 + + Summary: + finish up client sftp support + Revision: + secsh--dev--1.0--patch-30 + + added 'stat' to SFTPFile and SFTP, documented 'open' and 'listdir', and added + 'rmdir', 'lstat', 'symlink', 'chmod', 'chown', 'utime', 'readlink'. + + turned off ultra debugging now that the unit tests are all working. + + modified files: + paramiko/sftp.py + + +2004-03-08 17:45:44 GMT Robey Pointer <robey@lag.net> patch-29 + + Summary: + fix some docs and BufferedFile.readline + Revision: + secsh--dev--1.0--patch-29 + + fix some documentation and fix readline()'s universal newline support to + always return strings ending with '\n', regardless of how they were in the + original file. (this is an obvious feature of python's universal newline + support that i somehow missed before.) + + modified files: + paramiko/file.py paramiko/message.py + + +2004-03-08 09:47:47 GMT Robey Pointer <robey@lag.net> patch-28 + + Summary: + fix lingering thread bug + Revision: + secsh--dev--1.0--patch-28 + + this bug has been in there forever and i could never figure out a workaround + till now. + + when the python interpreter exits, it doesn't necessarily destroy the + remaining objects or call __del__ on anything, and it will lock up until all + threads finish running. how the threads are supposed to notice the exiting + interpreter has always been sort of a mystery to me. + + tonight i figured out how to use the 'atexit' module to register a handler + that runs when the interpreter exits. now we keep a list of active threads + and ask them all to exit on shutdown. no more going to another shell to + kill -9 python! yeah!! + + modified files: + paramiko/transport.py + + +2004-03-04 08:21:45 GMT Robey Pointer <robey@lag.net> patch-27 + + Summary: + add BufferedFile abstraction + Revision: + secsh--dev--1.0--patch-27 + + SFTP client mode is mostly functional. there are probably still some bugs + but most of the operations on "file" objects have survived my simple tests. + + BufferedFile wraps a simpler stream in something that looks like a python + file (and can even handle seeking if the stream underneath supports it). + it's meant to be subclassed. most of it is ripped out of what used to be + ChannelFile so i can reuse it for sftp -- ChannelFile is now tiny. + + SFTP and Message are now exported. + + fixed util.format_binary_line to not quote spaces. + + new files: + .arch-ids/demo_sftp.py.id demo_sftp.py + paramiko/.arch-ids/file.py.id paramiko/.arch-ids/sftp.py.id + paramiko/file.py paramiko/sftp.py + + modified files: + paramiko/__init__.py paramiko/channel.py paramiko/message.py + paramiko/util.py + + +2004-01-27 02:04:59 GMT Robey Pointer <robey@lag.net> patch-26 + + Summary: + Transport constructor can take hostname or address tuple + Revision: + secsh--dev--1.0--patch-26 + + part of an ongoing attempt to make "simple" versions of some of the API calls, + so you can do common-case operations with just a few calls: + + Transport's constructor will now let you pass in a string or tuple instead + of a socket-like object. if you pass in a string, it assumes the string is + a hostname (with optional ":port" segment) and turns that into an address + tuple. if you pass in a tuple, it assumes it's an address tuple. in both + cases, it then creates a socket, connects to the given address, and then + continues as if that was the socket passed in. + + the idea being that you can call Transport('example.com') and it will do + the right thing. + + modified files: + paramiko/transport.py + + +2004-01-27 02:00:19 GMT Robey Pointer <robey@lag.net> patch-25 + + Summary: + pkey no longer raises binascii.Error + Revision: + secsh--dev--1.0--patch-25 + + catch binascii.Error in the private key decoder and convert it into an + SSHException. there's no reason people should have to care that it was a + decoding error vs. any of the other million things that could be wrong in + a corrupt key file. + + modified files: + paramiko/pkey.py + + +2004-01-27 01:45:44 GMT Robey Pointer <robey@lag.net> patch-24 + + Summary: + document more of Message; add get_int64 + Revision: + secsh--dev--1.0--patch-24 + + all of the get_* methods are now documented, but there's a bit more to do. + get_int64 added for eventual sftp support. + + modified files: + paramiko/message.py + + +2004-01-04 10:33:05 GMT Robey Pointer <robey@lag.net> patch-23 + + Summary: + quick doc fix. + Revision: + secsh--dev--1.0--patch-23 + + fix broken cross-link in kex_gex docs. + + modified files: + paramiko/kex_gex.py + + +2004-01-04 10:26:00 GMT Robey Pointer <robey@lag.net> patch-22 + + Summary: + fix MANIFEST.in, change version numbers to 0.9-doduo, fix LPGL notices + Revision: + secsh--dev--1.0--patch-22 + + fixed MANIFEST.in to include the demo scripts, LICENSE, and ChangeLog. + upped everything to version 0.9-doduo. + + fixed the copyright notice, and added the LGPL banner to the top of every + python file. + + modified files: + MANIFEST.in Makefile NOTES README paramiko/__init__.py + paramiko/auth_transport.py paramiko/ber.py paramiko/channel.py + paramiko/dsskey.py paramiko/kex_gex.py paramiko/kex_group1.py + paramiko/message.py paramiko/pkey.py paramiko/primes.py + paramiko/rsakey.py paramiko/ssh_exception.py + paramiko/transport.py paramiko/util.py setup.py + + +2004-01-04 10:07:35 GMT Robey Pointer <robey@lag.net> patch-21 + + Summary: + MANIFEST -> MANIFEST.in, fix setup.py. + Revision: + secsh--dev--1.0--patch-21 + + out with MANIFEST, in with MANIFEST.in. + + new files: + .arch-ids/MANIFEST.in.id MANIFEST.in + + removed files: + .arch-ids/MANIFEST.id MANIFEST + + modified files: + setup.py + + +2004-01-04 09:29:13 GMT Robey Pointer <robey@lag.net> patch-20 + + Summary: + more docs, and password-protected key files can now be read + Revision: + secsh--dev--1.0--patch-20 + + lots more documentation, some of it moved out of the README file, which is + now much smaller and less rambling. + + repr(Transport) now reports the number of bits used in the cipher. + + cleaned up BER to use util functions, and throw a proper exception (the new + BERException) on error. it doesn't ever have to be a full BER decoder, but + it can at least comb its hair and tuck in its shirt. + + lots of stuff added to PKey.read_private_key_file so it can try to decode + password-protected key files. right now it only understands "DES-EDE3-CBC" + format, but this is the only format i've seen openssh make so far. if the + key is password-protected, but no password was given, a new exception + (PasswordRequiredException) is raised so an outer layer can ask for a password + and try again. + + modified files: + README demo.py demo_server.py paramiko/__init__.py + paramiko/auth_transport.py paramiko/ber.py paramiko/channel.py + paramiko/dsskey.py paramiko/pkey.py paramiko/primes.py + paramiko/rsakey.py paramiko/ssh_exception.py + paramiko/transport.py paramiko/util.py + + +2003-12-31 06:31:43 GMT Robey Pointer <robey@lag.net> patch-19 + + Summary: + renamed auth_key -> auth_publickey; more docs. + Revision: + secsh--dev--1.0--patch-19 + + renamed Transport.auth_key to auth_publickey for consistency. and lots more + documentation. + + modified files: + README demo.py demo_server.py paramiko/__init__.py + paramiko/auth_transport.py paramiko/transport.py + + +2003-12-30 22:24:21 GMT Robey Pointer <robey@lag.net> patch-18 + + Summary: + added public-key support to server mode, more docs + Revision: + secsh--dev--1.0--patch-18 + + added public-key support to server mode (it can now verify a client signature) + and added a demo of that to the demo_server.py script (user_rsa_key). in the + process, cleaned up the API of PKey so that now it only has to know about + signing and verifying ssh2 blobs, and can be hashed and compared with other + keys (comparing & hashing only the public parts of the key). keys can also + be created from strings now too. + + some more documentation and hiding private methods. + + new files: + .arch-ids/user_rsa_key.id .arch-ids/user_rsa_key.pub.id + user_rsa_key user_rsa_key.pub + + modified files: + Makefile demo_server.py paramiko/__init__.py + paramiko/auth_transport.py paramiko/dsskey.py + paramiko/kex_gex.py paramiko/kex_group1.py paramiko/pkey.py + paramiko/rsakey.py paramiko/transport.py + + +2003-12-30 07:18:20 GMT Robey Pointer <robey@lag.net> patch-17 + + Summary: + lots more documentation, and added Transport.connect() + Revision: + secsh--dev--1.0--patch-17 + + renamed demo_host_key to demo_rsa_key. moved changelog to a separate file, + and indicated that future changelog entries should be fetched from tla. + tried to clean up "__all__" in a way that makes epydoc still work. + + added lots more documentation, and renamed many methods and vars to hide + them as private non-exported API. + + Transport's ModulusPack is now a static member, so it only has to be loaded + once, and can then be used by any future Transport object. + + added Transport.connect(), which tries to wrap all the SSH2 negotiation and + authentication into one method. you should be able to create a Transport, + call connect(), and then create channels. + + new files: + .arch-ids/ChangeLog.id .arch-ids/demo_simple.py.id ChangeLog + demo_simple.py paramiko/.arch-ids/pkey.py.id paramiko/pkey.py + + removed files: + .arch-ids/paramiko.py.id paramiko.py + + modified files: + Makefile NOTES README demo.py demo_server.py + paramiko/__init__.py paramiko/auth_transport.py + paramiko/channel.py paramiko/dsskey.py paramiko/kex_gex.py + paramiko/kex_group1.py paramiko/rsakey.py + paramiko/transport.py setup.py {arch}/=tagging-method + + renamed files: + .arch-ids/demo_host_key.id + ==> .arch-ids/demo_rsa_key.id + demo_host_key + ==> demo_rsa_key + + +2003-12-28 03:20:42 GMT Robey Pointer <robey@lag.net> patch-16 + + Summary: + hook up server-side kex-gex; add more documentation + Revision: + secsh--dev--1.0--patch-16 + + group-exchange kex should work now on the server side. it will only be + advertised if a "moduli" file has been loaded (see the -gasp- docs) so we + don't spend hours (literally. hours.) computing primes. some of the logic + was previously wrong, too, since it had never been tested. + + fixed repr() string for Transport/BaseTransport. moved is_authenticated to + Transport where it belongs. + + added lots of documentation (but still only about 10% documented). lots of + methods were made private finally. + + new files: + paramiko/.arch-ids/primes.py.id paramiko/primes.py + + modified files: + NOTES demo.py demo_server.py paramiko/__init__.py + paramiko/auth_transport.py paramiko/channel.py + paramiko/kex_gex.py paramiko/kex_group1.py + paramiko/transport.py paramiko/util.py + + +2003-12-27 02:03:44 GMT Robey Pointer <robey@lag.net> patch-15 + + Summary: + fix up new paramiko/ folder. + Revision: + secsh--dev--1.0--patch-15 + + moved SSHException to a new file (ssh_exception.py) and turned paramiko.py + into an __init__.py file. i'm still not entirely sure how this normally + works, so i may have done something wrong, but it's supposed to work the + same as before. + + new files: + paramiko/.arch-ids/__init__.py.id + paramiko/.arch-ids/ssh_exception.py.id paramiko/__init__.py + paramiko/ssh_exception.py + + modified files: + paramiko/auth_transport.py paramiko/channel.py + paramiko/dsskey.py paramiko/kex_gex.py paramiko/kex_group1.py + paramiko/transport.py + + +2003-12-27 01:49:19 GMT Robey Pointer <robey@lag.net> patch-14 + + Summary: + move the paramiko files into a paramiko/ folder. + Revision: + secsh--dev--1.0--patch-14 + + just moving the files into a folder. it won't build this way yet. + + new files: + paramiko/.arch-ids/=id + + renamed files: + .arch-ids/auth_transport.py.id + ==> paramiko/.arch-ids/auth_transport.py.id + .arch-ids/ber.py.id + ==> paramiko/.arch-ids/ber.py.id + .arch-ids/channel.py.id + ==> paramiko/.arch-ids/channel.py.id + .arch-ids/dsskey.py.id + ==> paramiko/.arch-ids/dsskey.py.id + .arch-ids/kex_gex.py.id + ==> paramiko/.arch-ids/kex_gex.py.id + .arch-ids/kex_group1.py.id + ==> paramiko/.arch-ids/kex_group1.py.id + .arch-ids/message.py.id + ==> paramiko/.arch-ids/message.py.id + .arch-ids/rsakey.py.id + ==> paramiko/.arch-ids/rsakey.py.id + .arch-ids/transport.py.id + ==> paramiko/.arch-ids/transport.py.id + .arch-ids/util.py.id + ==> paramiko/.arch-ids/util.py.id + auth_transport.py + ==> paramiko/auth_transport.py + ber.py + ==> paramiko/ber.py + channel.py + ==> paramiko/channel.py + dsskey.py + ==> paramiko/dsskey.py + kex_gex.py + ==> paramiko/kex_gex.py + kex_group1.py + ==> paramiko/kex_group1.py + message.py + ==> paramiko/message.py + rsakey.py + ==> paramiko/rsakey.py + transport.py + ==> paramiko/transport.py + util.py + ==> paramiko/util.py + + new directories: + paramiko paramiko/.arch-ids + + +2003-12-24 22:09:43 GMT Robey Pointer <robey@lag.net> patch-13 + + Summary: + fix a deadlock/race in handle_eof & close + Revision: + secsh--dev--1.0--patch-13 + + (patch from fred gansevles) + add locking around the eof handler and the close() call, so we can't be in + both simultaneously. + + modified files: + channel.py + + +2003-12-24 20:49:38 GMT Robey Pointer <robey@lag.net> patch-12 + + Summary: + fix dss key signing + Revision: + secsh--dev--1.0--patch-12 + + (expanded on a patch from fred gansevles) + add a demo dss key for server mode, and fix some bugs that had caused the dss + signing stuff to never work before. the demo_server is a bit more verbose + now, too. both key types (RSAKey & DSSKey) now have a function to return the + fingerprint of the key, and both versions of read_private_key_file() now raise + exceptions on failure, instead of just silently setting "valid" to false. + + new files: + .arch-ids/demo_dss_key.id demo_dss_key + + modified files: + demo_server.py dsskey.py kex_gex.py kex_group1.py paramiko.py + rsakey.py transport.py + + +2003-12-23 06:44:56 GMT Robey Pointer <robey@lag.net> patch-11 + + Summary: + in server mode, don't offer keys we don't have + Revision: + secsh--dev--1.0--patch-11 + + (from Paolo Losi) in server mode, when advertising which key methods we + support, don't list methods that we don't have any existing keys for. + + modified files: + transport.py + + +2003-12-23 06:36:27 GMT Robey Pointer <robey@lag.net> patch-10 + + Summary: + add logfiles and .pyc files to the "junk" list + Revision: + secsh--dev--1.0--patch-10 + + add *.log and *.pyc to the explicit junk list. + + modified files: + {arch}/=tagging-method + + +2003-11-10 08:49:50 GMT Robey Pointer <robey@lag.net> patch-9 + + Summary: + rename secsh -> paramiko + Revision: + secsh--dev--1.0--patch-9 + + also, rename SecshException back to SSHException. sigh. :) + + modified files: + ./MANIFEST ./Makefile ./NOTES ./README ./auth_transport.py + ./channel.py ./demo.py ./demo_server.py ./kex_gex.py + ./kex_group1.py ./message.py ./paramiko.py ./setup.py + ./transport.py + + renamed files: + ./.arch-ids/secsh.py.id + ==> ./.arch-ids/paramiko.py.id + ./secsh.py + ==> ./paramiko.py + + +2003-11-10 06:52:35 GMT Robey Pointer <robey@lag.net> patch-8 + + Summary: + doc changes + Revision: + secsh--dev--1.0--patch-8 + + + modified files: + ./README ./demo_server.py ./secsh.py + + +2003-11-10 04:54:02 GMT Robey Pointer <robey@lag.net> patch-7 + + Summary: + cleaned up server code, renamed some files & classes + Revision: + secsh--dev--1.0--patch-7 + + renamed demo-server.py and demo-host-key to demo_server.py and + demo_host_key, just to be consistent. + + renamed SSHException -> SecshException. + + generalized the mechanism where Channel decides whether to allow + different channel requests: 4 of the main ones (pty, window-change, + shell, and subsystem) go through easily override-able methods now. + you could probably make an actual ssh shell server. + + gave ChannelFile a repr(). + + turned off ultra debugging in the demos. demo_server creates a + subclass of Channel to allow pty/shell and sets an event when the + shell request is made, so that it knows when it can start sending + the fake bbs. + + renamed to charmander and updated some of the distutils files. + + modified files: + ./MANIFEST ./NOTES ./auth_transport.py ./channel.py ./demo.py + ./demo_server.py ./kex_gex.py ./kex_group1.py ./secsh.py + ./setup.py ./transport.py + + renamed files: + ./.arch-ids/demo-host-key.id + ==> ./.arch-ids/demo_host_key.id + ./.arch-ids/demo-server.py.id + ==> ./.arch-ids/demo_server.py.id + ./demo-host-key + ==> ./demo_host_key + ./demo-server.py + ==> ./demo_server.py + + +2003-11-09 21:16:35 GMT Robey Pointer <robey@lag.net> patch-6 + + Summary: + notes about the exported api + Revision: + secsh--dev--1.0--patch-6 + + just wrote some quick notes (for a few of the classes) about which + methods are intended to be the exported API. python has no decent + way of distinguishing private vs public. + + + modified files: + ./NOTES + + +2003-11-09 21:14:21 GMT Robey Pointer <robey@lag.net> patch-5 + + Summary: + big chunk of work which makes server code 95% done + Revision: + secsh--dev--1.0--patch-5 + + fixed auth check methods to return just a result (failed, succeeded, + partially succeeded) and always use get_allowed_auths to determine the + list of allowed auth methods to return. + + channel's internal API changed a bit to allow for client-side vs. + server-side channels. we now honor the "want-reply" bit from channel + requests. in server mode (for now), we automatically allow pty-req + and shell requests without doing anything. + + ChannelFile was fixed up a bit to support universal newlines. readline + got rewritten: the old way used the "greedy" read call from ChannelFile, + which won't work if the socket doesn't have that much data buffered and + ready. now it uses recv directly, and tracks the different newlines. + + demo-server.py now answers to a single shell request (like a CLI ssh + tool will make) and does a very simple demo pretending to be a BBS. + + transport: fixed a bug with parsing the remote side's banner. channel + requests are passed to another method in server mode, to determine if + we should allow it. new allowed channels are added to an accept queue, + and a new method 'accept' (with timeout) will block until the next + incoming channel is ready. + + + modified files: + ./auth_transport.py ./channel.py ./demo-server.py ./demo.py + ./transport.py + + +2003-11-09 20:59:51 GMT Robey Pointer <robey@lag.net> patch-4 + + Summary: + change kex-gex server code to generate primes by hand + Revision: + secsh--dev--1.0--patch-4 + + added a util function "generate_prime" to compare to the incredibly slow C + version, but it's no faster of course. i think kex-gex from the server is + just not going to be feasible without having a separate thread generate some + primes in the background to have handy when a request comes in. so in short, + this still doesn't work. + + also i put bit_length into util and a tb_strings function which gets stack + traceback info and splits it into a list of strings. + + + modified files: + ./kex_gex.py ./util.py + + +2003-11-07 10:36:42 GMT Robey Pointer <robey@lag.net> patch-3 + + Summary: + remove some leftover garbage from dsskey + Revision: + secsh--dev--1.0--patch-3 + + leftover from a cut & paste i was doing a few days ago. bad robey. + + modified files: + ./dsskey.py + + +2003-11-06 07:34:27 GMT Robey Pointer <robey@lag.net> patch-2 + + Summary: + add a demo host key and point demo-server at it. + Revision: + secsh--dev--1.0--patch-2 + + also, temporarily comment out the nonfunctional kex-gex method. + + new files: + ./.arch-ids/demo-host-key.id ./demo-host-key + + modified files: + ./demo-server.py ./transport.py + + +2003-11-04 08:50:22 GMT Robey Pointer <robey@lag.net> patch-1 + + Summary: + no changes + Revision: + secsh--dev--1.0--patch-1 + + why aren't my log messages kept? + + modified files: + ./kex_gex.py + + new patches: + robey@lag.net--2003/secsh--dev--1.0--patch-1 + + +2003-11-04 08:34:24 GMT Robey Pointer <robey@lag.net> base-0 + + Summary: + initial import + Revision: + secsh--dev--1.0--base-0 + + + (automatically generated log message) + + new files: + ./LICENSE ./MANIFEST ./Makefile ./NOTES ./README + ./auth_transport.py ./ber.py ./channel.py ./demo-server.py + ./demo.py ./dsskey.py ./kex_gex.py ./kex_group1.py + ./message.py ./rsakey.py ./secsh.py ./setup.py ./transport.py + ./util.py + + new patches: + robey@lag.net--2003/secsh--dev--1.0--base-0 + + |