├── .ccls ├── .devcontainer ├── Dockerfile ├── devcontainer.json └── scripts │ └── postAttach.sh ├── .github ├── FUNDING.yml └── workflows │ └── ccpp.yml ├── .gitignore ├── 0.76_My_PuTTY ├── agentf.c ├── aqsync.c ├── be_all.c ├── be_all_s.c ├── be_misc.c ├── be_none.c ├── be_nos_s.c ├── be_nossh.c ├── be_ssh.c ├── callback.c ├── cgtest.c ├── charset │ ├── README │ ├── charset.h │ ├── enum.c │ ├── fromucs.c │ ├── internal.h │ ├── localenc.c │ ├── macenc.c │ ├── mimeenc.c │ ├── sbcs.c │ ├── sbcs.dat │ ├── sbcsdat.c │ ├── sbcsgen.pl │ ├── slookup.c │ ├── toucs.c │ ├── utf8.c │ └── xenc.c ├── clicons.c ├── cmdgen.c ├── cmdline.c ├── conf.c ├── config.c ├── console.c ├── console.h ├── cproxy.c ├── defs.h ├── dialog.c ├── dialog.h ├── ecc.c ├── ecc.h ├── empty.h ├── errsock.c ├── fuzzterm.c ├── import.c ├── ldisc.c ├── ldisc.h ├── licence.h ├── logging.c ├── mainchan.c ├── marshal.c ├── marshal.h ├── memory.c ├── millerrabin.c ├── minibidi.c ├── misc.c ├── misc.h ├── miscucs.c ├── mpint.c ├── mpint.h ├── mpint_i.h ├── mpunsafe.c ├── mpunsafe.h ├── network.h ├── nocmdline.c ├── nocproxy.c ├── nogss.c ├── noprint.c ├── noproxy.c ├── norand.c ├── noshare.c ├── noterm.c ├── notiming.c ├── nullplug.c ├── pageant.c ├── pageant.h ├── pgssapi.c ├── pgssapi.h ├── pinger.c ├── pockle.c ├── portfwd.c ├── pproxy.c ├── primecandidate.c ├── proxy.c ├── proxy.h ├── pscp.c ├── psftp.c ├── psftp.h ├── psftpcommon.c ├── psocks.c ├── psocks.h ├── putty.h ├── puttymem.h ├── puttyps.h ├── raw.c ├── resource.h ├── rlogin.c ├── scpserver.c ├── sesschan.c ├── sessprep.c ├── settings.c ├── sftp.c ├── sftp.h ├── sftpcommon.c ├── sftpserver.c ├── smallprimes.c ├── ssh.c ├── ssh.h ├── ssh1bpp.c ├── ssh1censor.c ├── ssh1connection-client.c ├── ssh1connection-server.c ├── ssh1connection.c ├── ssh1connection.h ├── ssh1login-server.c ├── ssh1login.c ├── ssh2bpp-bare.c ├── ssh2bpp.c ├── ssh2censor.c ├── ssh2connection-client.c ├── ssh2connection-server.c ├── ssh2connection.c ├── ssh2connection.h ├── ssh2kex-client.c ├── ssh2kex-server.c ├── ssh2transhk.c ├── ssh2transport.c ├── ssh2transport.h ├── ssh2userauth-server.c ├── ssh2userauth.c ├── sshaes.c ├── ssharcf.c ├── sshargon2.c ├── sshauxcrypt.c ├── sshbcrypt.c ├── sshblake2.c ├── sshblowf.c ├── sshblowf.h ├── sshbpp.h ├── sshccp.c ├── sshchan.h ├── sshcommon.c ├── sshcr.h ├── sshcrc.c ├── sshcrcda.c ├── sshdes.c ├── sshdh.c ├── sshdss.c ├── sshdssg.c ├── sshecc.c ├── sshecdsag.c ├── sshgss.h ├── sshgssc.c ├── sshgssc.h ├── sshhmac.c ├── sshkeygen.h ├── sshmac.c ├── sshmd5.c ├── sshnogss.c ├── sshppl.h ├── sshprime.c ├── sshprng.c ├── sshpubk.c ├── sshrand.c ├── sshrsa.c ├── sshrsag.c ├── sshserver.c ├── sshserver.h ├── sshsh256.c ├── sshsh512.c ├── sshsha.c ├── sshsha3.c ├── sshshare.c ├── sshsignals.h ├── sshttymodes.h ├── sshutils.c ├── sshverstring.c ├── sshzlib.c ├── storage.h ├── stripctrl.c ├── supdup.c ├── telnet.c ├── terminal.c ├── terminal.h ├── testback.c ├── testcrypt.c ├── testcrypt.h ├── testsc.c ├── testzlib.c ├── time.c ├── timing.c ├── tree234.c ├── tree234.h ├── unix │ └── unix.h ├── utils.c ├── version.c ├── version.h ├── wcwidth.c ├── wildcard.c ├── windows │ ├── MAKEFILE.MINGW │ ├── kitty.mft │ ├── pageant-rc.h │ ├── pageant.ico │ ├── pageant.mft │ ├── pageant.rc │ ├── pageants.ico │ ├── plink.rc │ ├── pscp.ico │ ├── pscp.rc │ ├── psftp.rc │ ├── putty.ico │ ├── putty.mft │ ├── putty.rc │ ├── puttycfg.ico │ ├── puttygen-rc.h │ ├── puttygen.ico │ ├── puttygen.mft │ ├── puttygen.rc │ ├── puttyins.ico │ ├── puttytel.rc │ ├── rcstuff.h │ ├── sizetip.c │ ├── version.rc2 │ ├── version_major.txt │ ├── version_minor.txt │ ├── win_res.h │ ├── win_res.rc2 │ ├── wincapi.c │ ├── wincapi.h │ ├── wincfg.c │ ├── wincliloop.c │ ├── wincons.c │ ├── winctrls.c │ ├── windefs.c │ ├── windlg.c │ ├── window.c │ ├── wingss.c │ ├── winhandl.c │ ├── winhelp.c │ ├── winhelp.h │ ├── winhelp.rc2 │ ├── winhsock.c │ ├── winjump.c │ ├── winmisc.c │ ├── winmiscs.c │ ├── winnet.c │ ├── winnohlp.c │ ├── winnoise.c │ ├── winnojmp.c │ ├── winnpc.c │ ├── winnps.c │ ├── winpgen.c │ ├── winpgnt.c │ ├── winpgntc.c │ ├── winplink.c │ ├── winprint.c │ ├── winproxy.c │ ├── winseat.h │ ├── winsecur.c │ ├── winsecur.h │ ├── winselcli.c │ ├── winselgui.c │ ├── winser.c │ ├── winsftp.c │ ├── winshare.c │ ├── winsocks.c │ ├── winstore.c │ ├── winstuff.h │ ├── wintime.c │ ├── winucs.c │ ├── winutils.c │ └── winx11.c └── x11fwd.c ├── 0.76b_My_PuTTY ├── aqsync.c ├── be_all.c ├── be_all_s.c ├── be_misc.c ├── be_none.c ├── be_nos_s.c ├── be_nossh.c ├── be_ssh.c ├── callback.c ├── cgtest.c ├── charset │ ├── README │ ├── charset.h │ ├── enum.c │ ├── fromucs.c │ ├── internal.h │ ├── localenc.c │ ├── macenc.c │ ├── mimeenc.c │ ├── sbcs.c │ ├── sbcs.dat │ ├── sbcsdat.c │ ├── sbcsgen.pl │ ├── slookup.c │ ├── toucs.c │ ├── utf8.c │ └── xenc.c ├── clicons.c ├── cmdgen.c ├── cmdline.c ├── config.c ├── console.c ├── console.h ├── crypto │ ├── aes.c │ ├── arcfour.c │ ├── argon2.c │ ├── bcrypt.c │ ├── blake2.c │ ├── blowfish.c │ ├── blowfish.h │ ├── chacha20-poly1305.c │ ├── crc32.c │ ├── des.c │ ├── diffie-hellman.c │ ├── dsa.c │ ├── ecc-arithmetic.c │ ├── ecc-ssh.c │ ├── ecc.h │ ├── hmac.c │ ├── mac.c │ ├── md5.c │ ├── mpint.c │ ├── mpint_i.h │ ├── prng.c │ ├── pubkey-ppk.c │ ├── rsa.c │ ├── sha1.c │ ├── sha256.c │ ├── sha3.c │ └── sha512.c ├── defs.h ├── dialog.c ├── dialog.h ├── errsock.c ├── import.c ├── keygen │ ├── dsa.c │ ├── ecdsa.c │ ├── millerrabin.c │ ├── mpunsafe.c │ ├── mpunsafe.h │ ├── pockle.c │ ├── prime.c │ ├── primecandidate.c │ ├── rsa.c │ └── smallprimes.c ├── ldisc.c ├── licence.h ├── logging.c ├── marshal.h ├── misc.h ├── mpint.h ├── network.h ├── otherbackends │ ├── raw.c │ ├── rlogin.c │ ├── supdup.c │ ├── telnet.c │ └── testback.c ├── pageant.c ├── pageant.h ├── pinger.c ├── proxy │ ├── cproxy.c │ ├── nocproxy.c │ ├── noproxy.c │ ├── pproxy.c │ ├── proxy.c │ └── proxy.h ├── pscp.c ├── psftp.c ├── psftp.h ├── psftpcommon.c ├── psocks.c ├── psocks.h ├── putty.h ├── puttymem.h ├── puttyps.h ├── resource.h ├── settings.c ├── ssh.h ├── ssh │ ├── agentf.c │ ├── bpp-bare.c │ ├── bpp.h │ ├── bpp1.c │ ├── bpp2.c │ ├── censor1.c │ ├── censor2.c │ ├── channel.h │ ├── common.c │ ├── connection1-client.c │ ├── connection1-server.c │ ├── connection1.c │ ├── connection1.h │ ├── connection2-client.c │ ├── connection2-server.c │ ├── connection2.c │ ├── connection2.h │ ├── crc-attack-detector.c │ ├── gss.h │ ├── gssc.c │ ├── gssc.h │ ├── kex2-client.c │ ├── kex2-server.c │ ├── login1-server.c │ ├── login1.c │ ├── mainchan.c │ ├── nogss.c │ ├── nosharing.c │ ├── pgssapi.c │ ├── pgssapi.h │ ├── portfwd.c │ ├── ppl.h │ ├── scpserver.c │ ├── server.c │ ├── server.h │ ├── sesschan.c │ ├── sftp.c │ ├── sftp.h │ ├── sftpcommon.c │ ├── sftpserver.c │ ├── sharing.c │ ├── signal-list.h │ ├── ssh.c │ ├── transient-hostkey-cache.c │ ├── transport2.c │ ├── transport2.h │ ├── ttymode-list.h │ ├── userauth2-client.c │ ├── userauth2-server.c │ ├── verstring.c │ ├── x11fwd.c │ └── zlib.c ├── sshcr.h ├── sshkeygen.h ├── sshpubk.c ├── sshrand.c ├── storage.h ├── stubs │ ├── nocmdline.c │ ├── nogss.c │ ├── noprint.c │ ├── norand.c │ ├── noterm.c │ ├── notiming.c │ └── nullplug.c ├── terminal │ ├── bidi.c │ ├── terminal.c │ └── terminal.h ├── test │ ├── fuzzterm.c │ ├── testcrypt.c │ ├── testcrypt.h │ ├── testsc.c │ └── testzlib.c ├── timing.c ├── tree234.h ├── unix │ └── unix.h ├── utils │ ├── conf.c │ ├── dup_mb_to_wc.c │ ├── ltime.c │ ├── marshal.c │ ├── memory.c │ ├── misc.c │ ├── sessprep.c │ ├── sshutils.c │ ├── stripctrl.c │ ├── tree234.c │ ├── utils.c │ ├── version.c │ ├── wcwidth.c │ └── wildcard.c ├── version.h └── windows │ ├── MAKEFILE.MINGW │ ├── agent-client.c │ ├── cliloop.c │ ├── config.c │ ├── console.c │ ├── controls.c │ ├── cryptoapi.h │ ├── dialog.c │ ├── gss.c │ ├── handle-io.c │ ├── handle-socket.c │ ├── help.c │ ├── help.h │ ├── help.rc2 │ ├── jump-list.c │ ├── kitty.mft │ ├── local-proxy.c │ ├── named-pipe-client.c │ ├── named-pipe-server.c │ ├── network.c │ ├── no-jump-list.c │ ├── nohelp.c │ ├── noise.c │ ├── pageant-rc.h │ ├── pageant.c │ ├── pageant.ico │ ├── pageant.mft │ ├── pageant.rc │ ├── pageants.ico │ ├── platform.h │ ├── plink.c │ ├── plink.rc │ ├── printing.c │ ├── pscp.ico │ ├── pscp.rc │ ├── psftp.rc │ ├── psocks.c │ ├── putty-common.rc2 │ ├── putty-rc.h │ ├── putty.ico │ ├── putty.mft │ ├── putty.rc │ ├── puttycfg.ico │ ├── puttygen-rc.h │ ├── puttygen.c │ ├── puttygen.ico │ ├── puttygen.mft │ ├── puttygen.rc │ ├── puttyins.ico │ ├── puttytel.rc │ ├── rcstuff.h │ ├── security-api.h │ ├── select-cli.c │ ├── select-gui.c │ ├── serial.c │ ├── sftp.c │ ├── sharing.c │ ├── sizetip.c │ ├── storage.c │ ├── unicode.c │ ├── utils │ ├── cryptoapi.c │ ├── defaults.c │ ├── dll_hijacking_protection.c │ ├── dputs.c │ ├── escape_registry_key.c │ ├── filename.c │ ├── fontspec.c │ ├── get_username.c │ ├── getdlgitemtext_alloc.c │ ├── is_console_handle.c │ ├── load_system32_dll.c │ ├── ltime.c │ ├── makedlgitemborderless.c │ ├── message_box.c │ ├── minefield.c │ ├── open_for_write_would_lose_data.c │ ├── pgp_fingerprints_msgbox.c │ ├── platform_get_x_display.c │ ├── registry_get_string.c │ ├── request_file.c │ ├── security.c │ ├── smemclr.c │ ├── split_into_argv.c │ ├── strtoumax.c │ ├── version.c │ └── win_strerror.c │ ├── version.rc2 │ ├── version_major.txt │ ├── version_minor.txt │ ├── win-gui-seat.h │ ├── window.c │ └── x11.c ├── LICENCE.TXT ├── README.md ├── adb └── adb.c ├── base64 ├── base64.a ├── base64.c ├── base64.h ├── base64_64.a └── licence-fr.txt ├── bcrypt ├── bcrypt.a ├── bcrypt_64.a ├── license.c └── nbcrypt.h ├── blocnote ├── notepad.a ├── notepad.c ├── notepad.h ├── notepad.rc ├── notepad_64.a ├── notepad_putty.c └── res │ ├── bille.ico │ └── edit.ico ├── cthelper ├── buffer.c ├── buffer.h ├── cthelper.c ├── cthelper.h ├── cygcfg.c ├── cygterm.c ├── dbug.h ├── debug.h ├── dump.c ├── error.c ├── message.c ├── message.h ├── mm.h ├── ourhdr.h ├── ptyfork.c ├── ptyfork.h ├── ptyopen.c └── puttycyg.ico ├── docs ├── .htaccess ├── Ubuntu.ttf ├── VeraSe.ttf ├── bitcoin.html ├── bitcoin.png ├── bitcoin_donate.png ├── check_update.php ├── config.json ├── doc │ └── kitty-folders_list_feature.pdf ├── favicon.ico ├── favicon.png ├── files │ ├── RuTTY.rtf │ ├── kitty-folders_list_feature.pdf │ ├── kitty_ssh_handler.reg │ └── kitty_usrcmd.reg ├── gad.html ├── img │ ├── 0.ico │ ├── 1.ico │ ├── 2.ico │ ├── 3.ico │ ├── 4.ico │ ├── 5.ico │ ├── 6.ico │ ├── 7.ico │ ├── 8.ico │ ├── 9.ico │ ├── StdoutToClipboard.png │ ├── abp.jpg │ ├── bitcoin_donate.png │ ├── bunny.ico │ ├── chabel.ico │ ├── config_autocommand.jpg │ ├── config_behaviour.jpg │ ├── config_bell.jpg │ ├── config_chat.jpg │ ├── config_colours.jpg │ ├── config_comment.jpg │ ├── config_connection.jpg │ ├── config_folder.jpg │ ├── config_forcecrlf.jpg │ ├── config_hyperlinks.jpg │ ├── config_icon.jpg │ ├── config_kittygen.jpg │ ├── config_logging.jpg │ ├── config_password.jpg │ ├── config_proxychoice.jpg │ ├── config_rutty.jpg │ ├── config_script.jpg │ ├── config_sendtotray.jpg │ ├── config_transparency.jpg │ ├── config_winscp_integration.jpg │ ├── config_zmodem.jpg │ ├── coq.ico │ ├── coyote.ico │ ├── daffy.ico │ ├── daphne.ico │ ├── elmer.ico │ ├── en.gif │ ├── ex_background.jpg │ ├── ex_chat.jpg │ ├── ex_fonts.jpg │ ├── ex_kageant.jpg │ ├── ex_launcher.jpg │ ├── ex_protected.jpg │ ├── fosshub.png │ ├── fr.gif │ ├── freddie.ico │ ├── gdrive.jpg │ ├── general.ico │ ├── github.png │ ├── hagar.ico │ ├── hellokitty.ico │ ├── jerry.ico │ ├── kitty.ico │ ├── kitty.png │ ├── kitty_launcher.ico │ ├── kitty_logo.ico │ ├── mail.gif │ ├── mail.ico │ ├── mars.ico │ ├── menu.jpg │ ├── menu_export.jpg │ ├── menu_shortcuts.jpg │ ├── paypal_donate.png │ ├── pepepu.ico │ ├── porky.ico │ ├── puma.ico │ ├── putty.ico │ ├── putty2.ico │ ├── putty3.ico │ ├── putty4.ico │ ├── putty5.ico │ ├── putty6.ico │ ├── putty7.ico │ ├── putty8.ico │ ├── putty_launcher.ico │ ├── puttycyg.ico │ ├── puttyprd.ico │ ├── qr_kitty.png │ ├── regedit_shortcuts.jpg │ ├── rocky.ico │ ├── runner.ico │ ├── sam.ico │ ├── scooby.ico │ ├── shaggy.ico │ ├── snoopy.ico │ ├── speedy.ico │ ├── sylvester.ico │ ├── taz.ico │ ├── tom.ico │ ├── tweety.ico │ ├── velma.ico │ ├── virustotal.png │ ├── woods.ico │ ├── woody.ico │ └── yogi.ico ├── index.html ├── index.md ├── index.php ├── js │ ├── base64.js │ ├── com.js │ ├── lodash.js │ ├── sweetalert2.all.min.js │ └── vue.js ├── navigation.md ├── pages │ ├── 0.71.md │ ├── 0.75.md │ ├── AlwaysVisible.md │ ├── AutomaticCommand.md │ ├── AutomaticPassword.md │ ├── AutomaticSaving.md │ ├── BinaryCompression.md │ ├── Chat.md │ ├── ClipboardPrinting.md │ ├── CommandLine.md │ ├── ConfigBox.md │ ├── Duplicate.md │ ├── FileAssociation.md │ ├── Fonts.md │ ├── ForceCRLF.md │ ├── HiddenEditor.md │ ├── HowToCompile.md │ ├── KeyConfirmation.md │ ├── LocalScript.md │ ├── LogonScript.md │ ├── MenuShortcuts.md │ ├── OtherSettings.md │ ├── PortKnock.md │ ├── Portability.md │ ├── Protection.md │ ├── ProxyChoice.md │ ├── PscpIntegration.md │ ├── PuTTYCyg.md │ ├── RollUp.md │ ├── RuTTY.md │ ├── SSHHandler.md │ ├── Savedump.md │ ├── SendToTray.md │ ├── SessionLauncher.md │ ├── SessionsFilter.md │ ├── Shortcuts.md │ ├── StdoutToClipboard.md │ ├── ThatsAllFolks.md │ ├── Transparency.md │ ├── URLHyperlinks.md │ ├── ZModem.md │ ├── chanlog.md │ ├── contact.md │ ├── covidimus.md │ ├── cygtermd.md │ ├── donation.md │ ├── download.md │ ├── history.md │ ├── kitty_icon.md │ └── scoop.md ├── pass │ └── .htaccess ├── paypal.html ├── version.txt └── version1.php ├── far2l ├── cdecode.c ├── cdecode.h ├── cencode.c └── cencode.h ├── jpeg ├── Jerror.c ├── LoadJPEG.c ├── README ├── jconfig.h ├── jmorecfg.h ├── jpegint.h ├── jpeglib.h ├── libjpeg.a └── libjpeg_64.a ├── kitty.c ├── kitty.h ├── kitty.ico ├── kitty_commun.c ├── kitty_commun.h ├── kitty_crypt.c ├── kitty_crypt.h ├── kitty_dll.c ├── kitty_dll.rc ├── kitty_image.c ├── kitty_image.h ├── kitty_ini.txt ├── kitty_keygen.c ├── kitty_launcher.c ├── kitty_launcher.h ├── kitty_light.c ├── kitty_proxy.c ├── kitty_proxy.h ├── kitty_puttytray.c ├── kitty_regex.c ├── kitty_regex.h ├── kitty_registry.c ├── kitty_registry.h ├── kitty_savedump.c ├── kitty_settings.c ├── kitty_ssh.c ├── kitty_ssh.h ├── kitty_store.c ├── kitty_store.h ├── kitty_tools.c ├── kitty_tools.h ├── kitty_win.c ├── kitty_win.h ├── masterpassword.txt ├── md5 ├── MD5check.a ├── MD5check.h ├── MD5check_64.a ├── config.h ├── console.c ├── console.h ├── main.c ├── main.h ├── md5assert.c └── md5assert.h ├── mini ├── mini.a ├── mini.c ├── mini.h └── mini_64.a ├── regex ├── README ├── libregex.a ├── libregex_64.a └── regex.h ├── res ├── 0.ico ├── 1.ico ├── 2.ico ├── 3.ico ├── 4.ico ├── 5.ico ├── 6.ico ├── 7.ico ├── 8.ico ├── 9.ico ├── Artua-Soccer-Football.ico ├── Artua-Soccer-Worldcup.ico ├── Football.ico ├── Hover.cur ├── bille.ico ├── black.ico ├── bunny.ico ├── coq.ico ├── coyote.ico ├── daffy.ico ├── daphne.ico ├── edit.ico ├── elmer.ico ├── file_assoc │ └── kitty_assoc.ico ├── freddie.ico ├── general.ico ├── hagar.ico ├── hellokitty.ico ├── img │ └── favicon.ico ├── jerry.ico ├── kitty.ico ├── kitty_assoc.ico ├── mars.ico ├── nocon │ └── kitty_nocon.ico ├── nuclear.ico ├── pepepu.ico ├── player_play.ico ├── porky.ico ├── putty2.ico ├── putty3.ico ├── putty4.ico ├── putty5.ico ├── putty6.ico ├── putty7.ico ├── putty8.ico ├── putty_launcher.ico ├── puttyprd.ico ├── rocky.ico ├── runner.ico ├── sam.ico ├── scooby.ico ├── shaggy.ico ├── snoopy.ico ├── speedy.ico ├── sylvester.ico ├── taz.ico ├── tom.ico ├── tweety.ico ├── velma.ico ├── woods.ico ├── woody.ico └── yogi.ico ├── rutty ├── script.c ├── script.h ├── script_ahk.c └── script_win.c ├── url ├── re_lib │ ├── regexp.c │ ├── regexp.h │ └── regmagic.h ├── urlhack.c ├── urlhack.h ├── urlhack.old.c └── urlhack.old.h ├── void.c └── zmodem └── winpzmodem.c /.ccls: -------------------------------------------------------------------------------- 1 | clang 2 | %c -std=c11 3 | -D__WINE__ 4 | -DMOD_PERSO 5 | -DMOD_STARTBUTTON 6 | -DMOD_SAVEDUMP 7 | -DMOD_DISABLEALTGR 8 | -DMOD_KEYMAPPING 9 | -DMOD_PUTTYX 10 | -DMOD_PORTKNOCKING 11 | -DMOD_HYPERLINK 12 | -DMOD_PRINTCLIP 13 | -DMOD_LAUNCHER 14 | -DMOD_RECONNECT 15 | -DMOD_WTS 16 | -DMOD_TUTTY 17 | -DMOD_RUTTY 18 | -DMOD_ADB 19 | -DMOD_BACKGROUNDIMAGE 20 | -I0.73_My_PuTTY/ 21 | -I. 22 | -I0.73_My_PuTTY/charset/ 23 | -I0.73_My_PuTTY/windows/ 24 | -I0.73_My_PuTTY/unix/ 25 | -I0.73_My_PuTTY/mac/ 26 | -I0.73_My_PuTTY/macosx/ 27 | -Ibase64/ 28 | -Ibcrypt/ 29 | -Imd5/ 30 | -Iregex/ 31 | -Iurl/ 32 | -Iwincrypt/ 33 | -Irutty/ 34 | -------------------------------------------------------------------------------- /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM docker.io/cyd01/cross-gcc:latest 2 | 3 | USER root 4 | 5 | ARG HOST_USER 6 | ARG HOST_HOME 7 | ARG HOST_SHELL 8 | 9 | RUN usermod --login ${HOST_USER} --home ${HOST_HOME} --move-home --shell ${HOST_SHELL} ${DEFAULT_USER} \ 10 | && groupmod --new-name ${HOST_USER} ${DEFAULT_USER} \ 11 | && usermod --groups root ${HOST_USER} \ 12 | && echo "${HOST_USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/10-user 13 | 14 | ENV DEFAULT_USER=${HOST_USER} 15 | 16 | USER ${DEFAULT_USER} 17 | 18 | COPY ./scripts/ /usr/local/scripts/ 19 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [ "cyd01" ] 2 | custom: [ "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=65VYL8F5AD57G&source=url", "http://www.9bis.net/kitty/donate.html" ] 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.map 3 | *.exe 4 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/aqsync.c: -------------------------------------------------------------------------------- 1 | /* 2 | * aqsync.c: the agent_query_synchronous() wrapper function. 3 | * 4 | * This is a very small thing to have to put in its own module, but it 5 | * wants to be shared between back ends, and exist in any SSH client 6 | * program and also Pageant, and _nowhere else_ (because it pulls in 7 | * the main agent_query). 8 | */ 9 | 10 | #include 11 | 12 | #include "putty.h" 13 | 14 | void agent_query_synchronous(strbuf *query, void **out, int *outlen) 15 | { 16 | agent_pending_query *pending; 17 | 18 | pending = agent_query(query, out, outlen, NULL, 0); 19 | assert(!pending); 20 | } 21 | 22 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/be_all.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTY proper: list the available backends 3 | * including ssh. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | /* 10 | * This appname is not strictly in the right place, since Plink 11 | * also uses this module. However, Plink doesn't currently use any 12 | * of the dialog-box sorts of things that make use of appname, so 13 | * it shouldn't do any harm here. I'm trying to avoid having to 14 | * have tiny little source modules containing nothing but 15 | * declarations of appname, for as long as I can... 16 | */ 17 | const char *const appname = "PuTTY"; 18 | 19 | const int be_default_protocol = PROT_SSH; 20 | 21 | const struct BackendVtable *const backends[] = { 22 | &ssh_backend, 23 | &telnet_backend, 24 | &rlogin_backend, 25 | &supdup_backend, 26 | &raw_backend, 27 | &sshconn_backend, 28 | #ifdef MOD_ADB 29 | &adb_backend, 30 | #endif 31 | NULL 32 | }; 33 | 34 | const size_t n_ui_backends = 1; 35 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/be_all_s.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTY proper: list the available backends 3 | * including ssh, plus the serial backend. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | /* 10 | * This appname is not strictly in the right place, since Plink 11 | * also uses this module. However, Plink doesn't currently use any 12 | * of the dialog-box sorts of things that make use of appname, so 13 | * it shouldn't do any harm here. I'm trying to avoid having to 14 | * have tiny little source modules containing nothing but 15 | * declarations of appname, for as long as I can... 16 | */ 17 | #if (defined MOD_PERSO) && (!defined FLJ) 18 | char *appname = "KiTTY"; 19 | #else 20 | const char *const appname = "PuTTY"; 21 | #endif 22 | 23 | const int be_default_protocol = PROT_SSH; 24 | 25 | const struct BackendVtable *const backends[] = { 26 | &ssh_backend, 27 | &serial_backend, 28 | &telnet_backend, 29 | &rlogin_backend, 30 | &supdup_backend, 31 | &raw_backend, 32 | #ifdef MOD_ADB 33 | &adb_backend, 34 | #endif 35 | &sshconn_backend, 36 | NULL 37 | }; 38 | 39 | const size_t n_ui_backends = 2; 40 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/be_none.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for programs that do not support selection of backend 3 | * (such as pterm). 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | const int be_default_protocol = -1; 10 | 11 | const struct BackendVtable *const backends[] = { 12 | NULL 13 | }; 14 | 15 | const size_t n_ui_backends = 0; 16 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/be_nos_s.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTYtel: list the available backends not 3 | * including ssh. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | const int be_default_protocol = PROT_TELNET; 10 | 11 | const char *const appname = "PuTTYtel"; 12 | 13 | const struct BackendVtable *const backends[] = { 14 | &telnet_backend, 15 | &serial_backend, 16 | &rlogin_backend, 17 | &supdup_backend, 18 | &raw_backend, 19 | #ifdef MOD_ADB 20 | &adb_backend, 21 | #endif 22 | NULL 23 | }; 24 | 25 | const size_t n_ui_backends = 2; 26 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/be_nossh.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTYtel: list the available backends not 3 | * including ssh. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | const int be_default_protocol = PROT_TELNET; 10 | 11 | const char *const appname = "PuTTYtel"; 12 | 13 | const struct BackendVtable *const backends[] = { 14 | &telnet_backend, 15 | &rlogin_backend, 16 | &supdup_backend, 17 | &raw_backend, 18 | #ifdef MOD_ADB 19 | &adb_backend, 20 | #endif 21 | NULL 22 | }; 23 | 24 | const size_t n_ui_backends = 1; 25 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/be_ssh.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for programs that are restricted to only using 3 | * SSH-type protocols (pscp and psftp). These still have a choice of 4 | * two actual backends, because they can also speak PROT_SSHCONN. 5 | */ 6 | 7 | #include 8 | #include "putty.h" 9 | 10 | const int be_default_protocol = PROT_SSH; 11 | 12 | const struct BackendVtable *const backends[] = { 13 | &ssh_backend, 14 | &sshconn_backend, 15 | NULL 16 | }; 17 | 18 | const size_t n_ui_backends = 0; /* not used in programs with a config UI */ 19 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/charset/README: -------------------------------------------------------------------------------- 1 | This subdirectory contains a general character-set conversion 2 | library, used in the Unix port of PuTTY, and available for use in 3 | other ports if it should happen to be useful. 4 | 5 | This is a variant of a library that's currently used in some other 6 | programs such as Timber and Halibut. At some future date, we would 7 | like to merge the two libraries, so that all programs use the same 8 | libcharset. 9 | 10 | It is therefore a _strong_ design goal that this library should remain 11 | perfectly general, and not tied to particulars of PuTTY. It must not 12 | reference any code outside its own subdirectory; it should not have 13 | PuTTY-specific helper routines added to it unless they can be 14 | documented in a general manner which might make them useful in other 15 | circumstances as well. 16 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/charset/enum.c: -------------------------------------------------------------------------------- 1 | /* 2 | * enum.c - enumerate all charsets defined by the library. 3 | * 4 | * This file maintains a list of every other source file which 5 | * contains ENUM_CHARSET definitions. It #includes each one with 6 | * ENUM_CHARSETS defined, which causes those source files to do 7 | * nothing at all except call the ENUM_CHARSET macro on each 8 | * charset they define. 9 | * 10 | * This file in turn is included from various other places, with 11 | * the ENUM_CHARSET macro defined to various different things. This 12 | * allows us to have multiple implementations of the master charset 13 | * lookup table (a static one and a dynamic one). 14 | */ 15 | 16 | #define ENUM_CHARSETS 17 | #include "sbcsdat.c" 18 | #include "utf8.c" 19 | #undef ENUM_CHARSETS 20 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/charset/sbcs.c: -------------------------------------------------------------------------------- 1 | /* 2 | * sbcs.c - routines to handle single-byte character sets. 3 | */ 4 | 5 | #include "charset.h" 6 | #include "internal.h" 7 | 8 | /* 9 | * The charset_spec for any single-byte character set should 10 | * provide read_sbcs() as its read function, and its `data' field 11 | * should be a wchar_t string constant containing the 256 entries 12 | * of the translation table. 13 | */ 14 | 15 | void read_sbcs(charset_spec const *charset, long int input_chr, 16 | charset_state *state, 17 | void (*emit)(void *ctx, long int output), void *emitctx) 18 | { 19 | const struct sbcs_data *sd = charset->data; 20 | 21 | UNUSEDARG(state); 22 | 23 | emit(emitctx, sd->sbcs2ucs[input_chr]); 24 | } 25 | 26 | void write_sbcs(charset_spec const *charset, long int input_chr, 27 | charset_state *state, 28 | void (*emit)(void *ctx, long int output), void *emitctx) 29 | { 30 | const struct sbcs_data *sd = charset->data; 31 | int i, j, k, c; 32 | 33 | UNUSEDARG(state); 34 | 35 | /* 36 | * Binary-search in the ucs2sbcs table. 37 | */ 38 | i = -1; 39 | j = sd->nvalid; 40 | while (i+1 < j) { 41 | k = (i+j)/2; 42 | c = sd->ucs2sbcs[k]; 43 | if (input_chr < sd->sbcs2ucs[c]) 44 | j = k; 45 | else if (input_chr > sd->sbcs2ucs[c]) 46 | i = k; 47 | else { 48 | emit(emitctx, c); 49 | return; 50 | } 51 | } 52 | emit(emitctx, ERROR); 53 | } 54 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/charset/slookup.c: -------------------------------------------------------------------------------- 1 | /* 2 | * slookup.c - static lookup of character sets. 3 | */ 4 | 5 | #include "charset.h" 6 | #include "internal.h" 7 | 8 | #define ENUM_CHARSET(x) extern charset_spec const charset_##x; 9 | #include "enum.c" 10 | #undef ENUM_CHARSET 11 | 12 | static charset_spec const *const cs_table[] = { 13 | 14 | #define ENUM_CHARSET(x) &charset_##x, 15 | #include "enum.c" 16 | #undef ENUM_CHARSET 17 | 18 | }; 19 | 20 | charset_spec const *charset_find_spec(int charset) 21 | { 22 | int i; 23 | 24 | for (i = 0; i < (int)lenof(cs_table); i++) 25 | if (cs_table[i]->charset == charset) 26 | return cs_table[i]; 27 | 28 | return NULL; 29 | } 30 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/clicons.c: -------------------------------------------------------------------------------- 1 | /* 2 | * clicons.c: definitions limited to tools that link against both 3 | * console.c and cmdline.c. 4 | */ 5 | 6 | #include "putty.h" 7 | 8 | static const LogPolicyVtable console_cli_logpolicy_vt = { 9 | .eventlog = console_eventlog, 10 | .askappend = console_askappend, 11 | .logging_error = console_logging_error, 12 | .verbose = cmdline_lp_verbose, 13 | }; 14 | LogPolicy console_cli_logpolicy[1] = {{ &console_cli_logpolicy_vt }}; 15 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/console.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Common pieces between the platform console frontend modules. 3 | */ 4 | 5 | extern const char hk_absentmsg_common_fmt[]; 6 | extern const char hk_absentmsg_interactive_intro[]; 7 | extern const char hk_absentmsg_interactive_prompt[]; 8 | extern const char hk_wrongmsg_common_fmt[]; 9 | extern const char hk_wrongmsg_interactive_intro[]; 10 | extern const char hk_wrongmsg_interactive_prompt[]; 11 | 12 | extern const char weakcrypto_msg_common_fmt[]; 13 | 14 | extern const char weakhk_msg_common_fmt[]; 15 | 16 | extern const char console_continue_prompt[]; 17 | extern const char console_abandoned_msg[]; 18 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/empty.h: -------------------------------------------------------------------------------- 1 | /* Empty file touched by automake makefile to force rebuild of version.o */ 2 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/ldisc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ldisc.h: defines the Ldisc data structure used by ldisc.c and 3 | * ldiscucs.c. (Unfortunately it was necessary to split the ldisc 4 | * module in two, to avoid unnecessarily linking in the Unicode 5 | * stuff in tools that don't require it.) 6 | */ 7 | 8 | #ifndef PUTTY_LDISC_H 9 | #define PUTTY_LDISC_H 10 | 11 | struct Ldisc_tag { 12 | Terminal *term; 13 | Backend *backend; 14 | Seat *seat; 15 | 16 | /* 17 | * Values cached out of conf. 18 | */ 19 | bool telnet_keyboard, telnet_newline; 20 | int protocol, localecho, localedit; 21 | 22 | char *buf; 23 | size_t buflen, bufsiz; 24 | bool quotenext; 25 | }; 26 | 27 | #endif /* PUTTY_LDISC_H */ 28 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/miscucs.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Centralised Unicode-related helper functions, separate from misc.c 3 | * so that they can be omitted from tools that aren't including 4 | * Unicode handling. 5 | */ 6 | 7 | #include "putty.h" 8 | #include "misc.h" 9 | 10 | wchar_t *dup_mb_to_wc_c(int codepage, int flags, const char *string, int len) 11 | { 12 | int mult; 13 | for (mult = 1 ;; mult++) { 14 | wchar_t *ret = snewn(mult*len + 2, wchar_t); 15 | int outlen; 16 | outlen = mb_to_wc(codepage, flags, string, len, ret, mult*len + 1); 17 | if (outlen < mult*len+1) { 18 | ret[outlen] = L'\0'; 19 | return ret; 20 | } 21 | sfree(ret); 22 | } 23 | } 24 | 25 | wchar_t *dup_mb_to_wc(int codepage, int flags, const char *string) 26 | { 27 | return dup_mb_to_wc_c(codepage, flags, string, strlen(string)); 28 | } 29 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/nocproxy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Routines to refuse to do cryptographic interaction with proxies 3 | * in PuTTY. This is a stub implementation of the same interfaces 4 | * provided by cproxy.c, for use in PuTTYtel. 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | #include "putty.h" 12 | #include "network.h" 13 | #include "proxy.h" 14 | 15 | void proxy_socks5_offerencryptedauth(BinarySink *bs) 16 | { 17 | /* For telnet, don't add any new encrypted authentication routines */ 18 | } 19 | 20 | int proxy_socks5_handlechap (ProxySocket *p) 21 | { 22 | 23 | plug_closing(p->plug, "Proxy error: Trying to handle a SOCKS5 CHAP request" 24 | " in telnet-only build", 25 | PROXY_ERROR_GENERAL, 0); 26 | return 1; 27 | } 28 | 29 | int proxy_socks5_selectchap(ProxySocket *p) 30 | { 31 | plug_closing(p->plug, "Proxy error: Trying to handle a SOCKS5 CHAP request" 32 | " in telnet-only build", 33 | PROXY_ERROR_GENERAL, 0); 34 | return 1; 35 | } 36 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/nogss.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub definitions of the GSSAPI library list, for Unix pterm and 3 | * any other application that needs the symbols defined but has no 4 | * use for them. 5 | */ 6 | 7 | #include "putty.h" 8 | 9 | const int ngsslibs = 0; 10 | const char *const gsslibnames[1] = { "dummy" }; 11 | const struct keyvalwhere gsslibkeywords[1] = { { "dummy", 0, -1, -1 } }; 12 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/noprint.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub implementation of the printing interface for PuTTY, for the 3 | * benefit of non-printing terminal applications. 4 | */ 5 | 6 | #include 7 | #include 8 | #include "putty.h" 9 | 10 | struct printer_job_tag { 11 | int dummy; 12 | }; 13 | 14 | printer_job *printer_start_job(char *printer) 15 | { 16 | return NULL; 17 | } 18 | 19 | void printer_job_data(printer_job *pj, const void *data, size_t len) 20 | { 21 | } 22 | 23 | void printer_finish_job(printer_job *pj) 24 | { 25 | } 26 | 27 | printer_enum *printer_start_enum(int *nprinters_ptr) 28 | { 29 | *nprinters_ptr = 0; 30 | return NULL; 31 | } 32 | char *printer_get_name(printer_enum *pe, int i) 33 | { 34 | return NULL; 35 | } 36 | void printer_finish_enum(printer_enum *pe) 37 | { 38 | } 39 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/noproxy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * noproxy.c: an alternative to proxy.c, for use by auxiliary programs 3 | * that need to make network connections but don't want to include all 4 | * the full-on support for endless network proxies (and its 5 | * configuration requirements). Implements the primary APIs of 6 | * proxy.c, but maps them straight to the underlying network layer. 7 | */ 8 | 9 | #include "putty.h" 10 | #include "network.h" 11 | #include "proxy.h" 12 | 13 | SockAddr *name_lookup(const char *host, int port, char **canonicalname, 14 | Conf *conf, int addressfamily, LogContext *logctx, 15 | const char *reason) 16 | { 17 | return sk_namelookup(host, canonicalname, addressfamily); 18 | } 19 | 20 | Socket *new_connection(SockAddr *addr, const char *hostname, 21 | int port, bool privport, 22 | bool oobinline, bool nodelay, bool keepalive, 23 | Plug *plug, Conf *conf) 24 | { 25 | return sk_new(addr, port, privport, oobinline, nodelay, keepalive, plug); 26 | } 27 | 28 | Socket *new_listener(const char *srcaddr, int port, Plug *plug, 29 | bool local_host_only, Conf *conf, int addressfamily) 30 | { 31 | return sk_newlistener(srcaddr, port, plug, local_host_only, addressfamily); 32 | } 33 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/norand.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub implementations of RNG functions for applications without an RNG. 3 | */ 4 | 5 | #include "putty.h" 6 | 7 | void random_read(void *out, size_t size) 8 | { 9 | unreachable("Random numbers are not available in this application"); 10 | } 11 | 12 | void random_save_seed(void) 13 | { 14 | } 15 | 16 | void random_destroy_seed(void) 17 | { 18 | } 19 | 20 | void noise_ultralight(NoiseSourceId id, unsigned long data) 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/noshare.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub implementation of SSH connection-sharing IPC, for any 3 | * platform which can't support it at all. 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #include "tree234.h" 11 | #include "putty.h" 12 | #include "ssh.h" 13 | #include "network.h" 14 | 15 | int platform_ssh_share(const char *name, Conf *conf, 16 | Plug *downplug, Plug *upplug, Socket **sock, 17 | char **logtext, char **ds_err, char **us_err, 18 | bool can_upstream, bool can_downstream) 19 | { 20 | return SHARE_NONE; 21 | } 22 | 23 | void platform_ssh_share_cleanup(const char *name) 24 | { 25 | } 26 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/noterm.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stubs of functions in terminal.c, for use in programs that don't 3 | * have a terminal. 4 | */ 5 | 6 | #include "putty.h" 7 | #include "terminal/terminal.h" 8 | 9 | void term_nopaste(Terminal *term) 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/notiming.c: -------------------------------------------------------------------------------- 1 | /* 2 | * notiming.c: stub version of timing API. 3 | * 4 | * Used in any tool which needs a subsystem linked against the 5 | * timing API but doesn't want to actually provide timing. For 6 | * example, key generation tools need the random number generator, 7 | * but they don't want the hassle of calling noise_regular() at 8 | * regular intervals - and they don't _need_ it either, since they 9 | * have their own rigorous and different means of noise collection. 10 | */ 11 | 12 | #include "putty.h" 13 | 14 | unsigned long schedule_timer(int ticks, timer_fn_t fn, void *ctx) 15 | { 16 | return 0; 17 | } 18 | 19 | void expire_timer_context(void *ctx) 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/nullplug.c: -------------------------------------------------------------------------------- 1 | /* 2 | * nullplug.c: provide a null implementation of the Plug vtable which 3 | * ignores all calls. Occasionally useful in cases where we want to 4 | * make a network connection just to see if it works, but not do 5 | * anything with it afterwards except close it again. 6 | */ 7 | 8 | #include "putty.h" 9 | 10 | static void nullplug_socket_log(Plug *plug, PlugLogType type, SockAddr *addr, 11 | int port, const char *err_msg, int err_code) 12 | { 13 | } 14 | 15 | static void nullplug_closing(Plug *plug, const char *error_msg, int error_code, 16 | bool calling_back) 17 | { 18 | } 19 | 20 | static void nullplug_receive( 21 | Plug *plug, int urgent, const char *data, size_t len) 22 | { 23 | } 24 | 25 | static void nullplug_sent(Plug *plug, size_t bufsize) 26 | { 27 | } 28 | 29 | static const PlugVtable nullplug_plugvt = { 30 | .log = nullplug_socket_log, 31 | .closing = nullplug_closing, 32 | .receive = nullplug_receive, 33 | .sent = nullplug_sent, 34 | }; 35 | 36 | static Plug nullplug_plug = { &nullplug_plugvt }; 37 | 38 | /* 39 | * There's a singleton instance of nullplug, because it's not 40 | * interesting enough to worry about making more than one of them. 41 | */ 42 | Plug *const nullplug = &nullplug_plug; 43 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/pproxy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * pproxy.c: dummy implementation of platform_new_connection(), to 3 | * be supplanted on any platform which has its own local proxy 4 | * method. 5 | */ 6 | 7 | #include "putty.h" 8 | #include "network.h" 9 | #include "proxy.h" 10 | 11 | Socket *platform_new_connection(SockAddr *addr, const char *hostname, 12 | int port, int privport, 13 | int oobinline, int nodelay, int keepalive, 14 | Plug *plug, Conf *conf) 15 | { 16 | return NULL; 17 | } 18 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/psocks.h: -------------------------------------------------------------------------------- 1 | typedef struct psocks_state psocks_state; 2 | 3 | typedef struct PsocksPlatform PsocksPlatform; 4 | typedef struct PsocksDataSink PsocksDataSink; 5 | 6 | /* indices into PsocksDataSink arrays */ 7 | typedef enum PsocksDirection { UP, DN } PsocksDirection; 8 | 9 | typedef struct PsocksDataSink { 10 | void (*free)(PsocksDataSink *); 11 | BinarySink *s[2]; 12 | } PsocksDataSink; 13 | static inline void pds_free(PsocksDataSink *pds) 14 | { pds->free(pds); } 15 | 16 | PsocksDataSink *pds_stdio(FILE *fp[2]); 17 | 18 | struct PsocksPlatform { 19 | PsocksDataSink *(*open_pipes)( 20 | const char *cmd, const char *const *direction_args, 21 | const char *index_arg, char **err); 22 | void (*start_subcommand)(strbuf *args); 23 | }; 24 | 25 | psocks_state *psocks_new(const PsocksPlatform *); 26 | void psocks_free(psocks_state *ps); 27 | void psocks_cmdline(psocks_state *ps, int argc, char **argv); 28 | void psocks_start(psocks_state *ps); 29 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/puttyps.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Find the platform-specific header for this platform. 3 | */ 4 | 5 | #ifndef PUTTY_PUTTYPS_H 6 | #define PUTTY_PUTTYPS_H 7 | 8 | #ifdef _WINDOWS 9 | 10 | #include "winstuff.h" 11 | 12 | #else 13 | 14 | #include "unix.h" 15 | 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Developer Studio generated include file. 3 | // Used by win_res.rc 4 | // 5 | 6 | // Next default values for new objects 7 | // 8 | #ifdef APSTUDIO_INVOKED 9 | #ifndef APSTUDIO_READONLY_SYMBOLS 10 | #define _APS_NEXT_RESOURCE_VALUE 101 11 | #define _APS_NEXT_COMMAND_VALUE 40001 12 | #define _APS_NEXT_CONTROL_VALUE 1000 13 | #define _APS_NEXT_SYMED_VALUE 101 14 | #endif 15 | #endif 16 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/smallprimes.c: -------------------------------------------------------------------------------- 1 | /* 2 | * smallprimes.c: implementation of the array of small primes defined 3 | * in sshkeygen.h. 4 | */ 5 | 6 | #include 7 | #include "ssh.h" 8 | #include "sshkeygen.h" 9 | 10 | /* The real array that stores the primes. It has to be writable in 11 | * this module, but outside this module, we only expose the 12 | * const-qualified pointer 'smallprimes' so that nobody else can 13 | * accidentally overwrite it. */ 14 | static unsigned short smallprimes_array[NSMALLPRIMES]; 15 | 16 | const unsigned short *const smallprimes = smallprimes_array; 17 | 18 | void init_smallprimes(void) 19 | { 20 | if (smallprimes_array[0]) 21 | return; /* already done */ 22 | 23 | bool A[65536]; 24 | 25 | for (size_t i = 2; i < lenof(A); i++) 26 | A[i] = true; 27 | 28 | for (size_t i = 2; i < lenof(A); i++) { 29 | if (!A[i]) 30 | continue; 31 | for (size_t j = 2*i; j < lenof(A); j += i) 32 | A[j] = false; 33 | } 34 | 35 | size_t pos = 0; 36 | for (size_t i = 2; i < lenof(A); i++) { 37 | if (A[i]) { 38 | assert(pos < NSMALLPRIMES); 39 | smallprimes_array[pos++] = i; 40 | } 41 | } 42 | 43 | assert(pos == NSMALLPRIMES); 44 | } 45 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/sshblowf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Header file shared between sshblowf.c and sshbcrypt.c. Exposes the 3 | * internal Blowfish routines needed by bcrypt. 4 | */ 5 | 6 | typedef struct BlowfishContext BlowfishContext; 7 | 8 | BlowfishContext *blowfish_make_context(void); 9 | void blowfish_free_context(BlowfishContext *ctx); 10 | void blowfish_initkey(BlowfishContext *ctx); 11 | void blowfish_expandkey(BlowfishContext *ctx, 12 | const void *key, short keybytes, 13 | const void *salt, short saltbytes); 14 | void blowfish_lsb_encrypt_ecb(void *blk, int len, BlowfishContext *ctx); 15 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/sshecdsag.c: -------------------------------------------------------------------------------- 1 | /* 2 | * EC key generation. 3 | */ 4 | 5 | #include "ssh.h" 6 | #include "sshkeygen.h" 7 | #include "mpint.h" 8 | 9 | int ecdsa_generate(struct ecdsa_key *ek, int bits) 10 | { 11 | if (!ec_nist_alg_and_curve_by_bits(bits, &ek->curve, &ek->sshk.vt)) 12 | return 0; 13 | 14 | mp_int *one = mp_from_integer(1); 15 | ek->privateKey = mp_random_in_range(one, ek->curve->w.G_order); 16 | mp_free(one); 17 | 18 | ek->publicKey = ecdsa_public(ek->privateKey, ek->sshk.vt); 19 | 20 | return 1; 21 | } 22 | 23 | int eddsa_generate(struct eddsa_key *ek, int bits) 24 | { 25 | if (!ec_ed_alg_and_curve_by_bits(bits, &ek->curve, &ek->sshk.vt)) 26 | return 0; 27 | 28 | /* EdDSA secret keys are just 32 bytes of hash preimage; the 29 | * 64-byte SHA-512 hash of that key will be used when signing, 30 | * but the form of the key stored on disk is the preimage 31 | * only. */ 32 | ek->privateKey = mp_random_bits(bits); 33 | 34 | ek->publicKey = eddsa_public(ek->privateKey, ek->sshk.vt); 35 | 36 | return 1; 37 | } 38 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/sshgssc.h: -------------------------------------------------------------------------------- 1 | #ifndef PUTTY_SSHGSSC_H 2 | #define PUTTY_SSHGSSC_H 3 | #include "putty.h" 4 | #ifndef NO_GSSAPI 5 | 6 | #include "pgssapi.h" 7 | #include "sshgss.h" 8 | 9 | typedef struct gssapi_ssh_gss_ctx { 10 | OM_uint32 maj_stat; 11 | OM_uint32 min_stat; 12 | gss_ctx_id_t ctx; 13 | time_t expiry; 14 | } gssapi_ssh_gss_ctx; 15 | 16 | void ssh_gssapi_bind_fns(struct ssh_gss_library *lib); 17 | 18 | #else 19 | 20 | int ssh_gssapi_init(void); 21 | 22 | #endif /*NO_GSSAPI*/ 23 | 24 | #endif /*PUTTY_SSHGSSC_H*/ 25 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/sshmac.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Centralised parts of the SSH-2 MAC API, which don't need to vary 3 | * with the MAC implementation. 4 | */ 5 | 6 | #include 7 | 8 | #include "ssh.h" 9 | 10 | bool ssh2_mac_verresult(ssh2_mac *mac, const void *candidate) 11 | { 12 | unsigned char correct[64]; /* at least as big as all known MACs */ 13 | bool toret; 14 | 15 | assert(mac->vt->len <= sizeof(correct)); 16 | ssh2_mac_genresult(mac, correct); 17 | toret = smemeq(correct, candidate, mac->vt->len); 18 | 19 | smemclr(correct, sizeof(correct)); 20 | 21 | return toret; 22 | } 23 | 24 | static void ssh2_mac_prepare(ssh2_mac *mac, const void *blk, int len, 25 | unsigned long seq) 26 | { 27 | ssh2_mac_start(mac); 28 | put_uint32(mac, seq); 29 | put_data(mac, blk, len); 30 | } 31 | 32 | void ssh2_mac_generate(ssh2_mac *mac, void *blk, int len, unsigned long seq) 33 | { 34 | ssh2_mac_prepare(mac, blk, len, seq); 35 | ssh2_mac_genresult(mac, (unsigned char *)blk + len); 36 | } 37 | 38 | bool ssh2_mac_verify( 39 | ssh2_mac *mac, const void *blk, int len, unsigned long seq) 40 | { 41 | ssh2_mac_prepare(mac, blk, len, seq); 42 | return ssh2_mac_verresult(mac, (const unsigned char *)blk + len); 43 | } 44 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/sshnogss.c: -------------------------------------------------------------------------------- 1 | #include "putty.h" 2 | #ifndef NO_GSSAPI 3 | 4 | /* For platforms not supporting GSSAPI */ 5 | 6 | struct ssh_gss_liblist *ssh_gss_setup(Conf *conf) 7 | { 8 | struct ssh_gss_liblist *list = snew(struct ssh_gss_liblist *); 9 | list->libraries = NULL; 10 | list->nlibraries = 0; 11 | return list; 12 | } 13 | 14 | void ssh_gss_cleanup(struct ssh_gss_liblist *list) 15 | { 16 | sfree(list); 17 | } 18 | 19 | #endif /* NO_GSSAPI */ 20 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/time.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Portable implementation of ltime() for any ISO-C platform where 3 | * time_t behaves. (In practice, we've found that platforms such as 4 | * Windows and Mac have needed their own specialised implementations.) 5 | */ 6 | 7 | #include 8 | #include 9 | 10 | struct tm ltime(void) 11 | { 12 | time_t t; 13 | time(&t); 14 | assert (t != ((time_t)-1)); 15 | return *localtime(&t); 16 | } 17 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/version.c: -------------------------------------------------------------------------------- 1 | /* 2 | * PuTTY version numbering 3 | */ 4 | 5 | /* 6 | * The difficult part of deciding what goes in these version strings 7 | * is done in Buildscr, and then written into version.h. All we have 8 | * to do here is to drop it into variables of the right names. 9 | */ 10 | #include "putty.h" 11 | #include "ssh.h" 12 | 13 | #ifdef SOURCE_COMMIT 14 | #include "empty.h" 15 | #endif 16 | 17 | #include "version.h" 18 | 19 | #ifdef MOD_PERSO 20 | #include 21 | #include 22 | const char ver[] = "Custom build" ; 23 | const char sshver[] = "PuTTY-KiTTY\0 " ; 24 | void set_sshver( char * vers ) { 25 | if(strlen(vers)<40 ) { 26 | strcpy( sshver, vers ) ; 27 | } else { 28 | vers[40]='\0'; 29 | memcpy( sshver,vers, 40 ) ; 30 | } 31 | } 32 | #else 33 | const char ver[] = TEXTVER; 34 | const char sshver[] = SSHVER; 35 | #endif 36 | 37 | const char commitid[] = SOURCE_COMMIT; 38 | 39 | /* 40 | * SSH local version string MUST be under 40 characters. Here's a 41 | * compile time assertion to verify this. 42 | */ 43 | enum { vorpal_sword = 1 / (sizeof(sshver) <= 40) }; 44 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/version.h: -------------------------------------------------------------------------------- 1 | #define RELEASE 0.76 2 | #define TEXTVER "Release 0.76" 3 | #define SSHVER "-Release-0.76" 4 | #define BINARY_VERSION 0,76,0,14 5 | #define SOURCE_COMMIT "unavailable" 6 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/pageant-rc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Constant definitions for the Pageant resource file. 3 | */ 4 | 5 | #ifndef MOD_INTEGRATED_AGENT 6 | #define IDI_MAINICON 200 7 | #define IDI_TRAYICON 201 8 | #else 9 | #define IDI_MAINICON_AGENT 900 10 | #define IDI_TRAYICON 901 11 | #endif 12 | 13 | #define IDD_KEYLIST 211 14 | #define IDD_LOAD_PASSPHRASE 210 15 | #define IDD_ONDEMAND_PASSPHRASE 212 16 | #define IDD_ABOUT 213 17 | #define IDD_LICENCE 214 18 | 19 | #define IDC_PASSPHRASE_STATIC1 100 20 | #define IDC_PASSPHRASE_FINGERPRINT 101 21 | #define IDC_PASSPHRASE_STATIC2 102 22 | #define IDC_PASSPHRASE_STATIC3 103 23 | #define IDC_PASSPHRASE_EDITBOX 104 24 | 25 | #define IDC_KEYLIST_LISTBOX 100 26 | #define IDC_KEYLIST_ADDKEY 101 27 | #define IDC_KEYLIST_ADDKEY_ENC 110 28 | #define IDC_KEYLIST_REENCRYPT 106 29 | #define IDC_KEYLIST_REMOVE 102 30 | #define IDC_KEYLIST_HELP 103 31 | #define IDC_KEYLIST_FPTYPE_STATIC 104 32 | #define IDC_KEYLIST_FPTYPE 105 33 | 34 | #define IDC_ABOUT_LICENCE 101 35 | #define IDC_ABOUT_WEBSITE 102 36 | #define IDC_ABOUT_TEXTBOX 1000 37 | 38 | #define IDC_LICENCE_TEXTBOX 1000 39 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/pageant.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76_My_PuTTY/windows/pageant.ico -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/pageant.mft: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | PuTTY SSH authentication agent 12 | 13 | 14 | 16 | 22 | 23 | 24 | 25 | 26 | 28 | true 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/pageants.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76_My_PuTTY/windows/pageants.ico -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/plink.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "Plink" 4 | #define APPDESC "Command-line SSH, Telnet, and Rlogin client" 5 | 6 | 200 ICON "putty.ico" 7 | 8 | #include "version.rc2" 9 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/pscp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76_My_PuTTY/windows/pscp.ico -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/pscp.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "PSCP" 4 | #define APPDESC "Command-line SCP/SFTP client" 5 | 6 | 200 ICON "pscp.ico" 7 | 8 | #include "version.rc2" 9 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/psftp.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "PSFTP" 4 | #define APPDESC "Command-line interactive SFTP client" 5 | 6 | 200 ICON "pscp.ico" 7 | 8 | #include "version.rc2" 9 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/putty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76_My_PuTTY/windows/putty.ico -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/putty.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "PuTTY" 4 | #define APPDESC "SSH, Telnet, Rlogin, and SUPDUP client" 5 | 6 | #include "winhelp.rc2" 7 | #include "win_res.rc2" 8 | 9 | #ifdef MOD_PERSO 10 | #ifndef NO_MANIFESTS 11 | 1 RT_MANIFEST "kitty.mft" 12 | #endif /* NO_MANIFESTS */ 13 | #else 14 | #ifndef NO_MANIFESTS 15 | 1 RT_MANIFEST "putty.mft" 16 | #endif /* NO_MANIFESTS */ 17 | #endif 18 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/puttycfg.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76_My_PuTTY/windows/puttycfg.ico -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/puttygen-rc.h: -------------------------------------------------------------------------------- 1 | #define IDC_PPKVER_STATIC 100 2 | #define IDC_PPKVER_2 101 3 | #define IDC_PPKVER_3 102 4 | #define IDC_KDF_STATIC 103 5 | #define IDC_KDF_ARGON2ID 104 6 | #define IDC_KDF_ARGON2I 105 7 | #define IDC_KDF_ARGON2D 106 8 | #define IDC_ARGON2_MEM_STATIC 107 9 | #define IDC_ARGON2_MEM 108 10 | #define IDC_ARGON2_MEM_STATIC2 109 11 | #define IDC_PPK_AUTO_STATIC 110 12 | #define IDC_PPK_AUTO_YES 111 13 | #define IDC_PPK_AUTO_NO 112 14 | #define IDC_ARGON2_TIME_STATIC 113 15 | #define IDC_ARGON2_TIME 114 16 | #define IDC_ARGON2_PARALLEL_STATIC 115 17 | #define IDC_ARGON2_PARALLEL 116 18 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/puttygen.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76_My_PuTTY/windows/puttygen.ico -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/puttygen.mft: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | SSH key generator for PuTTY 12 | 13 | 14 | 16 | 22 | 23 | 24 | 25 | 26 | 28 | true 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/puttyins.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76_My_PuTTY/windows/puttyins.ico -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/puttytel.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "PuTTYtel" 4 | #define APPDESC "Telnet and Rlogin client" 5 | 6 | #include "winhelp.rc2" 7 | #include "win_res.rc2" 8 | 9 | #ifndef NO_MANIFESTS 10 | 1 RT_MANIFEST "puttytel.mft" 11 | #endif /* NO_MANIFESTS */ 12 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/rcstuff.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Miscellaneous stuff to include in all .rc files. 3 | */ 4 | 5 | #ifndef PUTTY_RCSTUFF_H 6 | #define PUTTY_RCSTUFF_H 7 | 8 | #ifdef __LCC__ 9 | #include 10 | #else 11 | 12 | /* Some compilers don't have winresrc.h */ 13 | #ifndef NO_WINRESRC_H 14 | #ifndef MSVC4 15 | #include 16 | #else 17 | #include 18 | #endif 19 | #endif 20 | 21 | #endif /* end #ifdef __LCC__ */ 22 | 23 | /* Some systems don't define this, so I do it myself if necessary */ 24 | #ifndef TCS_MULTILINE 25 | #define TCS_MULTILINE 0x0200 26 | #endif 27 | 28 | /* Likewise */ 29 | #ifndef RT_MANIFEST 30 | #define RT_MANIFEST 24 31 | #endif 32 | 33 | /* LCC is the offender here. */ 34 | #ifndef VS_FF_DEBUG 35 | #define VS_FF_DEBUG 1 36 | #endif 37 | #ifndef VS_FF_PRERELEASE 38 | #define VS_FF_PRERELEASE 2 39 | #endif 40 | #ifndef VS_FF_PRIVATEBUILD 41 | #define VS_FF_PRIVATEBUILD 8 42 | #endif 43 | #ifndef VOS__WINDOWS32 44 | #define VOS__WINDOWS32 4 45 | #endif 46 | #ifndef VFT_APP 47 | #define VFT_APP 1 48 | #endif 49 | 50 | #endif /* PUTTY_RCSTUFF_H */ 51 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/version_major.txt: -------------------------------------------------------------------------------- 1 | "0.76.0" 2 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/version_minor.txt: -------------------------------------------------------------------------------- 1 | 14 2 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/windefs.c: -------------------------------------------------------------------------------- 1 | /* 2 | * windefs.c: default settings that are specific to Windows. 3 | */ 4 | 5 | #include "putty.h" 6 | 7 | #include 8 | 9 | FontSpec *platform_default_fontspec(const char *name) 10 | { 11 | if (!strcmp(name, "Font")) 12 | return fontspec_new("Courier New", false, 10, ANSI_CHARSET); 13 | else 14 | return fontspec_new("", false, 0, 0); 15 | } 16 | 17 | Filename *platform_default_filename(const char *name) 18 | { 19 | if (!strcmp(name, "LogFileName")) 20 | #ifdef MOD_PERSO 21 | return filename_from_str("kitty.log"); 22 | #else 23 | return filename_from_str("putty.log"); 24 | #endif 25 | else 26 | return filename_from_str(""); 27 | } 28 | 29 | char *platform_default_s(const char *name) 30 | { 31 | if (!strcmp(name, "SerialLine")) 32 | return dupstr("COM1"); 33 | return NULL; 34 | } 35 | 36 | bool platform_default_b(const char *name, bool def) 37 | { 38 | return def; 39 | } 40 | 41 | int platform_default_i(const char *name, int def) 42 | { 43 | return def; 44 | } 45 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/winhelp.rc2: -------------------------------------------------------------------------------- 1 | #include "win_res.h" 2 | 3 | #ifdef EMBED_CHM 4 | ID_CUSTOM_CHMFILE TYPE_CUSTOM_CHMFILE "../doc/putty.chm" 5 | #define HELPVER " (with embedded help)" 6 | #else 7 | #define HELPVER " (without embedded help)" 8 | #endif 9 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/winnohlp.c: -------------------------------------------------------------------------------- 1 | /* 2 | * nohelp.c: implement the has_embedded_chm() function for 3 | * applications that have no help file at all, so that misc.c's 4 | * buildinfo string knows not to talk meaninglessly about whether the 5 | * nonexistent help file is present. 6 | */ 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | #include "putty.h" 14 | 15 | int has_embedded_chm(void) { return -1; } 16 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/winnojmp.c: -------------------------------------------------------------------------------- 1 | /* 2 | * winnojmp.c: stub jump list functions for Windows executables that 3 | * don't update the jump list. 4 | */ 5 | 6 | void add_session_to_jumplist(const char * const sessionname) {} 7 | void remove_session_from_jumplist(const char * const sessionname) {} 8 | void clear_jumplist(void) {} 9 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/winseat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Small implementation of Seat and LogPolicy shared between window.c 3 | * and windlg.c. 4 | */ 5 | 6 | #ifdef MOD_FAR2L 7 | #pragma once 8 | #endif 9 | typedef struct WinGuiSeat WinGuiSeat; 10 | 11 | struct WinGuiSeat { 12 | HWND term_hwnd; 13 | Seat seat; 14 | LogPolicy logpolicy; 15 | }; 16 | 17 | extern const LogPolicyVtable win_gui_logpolicy_vt; /* in windlg.c */ 18 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/winselgui.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Implementation of do_select() for winnet.c to use, that uses 3 | * WSAAsyncSelect to convert network activity into window messages, 4 | * for integration into a GUI event loop. 5 | */ 6 | 7 | #include "putty.h" 8 | 9 | static HWND winsel_hwnd = NULL; 10 | 11 | void winselgui_set_hwnd(HWND hwnd) 12 | { 13 | winsel_hwnd = hwnd; 14 | } 15 | 16 | void winselgui_clear_hwnd(void) 17 | { 18 | winsel_hwnd = NULL; 19 | } 20 | 21 | const char *do_select(SOCKET skt, bool enable) 22 | { 23 | int msg, events; 24 | if (enable) { 25 | msg = WM_NETEVENT; 26 | events = (FD_CONNECT | FD_READ | FD_WRITE | 27 | FD_OOB | FD_CLOSE | FD_ACCEPT); 28 | } else { 29 | msg = events = 0; 30 | } 31 | 32 | assert(winsel_hwnd); 33 | 34 | if (p_WSAAsyncSelect(skt, winsel_hwnd, msg, events) == SOCKET_ERROR) 35 | return winsock_error_string(p_WSAGetLastError()); 36 | 37 | return NULL; 38 | } 39 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/winsocks.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Main program for Windows psocks. 3 | */ 4 | 5 | #include "putty.h" 6 | #include "ssh.h" 7 | #include "psocks.h" 8 | 9 | static const PsocksPlatform platform = { 10 | NULL /* open_pipes */, 11 | NULL /* start_subcommand */, 12 | }; 13 | 14 | int main(int argc, char **argv) 15 | { 16 | psocks_state *ps = psocks_new(&platform); 17 | psocks_cmdline(ps, argc, argv); 18 | 19 | sk_init(); 20 | winselcli_setup(); 21 | psocks_start(ps); 22 | 23 | cli_main_loop(cliloop_null_pre, cliloop_null_post, NULL); 24 | } 25 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/wintime.c: -------------------------------------------------------------------------------- 1 | /* 2 | * wintime.c - Avoid trouble with time() returning (time_t)-1 on Windows. 3 | */ 4 | 5 | #include "putty.h" 6 | #include 7 | 8 | struct tm ltime(void) 9 | { 10 | SYSTEMTIME st; 11 | struct tm tm; 12 | 13 | memset(&tm, 0, sizeof(tm)); /* in case there are any other fields */ 14 | 15 | GetLocalTime(&st); 16 | tm.tm_sec=st.wSecond; 17 | tm.tm_min=st.wMinute; 18 | tm.tm_hour=st.wHour; 19 | tm.tm_mday=st.wDay; 20 | tm.tm_mon=st.wMonth-1; 21 | tm.tm_year=(st.wYear>=1900?st.wYear-1900:0); 22 | tm.tm_wday=st.wDayOfWeek; 23 | tm.tm_yday=-1; /* GetLocalTime doesn't tell us */ 24 | tm.tm_isdst=0; /* GetLocalTime doesn't tell us */ 25 | return tm; 26 | } 27 | -------------------------------------------------------------------------------- /0.76_My_PuTTY/windows/winx11.c: -------------------------------------------------------------------------------- 1 | /* 2 | * winx11.c: fetch local auth data for X forwarding. 3 | */ 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include "putty.h" 10 | #include "ssh.h" 11 | 12 | void platform_get_x11_auth(struct X11Display *disp, Conf *conf) 13 | { 14 | char *xauthpath = conf_get_filename(conf, CONF_xauthfile)->path; 15 | if (xauthpath[0]) 16 | x11_get_auth_from_authfile(disp, xauthpath); 17 | } 18 | 19 | const bool platform_uses_x11_unix_by_default = false; 20 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/aqsync.c: -------------------------------------------------------------------------------- 1 | /* 2 | * aqsync.c: the agent_query_synchronous() wrapper function. 3 | * 4 | * This is a very small thing to have to put in its own module, but it 5 | * wants to be shared between back ends, and exist in any SSH client 6 | * program and also Pageant, and _nowhere else_ (because it pulls in 7 | * the main agent_query). 8 | */ 9 | 10 | #include 11 | 12 | #include "putty.h" 13 | 14 | void agent_query_synchronous(strbuf *query, void **out, int *outlen) 15 | { 16 | agent_pending_query *pending; 17 | 18 | pending = agent_query(query, out, outlen, NULL, 0); 19 | assert(!pending); 20 | } 21 | 22 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/be_all.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTY proper: list the available backends 3 | * including ssh. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | /* 10 | * This appname is not strictly in the right place, since Plink 11 | * also uses this module. However, Plink doesn't currently use any 12 | * of the dialog-box sorts of things that make use of appname, so 13 | * it shouldn't do any harm here. I'm trying to avoid having to 14 | * have tiny little source modules containing nothing but 15 | * declarations of appname, for as long as I can... 16 | */ 17 | const char *const appname = "PuTTY"; 18 | 19 | const int be_default_protocol = PROT_SSH; 20 | 21 | const struct BackendVtable *const backends[] = { 22 | &ssh_backend, 23 | &telnet_backend, 24 | &rlogin_backend, 25 | &supdup_backend, 26 | &raw_backend, 27 | &sshconn_backend, 28 | #ifdef MOD_ADB 29 | &adb_backend, 30 | #endif 31 | NULL 32 | }; 33 | 34 | const size_t n_ui_backends = 1; 35 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/be_all_s.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTY proper: list the available backends 3 | * including ssh, plus the serial backend. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | /* 10 | * This appname is not strictly in the right place, since Plink 11 | * also uses this module. However, Plink doesn't currently use any 12 | * of the dialog-box sorts of things that make use of appname, so 13 | * it shouldn't do any harm here. I'm trying to avoid having to 14 | * have tiny little source modules containing nothing but 15 | * declarations of appname, for as long as I can... 16 | */ 17 | #if (defined MOD_PERSO) && (!defined FLJ) 18 | char *appname = "KiTTY"; 19 | #else 20 | const char *const appname = "PuTTY"; 21 | #endif 22 | 23 | const int be_default_protocol = PROT_SSH; 24 | 25 | const struct BackendVtable *const backends[] = { 26 | &ssh_backend, 27 | &serial_backend, 28 | &telnet_backend, 29 | &rlogin_backend, 30 | &supdup_backend, 31 | &raw_backend, 32 | #ifdef MOD_ADB 33 | &adb_backend, 34 | #endif 35 | &sshconn_backend, 36 | NULL 37 | }; 38 | 39 | const size_t n_ui_backends = 2; 40 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/be_none.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for programs that do not support selection of backend 3 | * (such as pterm). 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | const int be_default_protocol = -1; 10 | 11 | const struct BackendVtable *const backends[] = { 12 | NULL 13 | }; 14 | 15 | const size_t n_ui_backends = 0; 16 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/be_nos_s.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTYtel: list the available backends not 3 | * including ssh. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | const int be_default_protocol = PROT_TELNET; 10 | 11 | const char *const appname = "PuTTYtel"; 12 | 13 | const struct BackendVtable *const backends[] = { 14 | &telnet_backend, 15 | &serial_backend, 16 | &rlogin_backend, 17 | &supdup_backend, 18 | &raw_backend, 19 | #ifdef MOD_ADB 20 | &adb_backend, 21 | #endif 22 | NULL 23 | }; 24 | 25 | const size_t n_ui_backends = 2; 26 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/be_nossh.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for PuTTYtel: list the available backends not 3 | * including ssh. 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | 9 | const int be_default_protocol = PROT_TELNET; 10 | 11 | const char *const appname = "PuTTYtel"; 12 | 13 | const struct BackendVtable *const backends[] = { 14 | &telnet_backend, 15 | &rlogin_backend, 16 | &supdup_backend, 17 | &raw_backend, 18 | #ifdef MOD_ADB 19 | &adb_backend, 20 | #endif 21 | NULL 22 | }; 23 | 24 | const size_t n_ui_backends = 1; 25 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/be_ssh.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Linking module for programs that are restricted to only using 3 | * SSH-type protocols (pscp and psftp). These still have a choice of 4 | * two actual backends, because they can also speak PROT_SSHCONN. 5 | */ 6 | 7 | #include 8 | #include "putty.h" 9 | 10 | const int be_default_protocol = PROT_SSH; 11 | 12 | const struct BackendVtable *const backends[] = { 13 | &ssh_backend, 14 | &sshconn_backend, 15 | NULL 16 | }; 17 | 18 | const size_t n_ui_backends = 0; /* not used in programs with a config UI */ 19 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/charset/README: -------------------------------------------------------------------------------- 1 | This subdirectory contains a general character-set conversion 2 | library, used in the Unix port of PuTTY, and available for use in 3 | other ports if it should happen to be useful. 4 | 5 | This is a variant of a library that's currently used in some other 6 | programs such as Timber and Halibut. At some future date, we would 7 | like to merge the two libraries, so that all programs use the same 8 | libcharset. 9 | 10 | It is therefore a _strong_ design goal that this library should remain 11 | perfectly general, and not tied to particulars of PuTTY. It must not 12 | reference any code outside its own subdirectory; it should not have 13 | PuTTY-specific helper routines added to it unless they can be 14 | documented in a general manner which might make them useful in other 15 | circumstances as well. 16 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/charset/enum.c: -------------------------------------------------------------------------------- 1 | /* 2 | * enum.c - enumerate all charsets defined by the library. 3 | * 4 | * This file maintains a list of every other source file which 5 | * contains ENUM_CHARSET definitions. It #includes each one with 6 | * ENUM_CHARSETS defined, which causes those source files to do 7 | * nothing at all except call the ENUM_CHARSET macro on each 8 | * charset they define. 9 | * 10 | * This file in turn is included from various other places, with 11 | * the ENUM_CHARSET macro defined to various different things. This 12 | * allows us to have multiple implementations of the master charset 13 | * lookup table (a static one and a dynamic one). 14 | */ 15 | 16 | #define ENUM_CHARSETS 17 | #include "sbcsdat.c" 18 | #include "utf8.c" 19 | #undef ENUM_CHARSETS 20 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/charset/sbcs.c: -------------------------------------------------------------------------------- 1 | /* 2 | * sbcs.c - routines to handle single-byte character sets. 3 | */ 4 | 5 | #include "charset.h" 6 | #include "internal.h" 7 | 8 | /* 9 | * The charset_spec for any single-byte character set should 10 | * provide read_sbcs() as its read function, and its `data' field 11 | * should be a wchar_t string constant containing the 256 entries 12 | * of the translation table. 13 | */ 14 | 15 | void read_sbcs(charset_spec const *charset, long int input_chr, 16 | charset_state *state, 17 | void (*emit)(void *ctx, long int output), void *emitctx) 18 | { 19 | const struct sbcs_data *sd = charset->data; 20 | 21 | UNUSEDARG(state); 22 | 23 | emit(emitctx, sd->sbcs2ucs[input_chr]); 24 | } 25 | 26 | void write_sbcs(charset_spec const *charset, long int input_chr, 27 | charset_state *state, 28 | void (*emit)(void *ctx, long int output), void *emitctx) 29 | { 30 | const struct sbcs_data *sd = charset->data; 31 | int i, j, k, c; 32 | 33 | UNUSEDARG(state); 34 | 35 | /* 36 | * Binary-search in the ucs2sbcs table. 37 | */ 38 | i = -1; 39 | j = sd->nvalid; 40 | while (i+1 < j) { 41 | k = (i+j)/2; 42 | c = sd->ucs2sbcs[k]; 43 | if (input_chr < sd->sbcs2ucs[c]) 44 | j = k; 45 | else if (input_chr > sd->sbcs2ucs[c]) 46 | i = k; 47 | else { 48 | emit(emitctx, c); 49 | return; 50 | } 51 | } 52 | emit(emitctx, ERROR); 53 | } 54 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/charset/slookup.c: -------------------------------------------------------------------------------- 1 | /* 2 | * slookup.c - static lookup of character sets. 3 | */ 4 | 5 | #include "charset.h" 6 | #include "internal.h" 7 | 8 | #define ENUM_CHARSET(x) extern charset_spec const charset_##x; 9 | #include "enum.c" 10 | #undef ENUM_CHARSET 11 | 12 | static charset_spec const *const cs_table[] = { 13 | 14 | #define ENUM_CHARSET(x) &charset_##x, 15 | #include "enum.c" 16 | #undef ENUM_CHARSET 17 | 18 | }; 19 | 20 | charset_spec const *charset_find_spec(int charset) 21 | { 22 | int i; 23 | 24 | for (i = 0; i < (int)lenof(cs_table); i++) 25 | if (cs_table[i]->charset == charset) 26 | return cs_table[i]; 27 | 28 | return NULL; 29 | } 30 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/clicons.c: -------------------------------------------------------------------------------- 1 | /* 2 | * clicons.c: definitions limited to tools that link against both 3 | * console.c and cmdline.c. 4 | */ 5 | 6 | #include "putty.h" 7 | 8 | static const LogPolicyVtable console_cli_logpolicy_vt = { 9 | .eventlog = console_eventlog, 10 | .askappend = console_askappend, 11 | .logging_error = console_logging_error, 12 | .verbose = cmdline_lp_verbose, 13 | }; 14 | LogPolicy console_cli_logpolicy[1] = {{ &console_cli_logpolicy_vt }}; 15 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/console.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Common pieces between the platform console frontend modules. 3 | */ 4 | 5 | extern const char hk_absentmsg_common_fmt[]; 6 | extern const char hk_absentmsg_interactive_intro[]; 7 | extern const char hk_absentmsg_interactive_prompt[]; 8 | extern const char hk_wrongmsg_common_fmt[]; 9 | extern const char hk_wrongmsg_interactive_intro[]; 10 | extern const char hk_wrongmsg_interactive_prompt[]; 11 | 12 | extern const char weakcrypto_msg_common_fmt[]; 13 | 14 | extern const char weakhk_msg_common_fmt[]; 15 | 16 | extern const char console_continue_prompt[]; 17 | extern const char console_abandoned_msg[]; 18 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/crypto/blowfish.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Header file shared between sshblowf.c and sshbcrypt.c. Exposes the 3 | * internal Blowfish routines needed by bcrypt. 4 | */ 5 | 6 | typedef struct BlowfishContext BlowfishContext; 7 | 8 | BlowfishContext *blowfish_make_context(void); 9 | void blowfish_free_context(BlowfishContext *ctx); 10 | void blowfish_initkey(BlowfishContext *ctx); 11 | void blowfish_expandkey(BlowfishContext *ctx, 12 | const void *key, short keybytes, 13 | const void *salt, short saltbytes); 14 | void blowfish_lsb_encrypt_ecb(void *blk, int len, BlowfishContext *ctx); 15 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/crypto/mac.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Centralised parts of the SSH-2 MAC API, which don't need to vary 3 | * with the MAC implementation. 4 | */ 5 | 6 | #include 7 | 8 | #include "ssh.h" 9 | 10 | bool ssh2_mac_verresult(ssh2_mac *mac, const void *candidate) 11 | { 12 | unsigned char correct[64]; /* at least as big as all known MACs */ 13 | bool toret; 14 | 15 | assert(mac->vt->len <= sizeof(correct)); 16 | ssh2_mac_genresult(mac, correct); 17 | toret = smemeq(correct, candidate, mac->vt->len); 18 | 19 | smemclr(correct, sizeof(correct)); 20 | 21 | return toret; 22 | } 23 | 24 | static void ssh2_mac_prepare(ssh2_mac *mac, const void *blk, int len, 25 | unsigned long seq) 26 | { 27 | ssh2_mac_start(mac); 28 | put_uint32(mac, seq); 29 | put_data(mac, blk, len); 30 | } 31 | 32 | void ssh2_mac_generate(ssh2_mac *mac, void *blk, int len, unsigned long seq) 33 | { 34 | ssh2_mac_prepare(mac, blk, len, seq); 35 | ssh2_mac_genresult(mac, (unsigned char *)blk + len); 36 | } 37 | 38 | bool ssh2_mac_verify( 39 | ssh2_mac *mac, const void *blk, int len, unsigned long seq) 40 | { 41 | ssh2_mac_prepare(mac, blk, len, seq); 42 | return ssh2_mac_verresult(mac, (const unsigned char *)blk + len); 43 | } 44 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/keygen/ecdsa.c: -------------------------------------------------------------------------------- 1 | /* 2 | * EC key generation. 3 | */ 4 | 5 | #include "ssh.h" 6 | #include "sshkeygen.h" 7 | #include "mpint.h" 8 | 9 | int ecdsa_generate(struct ecdsa_key *ek, int bits) 10 | { 11 | if (!ec_nist_alg_and_curve_by_bits(bits, &ek->curve, &ek->sshk.vt)) 12 | return 0; 13 | 14 | mp_int *one = mp_from_integer(1); 15 | ek->privateKey = mp_random_in_range(one, ek->curve->w.G_order); 16 | mp_free(one); 17 | 18 | ek->publicKey = ecdsa_public(ek->privateKey, ek->sshk.vt); 19 | 20 | return 1; 21 | } 22 | 23 | int eddsa_generate(struct eddsa_key *ek, int bits) 24 | { 25 | if (!ec_ed_alg_and_curve_by_bits(bits, &ek->curve, &ek->sshk.vt)) 26 | return 0; 27 | 28 | /* EdDSA secret keys are just 32 bytes of hash preimage; the 29 | * 64-byte SHA-512 hash of that key will be used when signing, 30 | * but the form of the key stored on disk is the preimage 31 | * only. */ 32 | ek->privateKey = mp_random_bits(bits); 33 | 34 | ek->publicKey = eddsa_public(ek->privateKey, ek->sshk.vt); 35 | 36 | return 1; 37 | } 38 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/keygen/smallprimes.c: -------------------------------------------------------------------------------- 1 | /* 2 | * smallprimes.c: implementation of the array of small primes defined 3 | * in sshkeygen.h. 4 | */ 5 | 6 | #include 7 | #include "ssh.h" 8 | #include "sshkeygen.h" 9 | 10 | /* The real array that stores the primes. It has to be writable in 11 | * this module, but outside this module, we only expose the 12 | * const-qualified pointer 'smallprimes' so that nobody else can 13 | * accidentally overwrite it. */ 14 | static unsigned short smallprimes_array[NSMALLPRIMES]; 15 | 16 | const unsigned short *const smallprimes = smallprimes_array; 17 | 18 | void init_smallprimes(void) 19 | { 20 | if (smallprimes_array[0]) 21 | return; /* already done */ 22 | 23 | bool A[65536]; 24 | 25 | for (size_t i = 2; i < lenof(A); i++) 26 | A[i] = true; 27 | 28 | for (size_t i = 2; i < lenof(A); i++) { 29 | if (!A[i]) 30 | continue; 31 | for (size_t j = 2*i; j < lenof(A); j += i) 32 | A[j] = false; 33 | } 34 | 35 | size_t pos = 0; 36 | for (size_t i = 2; i < lenof(A); i++) { 37 | if (A[i]) { 38 | assert(pos < NSMALLPRIMES); 39 | smallprimes_array[pos++] = i; 40 | } 41 | } 42 | 43 | assert(pos == NSMALLPRIMES); 44 | } 45 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/proxy/nocproxy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Routines to refuse to do cryptographic interaction with proxies 3 | * in PuTTY. This is a stub implementation of the same interfaces 4 | * provided by cproxy.c, for use in PuTTYtel. 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | #include "putty.h" 12 | #include "network.h" 13 | #include "proxy.h" 14 | 15 | void proxy_socks5_offerencryptedauth(BinarySink *bs) 16 | { 17 | /* For telnet, don't add any new encrypted authentication routines */ 18 | } 19 | 20 | int proxy_socks5_handlechap (ProxySocket *p) 21 | { 22 | 23 | plug_closing(p->plug, "Proxy error: Trying to handle a SOCKS5 CHAP request" 24 | " in telnet-only build", 25 | PROXY_ERROR_GENERAL, 0); 26 | return 1; 27 | } 28 | 29 | int proxy_socks5_selectchap(ProxySocket *p) 30 | { 31 | plug_closing(p->plug, "Proxy error: Trying to handle a SOCKS5 CHAP request" 32 | " in telnet-only build", 33 | PROXY_ERROR_GENERAL, 0); 34 | return 1; 35 | } 36 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/proxy/noproxy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * noproxy.c: an alternative to proxy.c, for use by auxiliary programs 3 | * that need to make network connections but don't want to include all 4 | * the full-on support for endless network proxies (and its 5 | * configuration requirements). Implements the primary APIs of 6 | * proxy.c, but maps them straight to the underlying network layer. 7 | */ 8 | 9 | #include "putty.h" 10 | #include "network.h" 11 | #include "proxy.h" 12 | 13 | SockAddr *name_lookup(const char *host, int port, char **canonicalname, 14 | Conf *conf, int addressfamily, LogContext *logctx, 15 | const char *reason) 16 | { 17 | return sk_namelookup(host, canonicalname, addressfamily); 18 | } 19 | 20 | Socket *new_connection(SockAddr *addr, const char *hostname, 21 | int port, bool privport, 22 | bool oobinline, bool nodelay, bool keepalive, 23 | Plug *plug, Conf *conf) 24 | { 25 | return sk_new(addr, port, privport, oobinline, nodelay, keepalive, plug); 26 | } 27 | 28 | Socket *new_listener(const char *srcaddr, int port, Plug *plug, 29 | bool local_host_only, Conf *conf, int addressfamily) 30 | { 31 | return sk_newlistener(srcaddr, port, plug, local_host_only, addressfamily); 32 | } 33 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/proxy/pproxy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * pproxy.c: dummy implementation of platform_new_connection(), to 3 | * be supplanted on any platform which has its own local proxy 4 | * method. 5 | */ 6 | 7 | #include "putty.h" 8 | #include "network.h" 9 | #include "proxy.h" 10 | 11 | Socket *platform_new_connection(SockAddr *addr, const char *hostname, 12 | int port, int privport, 13 | int oobinline, int nodelay, int keepalive, 14 | Plug *plug, Conf *conf) 15 | { 16 | return NULL; 17 | } 18 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/psocks.h: -------------------------------------------------------------------------------- 1 | typedef struct psocks_state psocks_state; 2 | 3 | typedef struct PsocksPlatform PsocksPlatform; 4 | typedef struct PsocksDataSink PsocksDataSink; 5 | 6 | /* indices into PsocksDataSink arrays */ 7 | typedef enum PsocksDirection { UP, DN } PsocksDirection; 8 | 9 | typedef struct PsocksDataSink { 10 | void (*free)(PsocksDataSink *); 11 | BinarySink *s[2]; 12 | } PsocksDataSink; 13 | static inline void pds_free(PsocksDataSink *pds) 14 | { pds->free(pds); } 15 | 16 | PsocksDataSink *pds_stdio(FILE *fp[2]); 17 | 18 | struct PsocksPlatform { 19 | PsocksDataSink *(*open_pipes)( 20 | const char *cmd, const char *const *direction_args, 21 | const char *index_arg, char **err); 22 | void (*start_subcommand)(strbuf *args); 23 | }; 24 | 25 | psocks_state *psocks_new(const PsocksPlatform *); 26 | void psocks_free(psocks_state *ps); 27 | void psocks_cmdline(psocks_state *ps, int argc, char **argv); 28 | void psocks_start(psocks_state *ps); 29 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/puttyps.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Find the platform-specific header for this platform. 3 | */ 4 | 5 | #ifndef PUTTY_PUTTYPS_H 6 | #define PUTTY_PUTTYPS_H 7 | 8 | #ifdef _WINDOWS 9 | 10 | #include "platform.h" 11 | 12 | #else 13 | 14 | #include "unix.h" 15 | 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Developer Studio generated include file. 3 | // Used by win_res.rc 4 | // 5 | 6 | // Next default values for new objects 7 | // 8 | #ifdef APSTUDIO_INVOKED 9 | #ifndef APSTUDIO_READONLY_SYMBOLS 10 | #define _APS_NEXT_RESOURCE_VALUE 101 11 | #define _APS_NEXT_COMMAND_VALUE 40001 12 | #define _APS_NEXT_CONTROL_VALUE 1000 13 | #define _APS_NEXT_SYMED_VALUE 101 14 | #endif 15 | #endif 16 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/ssh/gssc.h: -------------------------------------------------------------------------------- 1 | #ifndef PUTTY_SSHGSSC_H 2 | #define PUTTY_SSHGSSC_H 3 | #include "putty.h" 4 | #ifndef NO_GSSAPI 5 | 6 | #include "pgssapi.h" 7 | #include "ssh/gss.h" 8 | 9 | typedef struct gssapi_ssh_gss_ctx { 10 | OM_uint32 maj_stat; 11 | OM_uint32 min_stat; 12 | gss_ctx_id_t ctx; 13 | time_t expiry; 14 | } gssapi_ssh_gss_ctx; 15 | 16 | void ssh_gssapi_bind_fns(struct ssh_gss_library *lib); 17 | 18 | #else 19 | 20 | int ssh_gssapi_init(void); 21 | 22 | #endif /*NO_GSSAPI*/ 23 | 24 | #endif /*PUTTY_SSHGSSC_H*/ 25 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/ssh/nogss.c: -------------------------------------------------------------------------------- 1 | #include "putty.h" 2 | #ifndef NO_GSSAPI 3 | 4 | /* For platforms not supporting GSSAPI */ 5 | 6 | struct ssh_gss_liblist *ssh_gss_setup(Conf *conf) 7 | { 8 | struct ssh_gss_liblist *list = snew(struct ssh_gss_liblist *); 9 | list->libraries = NULL; 10 | list->nlibraries = 0; 11 | return list; 12 | } 13 | 14 | void ssh_gss_cleanup(struct ssh_gss_liblist *list) 15 | { 16 | sfree(list); 17 | } 18 | 19 | #endif /* NO_GSSAPI */ 20 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/ssh/nosharing.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub implementation of SSH connection-sharing IPC, for any 3 | * platform which can't support it at all. 4 | */ 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #include "tree234.h" 11 | #include "putty.h" 12 | #include "ssh.h" 13 | #include "network.h" 14 | 15 | int platform_ssh_share(const char *name, Conf *conf, 16 | Plug *downplug, Plug *upplug, Socket **sock, 17 | char **logtext, char **ds_err, char **us_err, 18 | bool can_upstream, bool can_downstream) 19 | { 20 | return SHARE_NONE; 21 | } 22 | 23 | void platform_ssh_share_cleanup(const char *name) 24 | { 25 | } 26 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/stubs/nogss.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub definitions of the GSSAPI library list, for Unix pterm and 3 | * any other application that needs the symbols defined but has no 4 | * use for them. 5 | */ 6 | 7 | #include "putty.h" 8 | 9 | const int ngsslibs = 0; 10 | const char *const gsslibnames[1] = { "dummy" }; 11 | const struct keyvalwhere gsslibkeywords[1] = { { "dummy", 0, -1, -1 } }; 12 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/stubs/noprint.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub implementation of the printing interface for PuTTY, for the 3 | * benefit of non-printing terminal applications. 4 | */ 5 | 6 | #include 7 | #include 8 | #include "putty.h" 9 | 10 | struct printer_job_tag { 11 | int dummy; 12 | }; 13 | 14 | printer_job *printer_start_job(char *printer) 15 | { 16 | return NULL; 17 | } 18 | 19 | void printer_job_data(printer_job *pj, const void *data, size_t len) 20 | { 21 | } 22 | 23 | void printer_finish_job(printer_job *pj) 24 | { 25 | } 26 | 27 | printer_enum *printer_start_enum(int *nprinters_ptr) 28 | { 29 | *nprinters_ptr = 0; 30 | return NULL; 31 | } 32 | char *printer_get_name(printer_enum *pe, int i) 33 | { 34 | return NULL; 35 | } 36 | void printer_finish_enum(printer_enum *pe) 37 | { 38 | } 39 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/stubs/norand.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stub implementations of RNG functions for applications without an RNG. 3 | */ 4 | 5 | #include "putty.h" 6 | 7 | void random_read(void *out, size_t size) 8 | { 9 | unreachable("Random numbers are not available in this application"); 10 | } 11 | 12 | void random_save_seed(void) 13 | { 14 | } 15 | 16 | void random_destroy_seed(void) 17 | { 18 | } 19 | 20 | void noise_ultralight(NoiseSourceId id, unsigned long data) 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/stubs/noterm.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Stubs of functions in terminal.c, for use in programs that don't 3 | * have a terminal. 4 | */ 5 | 6 | #include "putty.h" 7 | #include "terminal.h" 8 | 9 | void term_nopaste(Terminal *term) 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/stubs/notiming.c: -------------------------------------------------------------------------------- 1 | /* 2 | * notiming.c: stub version of timing API. 3 | * 4 | * Used in any tool which needs a subsystem linked against the 5 | * timing API but doesn't want to actually provide timing. For 6 | * example, key generation tools need the random number generator, 7 | * but they don't want the hassle of calling noise_regular() at 8 | * regular intervals - and they don't _need_ it either, since they 9 | * have their own rigorous and different means of noise collection. 10 | */ 11 | 12 | #include "putty.h" 13 | 14 | unsigned long schedule_timer(int ticks, timer_fn_t fn, void *ctx) 15 | { 16 | return 0; 17 | } 18 | 19 | void expire_timer_context(void *ctx) 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/stubs/nullplug.c: -------------------------------------------------------------------------------- 1 | /* 2 | * nullplug.c: provide a null implementation of the Plug vtable which 3 | * ignores all calls. Occasionally useful in cases where we want to 4 | * make a network connection just to see if it works, but not do 5 | * anything with it afterwards except close it again. 6 | */ 7 | 8 | #include "putty.h" 9 | 10 | static void nullplug_socket_log(Plug *plug, PlugLogType type, SockAddr *addr, 11 | int port, const char *err_msg, int err_code) 12 | { 13 | } 14 | 15 | static void nullplug_closing(Plug *plug, const char *error_msg, int error_code, 16 | bool calling_back) 17 | { 18 | } 19 | 20 | static void nullplug_receive( 21 | Plug *plug, int urgent, const char *data, size_t len) 22 | { 23 | } 24 | 25 | static void nullplug_sent(Plug *plug, size_t bufsize) 26 | { 27 | } 28 | 29 | static const PlugVtable nullplug_plugvt = { 30 | .log = nullplug_socket_log, 31 | .closing = nullplug_closing, 32 | .receive = nullplug_receive, 33 | .sent = nullplug_sent, 34 | }; 35 | 36 | static Plug nullplug_plug = { &nullplug_plugvt }; 37 | 38 | /* 39 | * There's a singleton instance of nullplug, because it's not 40 | * interesting enough to worry about making more than one of them. 41 | */ 42 | Plug *const nullplug = &nullplug_plug; 43 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/utils/dup_mb_to_wc.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Centralised Unicode-related helper functions, separate from misc.c 3 | * so that they can be omitted from tools that aren't including 4 | * Unicode handling. 5 | */ 6 | 7 | #include "putty.h" 8 | #include "misc.h" 9 | 10 | wchar_t *dup_mb_to_wc_c(int codepage, int flags, const char *string, int len) 11 | { 12 | int mult; 13 | for (mult = 1 ;; mult++) { 14 | wchar_t *ret = snewn(mult*len + 2, wchar_t); 15 | int outlen; 16 | outlen = mb_to_wc(codepage, flags, string, len, ret, mult*len + 1); 17 | if (outlen < mult*len+1) { 18 | ret[outlen] = L'\0'; 19 | return ret; 20 | } 21 | sfree(ret); 22 | } 23 | } 24 | 25 | wchar_t *dup_mb_to_wc(int codepage, int flags, const char *string) 26 | { 27 | return dup_mb_to_wc_c(codepage, flags, string, strlen(string)); 28 | } 29 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/utils/ltime.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Portable implementation of ltime() for any ISO-C platform where 3 | * time_t behaves. (In practice, we've found that platforms such as 4 | * Windows and Mac have needed their own specialised implementations.) 5 | */ 6 | 7 | #include 8 | #include 9 | 10 | struct tm ltime(void) 11 | { 12 | time_t t; 13 | time(&t); 14 | assert (t != ((time_t)-1)); 15 | return *localtime(&t); 16 | } 17 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/utils/version.c: -------------------------------------------------------------------------------- 1 | /* 2 | * PuTTY version numbering 3 | */ 4 | 5 | /* 6 | * The difficult part of deciding what goes in these version strings 7 | * is done in Buildscr, and then written into version.h. All we have 8 | * to do here is to drop it into variables of the right names. 9 | */ 10 | #include "putty.h" 11 | #include "ssh.h" 12 | 13 | #ifdef SOURCE_COMMIT 14 | #include "empty.h" 15 | #endif 16 | 17 | #include "version.h" 18 | 19 | #ifdef MOD_PERSO 20 | #include 21 | #include 22 | const char ver[] = "Custom build" ; 23 | const char sshver[] = "PuTTY-KiTTY\0 " ; 24 | void set_sshver( char * vers ) { 25 | if(strlen(vers)<40 ) { 26 | strcpy( sshver, vers ) ; 27 | } else { 28 | vers[40]='\0'; 29 | memcpy( sshver,vers, 40 ) ; 30 | } 31 | } 32 | #else 33 | const char ver[] = TEXTVER; 34 | const char sshver[] = SSHVER; 35 | #endif 36 | 37 | const char commitid[] = SOURCE_COMMIT; 38 | 39 | /* 40 | * SSH local version string MUST be under 40 characters. Here's a 41 | * compile time assertion to verify this. 42 | */ 43 | enum { vorpal_sword = 1 / (sizeof(sshver) <= 40) }; 44 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/version.h: -------------------------------------------------------------------------------- 1 | #define RELEASE 0.76 2 | #define TEXTVER "Release 0.76" 3 | #define SSHVER "-Release-0.76" 4 | #define BINARY_VERSION 0,76,1,13 5 | #define SOURCE_COMMIT "unavailable" 6 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/help.rc2: -------------------------------------------------------------------------------- 1 | #include "putty-rc.h" 2 | 3 | #ifdef EMBED_CHM 4 | ID_CUSTOM_CHMFILE TYPE_CUSTOM_CHMFILE "../doc/putty.chm" 5 | #define HELPVER " (with embedded help)" 6 | #else 7 | #define HELPVER " (without embedded help)" 8 | #endif 9 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/no-jump-list.c: -------------------------------------------------------------------------------- 1 | /* 2 | * winnojmp.c: stub jump list functions for Windows executables that 3 | * don't update the jump list. 4 | */ 5 | 6 | void add_session_to_jumplist(const char * const sessionname) {} 7 | void remove_session_from_jumplist(const char * const sessionname) {} 8 | void clear_jumplist(void) {} 9 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/nohelp.c: -------------------------------------------------------------------------------- 1 | /* 2 | * nohelp.c: implement the has_embedded_chm() function for 3 | * applications that have no help file at all, so that misc.c's 4 | * buildinfo string knows not to talk meaninglessly about whether the 5 | * nonexistent help file is present. 6 | */ 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | #include "putty.h" 14 | 15 | int has_embedded_chm(void) { return -1; } 16 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/pageant-rc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Constant definitions for the Pageant resource file. 3 | */ 4 | 5 | #ifndef MOD_INTEGRATED_AGENT 6 | #define IDI_MAINICON 200 7 | #define IDI_TRAYICON 201 8 | #else 9 | #define IDI_MAINICON_AGENT 900 10 | #define IDI_TRAYICON 901 11 | #endif 12 | 13 | #define IDD_KEYLIST 211 14 | #define IDD_LOAD_PASSPHRASE 210 15 | #define IDD_ONDEMAND_PASSPHRASE 212 16 | #define IDD_ABOUT 213 17 | #define IDD_LICENCE 214 18 | 19 | #define IDC_PASSPHRASE_STATIC1 100 20 | #define IDC_PASSPHRASE_FINGERPRINT 101 21 | #define IDC_PASSPHRASE_STATIC2 102 22 | #define IDC_PASSPHRASE_STATIC3 103 23 | #define IDC_PASSPHRASE_EDITBOX 104 24 | 25 | #define IDC_KEYLIST_LISTBOX 100 26 | #define IDC_KEYLIST_ADDKEY 101 27 | #define IDC_KEYLIST_ADDKEY_ENC 110 28 | #define IDC_KEYLIST_REENCRYPT 106 29 | #define IDC_KEYLIST_REMOVE 102 30 | #define IDC_KEYLIST_HELP 103 31 | #define IDC_KEYLIST_FPTYPE_STATIC 104 32 | #define IDC_KEYLIST_FPTYPE 105 33 | 34 | #define IDC_ABOUT_LICENCE 101 35 | #define IDC_ABOUT_WEBSITE 102 36 | #define IDC_ABOUT_TEXTBOX 1000 37 | 38 | #define IDC_LICENCE_TEXTBOX 1000 39 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/pageant.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76b_My_PuTTY/windows/pageant.ico -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/pageant.mft: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | PuTTY SSH authentication agent 12 | 13 | 14 | 16 | 22 | 23 | 24 | 25 | 26 | 28 | true 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/pageants.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76b_My_PuTTY/windows/pageants.ico -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/plink.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "Plink" 4 | #define APPDESC "Command-line SSH, Telnet, and Rlogin client" 5 | 6 | 200 ICON "putty.ico" 7 | 8 | #include "version.rc2" 9 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/pscp.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76b_My_PuTTY/windows/pscp.ico -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/pscp.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "PSCP" 4 | #define APPDESC "Command-line SCP/SFTP client" 5 | 6 | 200 ICON "pscp.ico" 7 | 8 | #include "version.rc2" 9 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/psftp.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "PSFTP" 4 | #define APPDESC "Command-line interactive SFTP client" 5 | 6 | 200 ICON "pscp.ico" 7 | 8 | #include "version.rc2" 9 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/psocks.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Main program for Windows psocks. 3 | */ 4 | 5 | #include "putty.h" 6 | #include "ssh.h" 7 | #include "psocks.h" 8 | 9 | static const PsocksPlatform platform = { 10 | NULL /* open_pipes */, 11 | NULL /* start_subcommand */, 12 | }; 13 | 14 | int main(int argc, char **argv) 15 | { 16 | psocks_state *ps = psocks_new(&platform); 17 | psocks_cmdline(ps, argc, argv); 18 | 19 | sk_init(); 20 | winselcli_setup(); 21 | psocks_start(ps); 22 | 23 | cli_main_loop(cliloop_null_pre, cliloop_null_post, NULL); 24 | } 25 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/putty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76b_My_PuTTY/windows/putty.ico -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/puttycfg.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76b_My_PuTTY/windows/puttycfg.ico -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/puttygen-rc.h: -------------------------------------------------------------------------------- 1 | #define IDC_PPKVER_STATIC 100 2 | #define IDC_PPKVER_2 101 3 | #define IDC_PPKVER_3 102 4 | #define IDC_KDF_STATIC 103 5 | #define IDC_KDF_ARGON2ID 104 6 | #define IDC_KDF_ARGON2I 105 7 | #define IDC_KDF_ARGON2D 106 8 | #define IDC_ARGON2_MEM_STATIC 107 9 | #define IDC_ARGON2_MEM 108 10 | #define IDC_ARGON2_MEM_STATIC2 109 11 | #define IDC_PPK_AUTO_STATIC 110 12 | #define IDC_PPK_AUTO_YES 111 13 | #define IDC_PPK_AUTO_NO 112 14 | #define IDC_ARGON2_TIME_STATIC 113 15 | #define IDC_ARGON2_TIME 114 16 | #define IDC_ARGON2_PARALLEL_STATIC 115 17 | #define IDC_ARGON2_PARALLEL 116 18 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/puttygen.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76b_My_PuTTY/windows/puttygen.ico -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/puttygen.mft: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | SSH key generator for PuTTY 12 | 13 | 14 | 16 | 22 | 23 | 24 | 25 | 26 | 28 | true 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/puttyins.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/0.76b_My_PuTTY/windows/puttyins.ico -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/puttytel.rc: -------------------------------------------------------------------------------- 1 | #include "rcstuff.h" 2 | 3 | #define APPNAME "PuTTYtel" 4 | #define APPDESC "Telnet and Rlogin client" 5 | 6 | #include "help.rc2" 7 | #include "putty-common.rc2" 8 | 9 | #ifndef NO_MANIFESTS 10 | 1 RT_MANIFEST "puttytel.mft" 11 | #endif /* NO_MANIFESTS */ 12 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/rcstuff.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Miscellaneous stuff to include in all .rc files. 3 | */ 4 | 5 | #ifndef PUTTY_RCSTUFF_H 6 | #define PUTTY_RCSTUFF_H 7 | 8 | #ifdef __LCC__ 9 | #include 10 | #else 11 | 12 | /* Some compilers don't have winresrc.h */ 13 | #ifndef NO_WINRESRC_H 14 | #ifndef MSVC4 15 | #include 16 | #else 17 | #include 18 | #endif 19 | #endif 20 | 21 | #endif /* end #ifdef __LCC__ */ 22 | 23 | /* Some systems don't define this, so I do it myself if necessary */ 24 | #ifndef TCS_MULTILINE 25 | #define TCS_MULTILINE 0x0200 26 | #endif 27 | 28 | /* Likewise */ 29 | #ifndef RT_MANIFEST 30 | #define RT_MANIFEST 24 31 | #endif 32 | 33 | /* LCC is the offender here. */ 34 | #ifndef VS_FF_DEBUG 35 | #define VS_FF_DEBUG 1 36 | #endif 37 | #ifndef VS_FF_PRERELEASE 38 | #define VS_FF_PRERELEASE 2 39 | #endif 40 | #ifndef VS_FF_PRIVATEBUILD 41 | #define VS_FF_PRIVATEBUILD 8 42 | #endif 43 | #ifndef VOS__WINDOWS32 44 | #define VOS__WINDOWS32 4 45 | #endif 46 | #ifndef VFT_APP 47 | #define VFT_APP 1 48 | #endif 49 | 50 | #endif /* PUTTY_RCSTUFF_H */ 51 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/select-gui.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Implementation of do_select() for winnet.c to use, that uses 3 | * WSAAsyncSelect to convert network activity into window messages, 4 | * for integration into a GUI event loop. 5 | */ 6 | 7 | #include "putty.h" 8 | 9 | static HWND winsel_hwnd = NULL; 10 | 11 | void winselgui_set_hwnd(HWND hwnd) 12 | { 13 | winsel_hwnd = hwnd; 14 | } 15 | 16 | void winselgui_clear_hwnd(void) 17 | { 18 | winsel_hwnd = NULL; 19 | } 20 | 21 | const char *do_select(SOCKET skt, bool enable) 22 | { 23 | int msg, events; 24 | if (enable) { 25 | msg = WM_NETEVENT; 26 | events = (FD_CONNECT | FD_READ | FD_WRITE | 27 | FD_OOB | FD_CLOSE | FD_ACCEPT); 28 | } else { 29 | msg = events = 0; 30 | } 31 | 32 | assert(winsel_hwnd); 33 | 34 | if (p_WSAAsyncSelect(skt, winsel_hwnd, msg, events) == SOCKET_ERROR) 35 | return winsock_error_string(p_WSAGetLastError()); 36 | 37 | return NULL; 38 | } 39 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/defaults.c: -------------------------------------------------------------------------------- 1 | /* 2 | * windefs.c: default settings that are specific to Windows. 3 | */ 4 | 5 | #include "putty.h" 6 | 7 | #include 8 | 9 | FontSpec *platform_default_fontspec(const char *name) 10 | { 11 | if (!strcmp(name, "Font")) 12 | return fontspec_new("Courier New", false, 10, ANSI_CHARSET); 13 | else 14 | return fontspec_new("", false, 0, 0); 15 | } 16 | 17 | Filename *platform_default_filename(const char *name) 18 | { 19 | if (!strcmp(name, "LogFileName")) 20 | #ifdef MOD_PERSO 21 | return filename_from_str("kitty.log"); 22 | #else 23 | return filename_from_str("putty.log"); 24 | #endif 25 | else 26 | return filename_from_str(""); 27 | } 28 | 29 | char *platform_default_s(const char *name) 30 | { 31 | if (!strcmp(name, "SerialLine")) 32 | return dupstr("COM1"); 33 | return NULL; 34 | } 35 | 36 | bool platform_default_b(const char *name, bool def) 37 | { 38 | return def; 39 | } 40 | 41 | int platform_default_i(const char *name, int def) 42 | { 43 | return def; 44 | } 45 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/dputs.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Implementation of dputs() for Windows. 3 | * 4 | * The debug messages are written to STD_OUTPUT_HANDLE, except that 5 | * first it has to make sure that handle _exists_, by calling 6 | * AllocConsole first if necessary. 7 | * 8 | * They also go into a file called debug.log. 9 | */ 10 | 11 | #include "putty.h" 12 | #include "utils/utils.h" 13 | 14 | static HANDLE debug_fp = INVALID_HANDLE_VALUE; 15 | static HANDLE debug_hdl = INVALID_HANDLE_VALUE; 16 | static int debug_got_console = 0; 17 | 18 | void dputs(const char *buf) 19 | { 20 | DWORD dw; 21 | 22 | if (!debug_got_console) { 23 | if (AllocConsole()) { 24 | debug_got_console = 1; 25 | debug_hdl = GetStdHandle(STD_OUTPUT_HANDLE); 26 | } 27 | } 28 | if (debug_fp == INVALID_HANDLE_VALUE) { 29 | debug_fp = CreateFile("debug.log", GENERIC_WRITE, FILE_SHARE_READ, 30 | NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 31 | } 32 | 33 | if (debug_fp != INVALID_HANDLE_VALUE) { 34 | WriteFile(debug_fp, buf, strlen(buf), &dw, NULL); 35 | } 36 | if (debug_hdl != INVALID_HANDLE_VALUE) { 37 | WriteFile(debug_hdl, buf, strlen(buf), &dw, NULL); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/escape_registry_key.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Escaping/unescaping functions to translate between a saved session 3 | * name, and the key name used to represent it in the Registry area 4 | * where we store saved sessions. 5 | * 6 | * The basic technique is to %-escape characters we can't use in 7 | * Registry keys. 8 | */ 9 | 10 | #include "putty.h" 11 | 12 | void escape_registry_key(const char *in, strbuf *out) 13 | { 14 | bool candot = false; 15 | static const char hex[16] = "0123456789ABCDEF"; 16 | 17 | while (*in) { 18 | if (*in == ' ' || *in == '\\' || *in == '*' || *in == '?' || 19 | *in == '%' || *in < ' ' || *in > '~' || (*in == '.' 20 | && !candot)) { 21 | put_byte(out, '%'); 22 | put_byte(out, hex[((unsigned char) *in) >> 4]); 23 | put_byte(out, hex[((unsigned char) *in) & 15]); 24 | } else 25 | put_byte(out, *in); 26 | in++; 27 | candot = true; 28 | } 29 | } 30 | 31 | void unescape_registry_key(const char *in, strbuf *out) 32 | { 33 | while (*in) { 34 | if (*in == '%' && in[1] && in[2]) { 35 | int i, j; 36 | 37 | i = in[1] - '0'; 38 | i -= (i > 9 ? 7 : 0); 39 | j = in[2] - '0'; 40 | j -= (j > 9 ? 7 : 0); 41 | 42 | put_byte(out, (i << 4) + j); 43 | in += 3; 44 | } else { 45 | put_byte(out, *in++); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/filename.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Implementation of Filename for Windows. 3 | */ 4 | 5 | #include "putty.h" 6 | 7 | Filename *filename_from_str(const char *str) 8 | { 9 | Filename *ret = snew(Filename); 10 | ret->path = dupstr(str); 11 | return ret; 12 | } 13 | 14 | Filename *filename_copy(const Filename *fn) 15 | { 16 | return filename_from_str(fn->path); 17 | } 18 | 19 | const char *filename_to_str(const Filename *fn) 20 | { 21 | return fn->path; 22 | } 23 | 24 | bool filename_equal(const Filename *f1, const Filename *f2) 25 | { 26 | return !strcmp(f1->path, f2->path); 27 | } 28 | 29 | bool filename_is_null(const Filename *fn) 30 | { 31 | return !*fn->path; 32 | } 33 | 34 | void filename_free(Filename *fn) 35 | { 36 | sfree(fn->path); 37 | sfree(fn); 38 | } 39 | 40 | void filename_serialise(BinarySink *bs, const Filename *f) 41 | { 42 | put_asciz(bs, f->path); 43 | } 44 | Filename *filename_deserialise(BinarySource *src) 45 | { 46 | return filename_from_str(get_asciz(src)); 47 | } 48 | 49 | char filename_char_sanitise(char c) 50 | { 51 | if (strchr("<>:\"/\\|?*", c)) 52 | return '.'; 53 | return c; 54 | } 55 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/fontspec.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Implementation of FontSpec for Windows. 3 | */ 4 | 5 | #include "putty.h" 6 | 7 | FontSpec *fontspec_new(const char *name, bool bold, int height, int charset) 8 | { 9 | FontSpec *f = snew(FontSpec); 10 | f->name = dupstr(name); 11 | f->isbold = bold; 12 | f->height = height; 13 | f->charset = charset; 14 | return f; 15 | } 16 | FontSpec *fontspec_copy(const FontSpec *f) 17 | { 18 | return fontspec_new(f->name, f->isbold, f->height, f->charset); 19 | } 20 | void fontspec_free(FontSpec *f) 21 | { 22 | sfree(f->name); 23 | sfree(f); 24 | } 25 | void fontspec_serialise(BinarySink *bs, FontSpec *f) 26 | { 27 | put_asciz(bs, f->name); 28 | put_uint32(bs, f->isbold); 29 | put_uint32(bs, f->height); 30 | put_uint32(bs, f->charset); 31 | } 32 | FontSpec *fontspec_deserialise(BinarySource *src) 33 | { 34 | const char *name = get_asciz(src); 35 | unsigned isbold = get_uint32(src); 36 | unsigned height = get_uint32(src); 37 | unsigned charset = get_uint32(src); 38 | return fontspec_new(name, isbold, height, charset); 39 | } 40 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/getdlgitemtext_alloc.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Handy wrapper around GetDlgItemText which doesn't make you invent 3 | * an arbitrary length limit on the output string. Returned string is 4 | * dynamically allocated; caller must free. 5 | */ 6 | 7 | #include "putty.h" 8 | 9 | char *GetDlgItemText_alloc(HWND hwnd, int id) 10 | { 11 | char *ret = NULL; 12 | size_t size = 0; 13 | 14 | do { 15 | sgrowarray_nm(ret, size, size); 16 | GetDlgItemText(hwnd, id, ret, size); 17 | } while (!memchr(ret, '\0', size-1)); 18 | 19 | return ret; 20 | } 21 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/is_console_handle.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Determine whether a Windows HANDLE points at a console device. 3 | */ 4 | 5 | #include "putty.h" 6 | 7 | bool is_console_handle(HANDLE handle) 8 | { 9 | DWORD ignored_output; 10 | if (GetConsoleMode(handle, &ignored_output)) 11 | return true; 12 | return false; 13 | } 14 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/load_system32_dll.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Wrapper function to load a DLL out of c:\windows\system32 without 3 | * going through the full DLL search path. (Hence no attack is 4 | * possible by placing a substitute DLL earlier on that path.) 5 | */ 6 | 7 | #include "putty.h" 8 | 9 | HMODULE load_system32_dll(const char *libname) 10 | { 11 | /* 12 | * Wrapper function to load a DLL out of c:\windows\system32 13 | * without going through the full DLL search path. (Hence no 14 | * attack is possible by placing a substitute DLL earlier on that 15 | * path.) 16 | */ 17 | static char *sysdir = NULL; 18 | static size_t sysdirsize = 0; 19 | char *fullpath; 20 | HMODULE ret; 21 | 22 | if (!sysdir) { 23 | size_t len; 24 | while ((len = GetSystemDirectory(sysdir, sysdirsize)) >= sysdirsize) 25 | sgrowarray(sysdir, sysdirsize, len); 26 | } 27 | 28 | fullpath = dupcat(sysdir, "\\", libname); 29 | ret = LoadLibrary(fullpath); 30 | sfree(fullpath); 31 | return ret; 32 | } 33 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/ltime.c: -------------------------------------------------------------------------------- 1 | /* 2 | * wintime.c - Avoid trouble with time() returning (time_t)-1 on Windows. 3 | */ 4 | 5 | #include "putty.h" 6 | #include 7 | 8 | struct tm ltime(void) 9 | { 10 | SYSTEMTIME st; 11 | struct tm tm; 12 | 13 | memset(&tm, 0, sizeof(tm)); /* in case there are any other fields */ 14 | 15 | GetLocalTime(&st); 16 | tm.tm_sec=st.wSecond; 17 | tm.tm_min=st.wMinute; 18 | tm.tm_hour=st.wHour; 19 | tm.tm_mday=st.wDay; 20 | tm.tm_mon=st.wMonth-1; 21 | tm.tm_year=(st.wYear>=1900?st.wYear-1900:0); 22 | tm.tm_wday=st.wDayOfWeek; 23 | tm.tm_yday=-1; /* GetLocalTime doesn't tell us */ 24 | tm.tm_isdst=0; /* GetLocalTime doesn't tell us */ 25 | return tm; 26 | } 27 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/makedlgitemborderless.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Helper function to remove the border around a dialog item such as 3 | * a read-only edit control. 4 | */ 5 | 6 | #include "putty.h" 7 | 8 | void MakeDlgItemBorderless(HWND parent, int id) 9 | { 10 | HWND child = GetDlgItem(parent, id); 11 | LONG_PTR style = GetWindowLongPtr(child, GWL_STYLE); 12 | LONG_PTR exstyle = GetWindowLongPtr(child, GWL_EXSTYLE); 13 | style &= ~WS_BORDER; 14 | exstyle &= ~(WS_EX_CLIENTEDGE | WS_EX_STATICEDGE | WS_EX_WINDOWEDGE); 15 | SetWindowLongPtr(child, GWL_STYLE, style); 16 | SetWindowLongPtr(child, GWL_EXSTYLE, exstyle); 17 | SetWindowPos(child, NULL, 0, 0, 0, 0, 18 | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); 19 | } 20 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/pgp_fingerprints_msgbox.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Display the fingerprints of the PGP Master Keys to the user as a 3 | * GUI message box. 4 | */ 5 | 6 | #include "putty.h" 7 | 8 | void pgp_fingerprints_msgbox(HWND owner) 9 | { 10 | message_box( 11 | owner, 12 | "These are the fingerprints of the PuTTY PGP Master Keys. They can\n" 13 | "be used to establish a trust path from this executable to another\n" 14 | "one. See the manual for more information.\n" 15 | "(Note: these fingerprints have nothing to do with SSH!)\n" 16 | "\n" 17 | "PuTTY Master Key as of " PGP_MASTER_KEY_YEAR 18 | " (" PGP_MASTER_KEY_DETAILS "):\n" 19 | " " PGP_MASTER_KEY_FP "\n\n" 20 | "Previous Master Key (" PGP_PREV_MASTER_KEY_YEAR 21 | ", " PGP_PREV_MASTER_KEY_DETAILS "):\n" 22 | " " PGP_PREV_MASTER_KEY_FP, 23 | "PGP fingerprints", MB_ICONINFORMATION | MB_OK, 24 | HELPCTXID(pgp_fingerprints)); 25 | } 26 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/platform_get_x_display.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Implementation of platform_get_x_display for Windows, common to all 3 | * tools. 4 | */ 5 | 6 | #include "putty.h" 7 | 8 | char *platform_get_x_display(void) 9 | { 10 | /* We may as well check for DISPLAY in case it's useful. */ 11 | return dupstr(getenv("DISPLAY")); 12 | } 13 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/registry_get_string.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Self-contained function to try to fetch a single string value from 3 | * the Registry, and return it as a dynamically allocated C string. 4 | */ 5 | 6 | #include "putty.h" 7 | 8 | char *registry_get_string(HKEY root, const char *path, const char *leaf) 9 | { 10 | HKEY key = root; 11 | bool need_close_key = false; 12 | char *toret = NULL, *str = NULL; 13 | 14 | if (path) { 15 | if (RegCreateKey(key, path, &key) != ERROR_SUCCESS) 16 | goto out; 17 | need_close_key = true; 18 | } 19 | 20 | DWORD type, size; 21 | if (RegQueryValueEx(key, leaf, 0, &type, NULL, &size) != ERROR_SUCCESS) 22 | goto out; 23 | if (type != REG_SZ) 24 | goto out; 25 | 26 | str = snewn(size + 1, char); 27 | DWORD size_got = size; 28 | if (RegQueryValueEx(key, leaf, 0, &type, (LPBYTE)str, 29 | &size_got) != ERROR_SUCCESS) 30 | goto out; 31 | if (type != REG_SZ || size_got > size) 32 | goto out; 33 | str[size_got] = '\0'; 34 | 35 | toret = str; 36 | str = NULL; 37 | 38 | out: 39 | if (need_close_key) 40 | RegCloseKey(key); 41 | sfree(str); 42 | return toret; 43 | } 44 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/utils/strtoumax.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Work around lack of strtoumax in older MSVC libraries. 3 | */ 4 | 5 | #include 6 | 7 | #include "defs.h" 8 | 9 | uintmax_t strtoumax(const char *nptr, char **endptr, int base) 10 | { 11 | return _strtoui64(nptr, endptr, base); 12 | } 13 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/version_major.txt: -------------------------------------------------------------------------------- 1 | "0.76.1" 2 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/version_minor.txt: -------------------------------------------------------------------------------- 1 | 13 2 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/win-gui-seat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Small implementation of Seat and LogPolicy shared between window.c 3 | * and windlg.c. 4 | */ 5 | 6 | #ifdef MOD_FAR2L 7 | #pragma once 8 | #endif 9 | typedef struct WinGuiSeat WinGuiSeat; 10 | 11 | struct WinGuiSeat { 12 | HWND term_hwnd; 13 | Seat seat; 14 | LogPolicy logpolicy; 15 | }; 16 | 17 | extern const LogPolicyVtable win_gui_logpolicy_vt; /* in windlg.c */ 18 | -------------------------------------------------------------------------------- /0.76b_My_PuTTY/windows/x11.c: -------------------------------------------------------------------------------- 1 | /* 2 | * winx11.c: fetch local auth data for X forwarding. 3 | */ 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include "putty.h" 10 | #include "ssh.h" 11 | 12 | void platform_get_x11_auth(struct X11Display *disp, Conf *conf) 13 | { 14 | char *xauthpath = conf_get_filename(conf, CONF_xauthfile)->path; 15 | if (xauthpath[0]) 16 | x11_get_auth_from_authfile(disp, xauthpath); 17 | } 18 | 19 | const bool platform_uses_x11_unix_by_default = false; 20 | -------------------------------------------------------------------------------- /LICENCE.TXT: -------------------------------------------------------------------------------- 1 | KiTTY is copyright 2007-2013 Cyril Dupont. 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation files 5 | (the "Software"), to deal in the Software without restriction, 6 | including without limitation the rights to use, copy, modify, merge, 7 | publish, distribute, sublicense, and/or sell copies of the Software, 8 | and to permit persons to whom the Software is furnished to do so, 9 | subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE 18 | FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 19 | CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /base64/base64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/base64/base64.a -------------------------------------------------------------------------------- /base64/base64.h: -------------------------------------------------------------------------------- 1 | /* 2 | Fichier base64.h 3 | Auteur Bernard Chardonneau 4 | */ 5 | 6 | /* prototypes des fonctions de la bibliothèque base64 */ 7 | 8 | void encode64 (char *orig, char *dest, int nbcar); 9 | int decode64 (char *buffer); 10 | -------------------------------------------------------------------------------- /base64/base64_64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/base64/base64_64.a -------------------------------------------------------------------------------- /base64/licence-fr.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/base64/licence-fr.txt -------------------------------------------------------------------------------- /bcrypt/bcrypt.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/bcrypt/bcrypt.a -------------------------------------------------------------------------------- /bcrypt/bcrypt_64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/bcrypt/bcrypt_64.a -------------------------------------------------------------------------------- /blocnote/notepad.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/blocnote/notepad.a -------------------------------------------------------------------------------- /blocnote/notepad_64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/blocnote/notepad_64.a -------------------------------------------------------------------------------- /blocnote/res/bille.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/blocnote/res/bille.ico -------------------------------------------------------------------------------- /blocnote/res/edit.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/blocnote/res/edit.ico -------------------------------------------------------------------------------- /cthelper/buffer.h: -------------------------------------------------------------------------------- 1 | #ifndef BUFFER_H 2 | #define BUFFER_H 3 | 4 | #include 5 | #include 6 | 7 | typedef struct buffer_tag *Buffer; 8 | struct buffer_tag { 9 | size_t avail, len; 10 | unsigned char data[1]; 11 | }; 12 | 13 | /* Initialize a Buffer */ 14 | Buffer buffer_init(size_t size); 15 | 16 | /* Free a buffer; sets *pb to NULL */ 17 | void buffer_free(Buffer *pb); 18 | 19 | /* Initialize a Buffer with alloca() */ 20 | #define BUFFER_ALLOCA(b,s) do{\ 21 | b = alloca(sizeof(b)+(s)); b->avail = s; b->len = 0;\ 22 | }while(0) 23 | 24 | /* Returns true if buffer is full */ 25 | #define buffer_isfull(b) ((b)->avail == 0) 26 | 27 | /* Returns true if buffer is empty */ 28 | #define buffer_isempty(b) ((b)->len == 0) 29 | 30 | /* Reads up to buffer_avail(b) bytes from descriptor `des' */ 31 | ssize_t buffer_read(Buffer b, int des); 32 | 33 | /* Writes as many bytes in the buffer as possible to descriptor `des' */ 34 | ssize_t buffer_write(Buffer b, int des); 35 | 36 | /* Appends data from data to end of buffer returning number of bytes 37 | * appended (which may be less than `len') */ 38 | size_t buffer_append(Buffer b, const char *data, size_t len); 39 | 40 | /* Clears len bytes from start of buffer, returning number of bytes removed */ 41 | size_t buffer_consumed(Buffer b, size_t len); 42 | 43 | #endif /* BUFFER_H */ 44 | -------------------------------------------------------------------------------- /cthelper/cthelper.h: -------------------------------------------------------------------------------- 1 | enum cthelper_exitcode { 2 | CthelperSuccess = 0, 3 | CthelperInvalidUsage, 4 | CthelperInvalidPort, 5 | CthelperConnectFailed, 6 | CthelperPtyforkFailure, 7 | CthelperExecFailure, 8 | }; 9 | -------------------------------------------------------------------------------- /cthelper/debug.h: -------------------------------------------------------------------------------- 1 | #ifndef DEBUG_H 2 | #define DEBUG_H 3 | 4 | #include "dbug.h" 5 | #include "mm.h" 6 | 7 | #ifndef __attribute__ 8 | #define __attribute__(x) 9 | #endif 10 | 11 | #if !defined(DBUG_OFF) && !defined(_lint) 12 | 13 | /* allow GCC to check format strings against their arguments */ 14 | extern void _dbug_doprnt_(const char *format, ...) 15 | __attribute__((format(printf, 1, 2))); 16 | 17 | extern void debug_memdump(const void *buf, int len, int L); 18 | 19 | #else 20 | 21 | #define debug_memdump(buf,len,L) 22 | 23 | #endif 24 | 25 | #endif /* DEBUG_H */ 26 | /* ex:set sw=4: */ 27 | -------------------------------------------------------------------------------- /cthelper/dump.c: -------------------------------------------------------------------------------- 1 | /* Code stolen from putty/misc.c */ 2 | 3 | #include 4 | #include "dbug.h" 5 | 6 | void 7 | debug_memdump(const void *buf, int len, int L) 8 | { 9 | int i; 10 | unsigned const char *p = (unsigned const char*)buf; 11 | char foo[17]; 12 | if (L) { 13 | int delta; 14 | fprintf(DBUG_FILE,"\t%d (0x%x) bytes:\n", len, len); 15 | delta = 15 &(int)p; 16 | p -= delta; 17 | len += delta; 18 | } 19 | for (; 0 < len; p += 16, len -= 16) { 20 | fputs(" ", DBUG_FILE); 21 | if (L) 22 | fprintf(DBUG_FILE,"%p: ", p); 23 | strcpy(foo, "................"); /* sixteen dots */ 24 | for (i = 0; i < 16 && i < len; ++i) { 25 | if (&p[i] < (unsigned char *) buf) { 26 | fputs(" ", DBUG_FILE); /* 3 spaces */ 27 | foo[i] = ' '; 28 | } 29 | else { 30 | fprintf(DBUG_FILE,"%c%02x", 31 | &p[i] != (unsigned char *) buf 32 | && i % 4 ? '.' : ' ', p[i]); 33 | if (p[i] >= ' ' && p[i] <= '~') 34 | foo[i] = (char) p[i]; 35 | } 36 | } 37 | foo[i] = '\0'; 38 | fprintf(DBUG_FILE,"%*s%s\n", (16 - i) * 3 + 2, "", foo); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /cthelper/message.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "message.h" 4 | #include "debug.h" 5 | 6 | int 7 | message_get(Message *m, const unsigned char *data, size_t len) 8 | { 9 | int size; 10 | 11 | DBUG_ENTER("message_get"); 12 | 13 | if (len < MESSAGE_MIN) 14 | /* partial message */ 15 | DBUG_RETURN(0); 16 | 17 | /* we at least have the message header */ 18 | size = data[0]; 19 | 20 | if (MESSAGE_MIN > size || size > MESSAGE_MAX) 21 | /* bad message */ 22 | DBUG_RETURN(-1); 23 | 24 | if (size > len) 25 | /* partial message */ 26 | DBUG_RETURN(0); 27 | 28 | memcpy(m, data, size); 29 | 30 | DBUG_RETURN(1); 31 | } 32 | -------------------------------------------------------------------------------- /cthelper/message.h: -------------------------------------------------------------------------------- 1 | #ifndef MESSAGE_H 2 | #define MESSAGE_H 3 | 4 | #if __STDC__VERSION >= 199901L 5 | #include 6 | #elif defined(__INTERIX) 7 | #include 8 | #else 9 | typedef unsigned char uint8_t; 10 | typedef unsigned short uint16_t; 11 | #endif 12 | 13 | typedef struct message_tag Message; 14 | struct message_tag { 15 | uint8_t size; 16 | uint8_t type; 17 | union { 18 | struct { 19 | uint16_t width, height; 20 | } resize; 21 | } msg; 22 | }; 23 | 24 | /* message types */ 25 | #define MSG_RESIZE (21) 26 | 27 | #define MESSAGE_MIN (2) 28 | #define MESSAGE_MAX (sizeof(struct message_tag)) 29 | 30 | /* Fills in a Message structure from `data'. Does not attempt to validate 31 | * the message type, but returns 0 if a partial message is received. 32 | * Returns -1 if the size is impossible (bigger than largest possible 33 | * message or smaller than smallest possible message). 34 | * Returns 1 if the message structure is filled in properly. 35 | */ 36 | int message_get(Message *m, const unsigned char *data, size_t len); 37 | 38 | #endif /* MESSAGE_H */ 39 | -------------------------------------------------------------------------------- /cthelper/mm.h: -------------------------------------------------------------------------------- 1 | #ifndef _mm_h_ 2 | #define _mm_H_ 3 | 4 | #include 5 | 6 | #ifndef DBUG_OFF 7 | void *dbug_malloc (ssize_t len, const char *, int); 8 | char *dbug_strdup (const char *s, const char *, int); 9 | void *dbug_calloc (ssize_t nmemb, ssize_t len, const char *, int); 10 | void *dbug_realloc (void *ptr, ssize_t len); 11 | void dbug_free (void *ptr); 12 | void dbug_dump_mm (void); 13 | #endif 14 | 15 | #ifndef DBUG_OFF 16 | #undef strdup 17 | #define malloc(x) dbug_malloc(x,__FILE__,__LINE__) 18 | #define realloc(x,y) dbug_realloc(x,y) 19 | #define free(x) dbug_free(x) 20 | #define strdup(x) dbug_strdup(x,__FILE__,__LINE__) 21 | #define calloc(x,y) dbug_calloc(x,y,__FILE__,__LINE__) 22 | /*#else 23 | #define dbug_malloc(x) malloc(x) 24 | #define dbug_strdup(x) strdup(x) 25 | #define dbug_calloc(x,y) calloc(x,y) 26 | #define dbug_free(x) free(x)*/ 27 | #endif /* DBUG_OFF */ 28 | #endif /* _mm_h_ */ 29 | -------------------------------------------------------------------------------- /cthelper/ptyfork.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | pid_t pty_fork(int *ptrfdm, char *slave_name, 4 | const struct termios *slave_termios, 5 | const struct winsize *slave_winsize); 6 | -------------------------------------------------------------------------------- /cthelper/ptyopen.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include "ourhdr.h" 6 | 7 | extern char *ptsname(int); /* prototype not in any system header */ 8 | 9 | int 10 | ptym_open(char *pts_name) 11 | { 12 | char *ptr; 13 | int fdm; 14 | 15 | strcpy(pts_name, "/dev/ptmx"); /* in case open fails */ 16 | if ( (fdm = open(pts_name, O_RDWR)) < 0) 17 | return(-1); 18 | 19 | if (grantpt(fdm) < 0) { /* grant access to slave */ 20 | close(fdm); 21 | return(-2); 22 | } 23 | if (unlockpt(fdm) < 0) { /* clear slave's lock flag */ 24 | close(fdm); 25 | return(-3); 26 | } 27 | if ( (ptr = ptsname(fdm)) == NULL) { /* get slave's name */ 28 | close(fdm); 29 | return(-4); 30 | } 31 | 32 | strcpy(pts_name, ptr); /* return name of slave */ 33 | return(fdm); /* return fd of master */ 34 | } 35 | int 36 | ptys_open(int fdm, char *pts_name) 37 | { 38 | int fds; 39 | 40 | /* following should allocate controlling terminal */ 41 | if ( (fds = open(pts_name, O_RDWR)) < 0) { 42 | close(fdm); 43 | return(-5); 44 | } 45 | 46 | return(fds); 47 | } 48 | -------------------------------------------------------------------------------- /cthelper/puttycyg.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/cthelper/puttycyg.ico -------------------------------------------------------------------------------- /docs/Ubuntu.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/Ubuntu.ttf -------------------------------------------------------------------------------- /docs/VeraSe.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/VeraSe.ttf -------------------------------------------------------------------------------- /docs/bitcoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/bitcoin.png -------------------------------------------------------------------------------- /docs/bitcoin_donate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/bitcoin_donate.png -------------------------------------------------------------------------------- /docs/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "useSideMenu": false, 3 | "lineBreaks": "gfm", 4 | "additionalFooterText": "Original address of this website is http://kitty.9bis.com/
by Cyd since 2005", 5 | "anchorCharacter": "#", 6 | "title": "KiTTY, a free telnet/ssh client for Windows" 7 | } 8 | -------------------------------------------------------------------------------- /docs/doc/kitty-folders_list_feature.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/doc/kitty-folders_list_feature.pdf -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/favicon.ico -------------------------------------------------------------------------------- /docs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/favicon.png -------------------------------------------------------------------------------- /docs/files/kitty-folders_list_feature.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/files/kitty-folders_list_feature.pdf -------------------------------------------------------------------------------- /docs/files/kitty_ssh_handler.reg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/files/kitty_ssh_handler.reg -------------------------------------------------------------------------------- /docs/files/kitty_usrcmd.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_CURRENT_USER\Software\9bis.com\KiTTY] 4 | 5 | [HKEY_CURRENT_USER\Software\9bis.com\KiTTY\Commands] 6 | "Listing directory"="ls -lrtA" 7 | 8 | [HKEY_CURRENT_USER\Software\9bis.com\KiTTY\Commands\SQL] 9 | "Connection"="connect login/password" -------------------------------------------------------------------------------- /docs/gad.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Google Adsense 5 | 6 | 7 | 8 |
9 | 10 | 16 | 19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/img/0.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/0.ico -------------------------------------------------------------------------------- /docs/img/1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/1.ico -------------------------------------------------------------------------------- /docs/img/2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/2.ico -------------------------------------------------------------------------------- /docs/img/3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/3.ico -------------------------------------------------------------------------------- /docs/img/4.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/4.ico -------------------------------------------------------------------------------- /docs/img/5.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/5.ico -------------------------------------------------------------------------------- /docs/img/6.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/6.ico -------------------------------------------------------------------------------- /docs/img/7.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/7.ico -------------------------------------------------------------------------------- /docs/img/8.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/8.ico -------------------------------------------------------------------------------- /docs/img/9.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/9.ico -------------------------------------------------------------------------------- /docs/img/StdoutToClipboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/StdoutToClipboard.png -------------------------------------------------------------------------------- /docs/img/abp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/abp.jpg -------------------------------------------------------------------------------- /docs/img/bitcoin_donate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/bitcoin_donate.png -------------------------------------------------------------------------------- /docs/img/bunny.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/bunny.ico -------------------------------------------------------------------------------- /docs/img/chabel.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/chabel.ico -------------------------------------------------------------------------------- /docs/img/config_autocommand.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_autocommand.jpg -------------------------------------------------------------------------------- /docs/img/config_behaviour.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_behaviour.jpg -------------------------------------------------------------------------------- /docs/img/config_bell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_bell.jpg -------------------------------------------------------------------------------- /docs/img/config_chat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_chat.jpg -------------------------------------------------------------------------------- /docs/img/config_colours.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_colours.jpg -------------------------------------------------------------------------------- /docs/img/config_comment.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_comment.jpg -------------------------------------------------------------------------------- /docs/img/config_connection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_connection.jpg -------------------------------------------------------------------------------- /docs/img/config_folder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_folder.jpg -------------------------------------------------------------------------------- /docs/img/config_forcecrlf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_forcecrlf.jpg -------------------------------------------------------------------------------- /docs/img/config_hyperlinks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_hyperlinks.jpg -------------------------------------------------------------------------------- /docs/img/config_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_icon.jpg -------------------------------------------------------------------------------- /docs/img/config_kittygen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_kittygen.jpg -------------------------------------------------------------------------------- /docs/img/config_logging.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_logging.jpg -------------------------------------------------------------------------------- /docs/img/config_password.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_password.jpg -------------------------------------------------------------------------------- /docs/img/config_proxychoice.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_proxychoice.jpg -------------------------------------------------------------------------------- /docs/img/config_rutty.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_rutty.jpg -------------------------------------------------------------------------------- /docs/img/config_script.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_script.jpg -------------------------------------------------------------------------------- /docs/img/config_sendtotray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_sendtotray.jpg -------------------------------------------------------------------------------- /docs/img/config_transparency.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_transparency.jpg -------------------------------------------------------------------------------- /docs/img/config_winscp_integration.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_winscp_integration.jpg -------------------------------------------------------------------------------- /docs/img/config_zmodem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/config_zmodem.jpg -------------------------------------------------------------------------------- /docs/img/coq.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/coq.ico -------------------------------------------------------------------------------- /docs/img/coyote.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/coyote.ico -------------------------------------------------------------------------------- /docs/img/daffy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/daffy.ico -------------------------------------------------------------------------------- /docs/img/daphne.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/daphne.ico -------------------------------------------------------------------------------- /docs/img/elmer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/elmer.ico -------------------------------------------------------------------------------- /docs/img/en.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/en.gif -------------------------------------------------------------------------------- /docs/img/ex_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/ex_background.jpg -------------------------------------------------------------------------------- /docs/img/ex_chat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/ex_chat.jpg -------------------------------------------------------------------------------- /docs/img/ex_fonts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/ex_fonts.jpg -------------------------------------------------------------------------------- /docs/img/ex_kageant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/ex_kageant.jpg -------------------------------------------------------------------------------- /docs/img/ex_launcher.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/ex_launcher.jpg -------------------------------------------------------------------------------- /docs/img/ex_protected.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/ex_protected.jpg -------------------------------------------------------------------------------- /docs/img/fosshub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/fosshub.png -------------------------------------------------------------------------------- /docs/img/fr.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/fr.gif -------------------------------------------------------------------------------- /docs/img/freddie.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/freddie.ico -------------------------------------------------------------------------------- /docs/img/gdrive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/gdrive.jpg -------------------------------------------------------------------------------- /docs/img/general.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/general.ico -------------------------------------------------------------------------------- /docs/img/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/github.png -------------------------------------------------------------------------------- /docs/img/hagar.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/hagar.ico -------------------------------------------------------------------------------- /docs/img/hellokitty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/hellokitty.ico -------------------------------------------------------------------------------- /docs/img/jerry.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/jerry.ico -------------------------------------------------------------------------------- /docs/img/kitty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/kitty.ico -------------------------------------------------------------------------------- /docs/img/kitty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/kitty.png -------------------------------------------------------------------------------- /docs/img/kitty_launcher.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/kitty_launcher.ico -------------------------------------------------------------------------------- /docs/img/kitty_logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/kitty_logo.ico -------------------------------------------------------------------------------- /docs/img/mail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/mail.gif -------------------------------------------------------------------------------- /docs/img/mail.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/mail.ico -------------------------------------------------------------------------------- /docs/img/mars.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/mars.ico -------------------------------------------------------------------------------- /docs/img/menu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/menu.jpg -------------------------------------------------------------------------------- /docs/img/menu_export.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/menu_export.jpg -------------------------------------------------------------------------------- /docs/img/menu_shortcuts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/menu_shortcuts.jpg -------------------------------------------------------------------------------- /docs/img/paypal_donate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/paypal_donate.png -------------------------------------------------------------------------------- /docs/img/pepepu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/pepepu.ico -------------------------------------------------------------------------------- /docs/img/porky.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/porky.ico -------------------------------------------------------------------------------- /docs/img/puma.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/puma.ico -------------------------------------------------------------------------------- /docs/img/putty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty.ico -------------------------------------------------------------------------------- /docs/img/putty2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty2.ico -------------------------------------------------------------------------------- /docs/img/putty3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty3.ico -------------------------------------------------------------------------------- /docs/img/putty4.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty4.ico -------------------------------------------------------------------------------- /docs/img/putty5.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty5.ico -------------------------------------------------------------------------------- /docs/img/putty6.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty6.ico -------------------------------------------------------------------------------- /docs/img/putty7.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty7.ico -------------------------------------------------------------------------------- /docs/img/putty8.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty8.ico -------------------------------------------------------------------------------- /docs/img/putty_launcher.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/putty_launcher.ico -------------------------------------------------------------------------------- /docs/img/puttycyg.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/puttycyg.ico -------------------------------------------------------------------------------- /docs/img/puttyprd.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/puttyprd.ico -------------------------------------------------------------------------------- /docs/img/qr_kitty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/qr_kitty.png -------------------------------------------------------------------------------- /docs/img/regedit_shortcuts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/regedit_shortcuts.jpg -------------------------------------------------------------------------------- /docs/img/rocky.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/rocky.ico -------------------------------------------------------------------------------- /docs/img/runner.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/runner.ico -------------------------------------------------------------------------------- /docs/img/sam.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/sam.ico -------------------------------------------------------------------------------- /docs/img/scooby.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/scooby.ico -------------------------------------------------------------------------------- /docs/img/shaggy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/shaggy.ico -------------------------------------------------------------------------------- /docs/img/snoopy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/snoopy.ico -------------------------------------------------------------------------------- /docs/img/speedy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/speedy.ico -------------------------------------------------------------------------------- /docs/img/sylvester.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/sylvester.ico -------------------------------------------------------------------------------- /docs/img/taz.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/taz.ico -------------------------------------------------------------------------------- /docs/img/tom.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/tom.ico -------------------------------------------------------------------------------- /docs/img/tweety.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/tweety.ico -------------------------------------------------------------------------------- /docs/img/velma.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/velma.ico -------------------------------------------------------------------------------- /docs/img/virustotal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/virustotal.png -------------------------------------------------------------------------------- /docs/img/woods.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/woods.ico -------------------------------------------------------------------------------- /docs/img/woody.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/woody.ico -------------------------------------------------------------------------------- /docs/img/yogi.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/img/yogi.ico -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 |
2 | ## Welcome to the KiTTY introduction web site 3 | 4 | ### What is KiTTY ? 5 | **KiTTY** is a fork from version 0.76 of **PuTTY**, the best telnet / SSH client in the world. 6 | KiTTY is only designed for the Microsoft® Windows® platform. For more information about the original software, or pre-compiled binaries on other systems, you can go to the [Simon Tatham PuTTY page](http://www.chiark.greenend.org.uk/~sgtatham/putty/ "PuTTY"). 7 | 8 | KiTTY has all the features from the original software, and adds many others as decribed in this website (see menu above). 9 | 10 | **** 11 | 12 | **Current version** 13 | 14 | ![Current version](version1.php "Version") 15 | 16 | > Some informations about KiTTY [0.71](pages/0.71.md) and [0.75](pages/0.75.md) versions. 17 | 18 | **Cyd** 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/index.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /docs/pages/0.75.md: -------------------------------------------------------------------------------- 1 |
2 | ## Informations about KiTTY 0.75 3 | 4 | Each new PuTTY version is a new adventure. Will it be easy or not to merge modifications and new features. Remember KiTTY is a code patchwork made with the combinaison of many, many different sources: many form myself and some from other people. 5 | 6 | Almost one year between 0.75 PuTTY version and the previous one. It means many lines of code that were modified. And as it was with the [0.71](0.71.md) version, some patches can not be continued in this new version. 7 | 8 | Here are the patches that are not available anymore in KiTTY 9 | 10 | * [TuTTY](http://putty.dwalin.ru/) color patch (underlined text in terminal is displayed with different colour) 11 | * [ADB](https://github.com/sztupy/adbputty) patch 12 | * Github Actions automatic build (I know it is note related) 13 | 14 | Don't hesitate to contact me if you discover something else weird. 15 | 16 | KiTTY source code is available at Github. 17 | 18 | Regards 19 | Cyd 20 | -------------------------------------------------------------------------------- /docs/pages/AlwaysVisible.md: -------------------------------------------------------------------------------- 1 |
2 | ## Always visible 3 | 4 | With **KiTTY** you can put a window in the foreground with the **Always visible** option, to be able to always keep an eye on it. 5 | 6 | To do that: 7 | 8 | * select the **Always visible** item from the main menu 9 | * or press the **CTRL+F7** keys 10 | 11 | -------------------------------------------------------------------------------- /docs/pages/AutomaticPassword.md: -------------------------------------------------------------------------------- 1 |
2 | ## Automatic password 3 | 4 | With **KiTTY** you can make automatic connection to telnet, ssh-1 and ssh-2 servers. Just fill the **Auto-login password** field in the **Connection/Data** configuration box. 5 | 6 | ![](../img/config_password.jpg "Auto-login password field") 7 | 8 | Of course the password value is encrypted ! Since this value is different for each different host, it is not possible to save a password in a session with an empty hostname. 9 | 10 | ### About SSH 11 | In the case of ssh servers, the password is transferred during the authentication process. 12 | 13 | ### About Telnet 14 | In the case of telnet servers, the contents of this field are sent just after the connection is up, exactly as if you are typing it on your keyboard. 15 | It is even possible to send several lines to the server (for example: a login name, followed by a password, followed by a command). 16 | These lines should be separated by the two characters **\n**. 17 | However, since version 0.60.65.32 there is a more efficient method to connect to telnet servers: [the logon script method](LogonScript.md). 18 | -------------------------------------------------------------------------------- /docs/pages/AutomaticSaving.md: -------------------------------------------------------------------------------- 1 |
2 | ## Automatic saving 3 | 4 | **KiTTY** uses the Windows registry to save all its configuration (sessions, host keys, parameters). The key is **[HKEY_CURRENT_USER\Software\9bis.com\KiTTY]**. 5 | 6 | For safety reasons, this key is always saved each time the configuration is modified (when you quit the configuration dialog box). 7 | 8 | The file name is **kitty.sav**. This file is located in the same place as **kitty.ini**: the directory **%APPDATA%\KiTTY**. 9 | 10 | When using KiTTY for the first time, both registry key and configuration are empty. So that the software will copy all sessions defined in the PuTTY registry key if there are any. 11 | 12 | ---- 13 | 14 | It is possible to define another place for saved file. Add these lines to the **%APPDATA%\KiTTY\kitty.ini** configuration file. 15 | 16 | ``` 17 | [KiTTY] 18 | sav=C:\Temp\KiTTY\kitty.sav 19 | ``` 20 | -------------------------------------------------------------------------------- /docs/pages/BinaryCompression.md: -------------------------------------------------------------------------------- 1 |
2 | ## Binary compression 3 | 4 | In order to reduce the binary file size, **KiTTY** software is compressed with the program [UPX, the Ultimate Packer for eXecutables](http://upx.sourceforge.net/). 5 | 6 | -------------------------------------------------------------------------------- /docs/pages/Chat.md: -------------------------------------------------------------------------------- 1 |
2 | ## Chat 3 | 4 | A light command-line chat server is hidden in **KiTTY**. To activate it open your registry editor to **[HKEY_CURRENT_USER\Software\9bis.com\KiTTY]** key, and create a new **REG_SZ** type value called `chat` and containing `1`. 5 | 6 | ![](../img/ex_chat.jpg) 7 | 8 | Then put that [library](../files/kchat.dll) just near your **kitty.exe** file. 9 | 10 | When launching the first KiTTY session, the chat server will automatically start. To connect the server and begin a chat session, create a **passive** telnet session at **localhost:1987** (**1987** is the port number). Of course you can start your chat session in the same KiTTY where you create the server (i.e. the first KiTTY window). 11 | 12 | ![](../img/config_chat.jpg) 13 | 14 | As it's not easy to have keyboard input and screen output on the same window, you can start a new dedicated input-box by pressing the **CTRL+F8** keys. 15 | 16 | -------------------------------------------------------------------------------- /docs/pages/ClipboardPrinting.md: -------------------------------------------------------------------------------- 1 |
2 | ## Clipboard printing 3 | 4 | With **KiTTY** it is possible to print directly on a printer device any part of the text displayed on the terminal screen. Use the mouse to select the section of text you want to print. Then 5 | 6 | * select the **Print clipboard** item from the main menu 7 | * or press the **Shift+F7** keys 8 | -------------------------------------------------------------------------------- /docs/pages/ConfigBox.md: -------------------------------------------------------------------------------- 1 |
2 | ## Configuration box 3 | 4 | The saved sessions configuration box on **PuTTY** is very small. Only **6 sessions** can be seen at a time. By default, in **KiTTY** this dialog box is increased to **21 lines**. This height is resizable. 5 | 6 | To adjust the number of lines in the saved sessions configuration box, add these two lines to the **kitty.ini** configuration file: 7 | 8 | [ConfigBox] 9 | height=21 10 | 11 | To disable the automatic sessions name filter (that is the default behaviour) add this setting: 12 | 13 | [ConfigBox] 14 | filter=no 15 | 16 | To modify the size of the configuration box window (for non standard dpi settings) just add this: 17 | 18 | [ConfigBox] 19 | windowheight=800 20 | -------------------------------------------------------------------------------- /docs/pages/Duplicate.md: -------------------------------------------------------------------------------- 1 |
2 | ## Duplication 3 | 4 | To **quick launch** a duplicate session from the current session, press **CTRL + SHIFT** and click on the middle of the active window with **left mouse button**. 5 | 6 | -------------------------------------------------------------------------------- /docs/pages/FileAssociation.md: -------------------------------------------------------------------------------- 1 |
2 | ## File association 3 | 4 | There is a new menu option, to export the settings of the running session into a plain text file. Search for the item **Export current settings** in the main menu: 5 | 6 | ![](../img/menu_export.jpg) 7 | 8 | The default extension for these files is **.ktx**. 9 | 10 | Then it is possible to run directly this saved session with a double-click on the **.ktx** file. But first you need to associate **.ktx** file with **KiTTY**: `kitty.exe -fileassoc` 11 | 12 | Here are two examples of save session you can run directly from KiTTY: 13 | 14 | | Star wars in telnet mode | Chat in telnet mode | 15 | |------------------------|-------------------| 16 | |[![Foo](../img/kitty.png)](../files/StarWarsAscii.ktx)|[![Foo](../img/kitty.png)](../files/StcChat.ktx)| 17 | -------------------------------------------------------------------------------- /docs/pages/Fonts.md: -------------------------------------------------------------------------------- 1 |
2 | ## Font managment 3 | 4 | A **Font settings** option is available in the main menu. It is used: 5 | 6 | * to increase/decrease font size 7 | * to switch to negative colors 8 | * to switch between black on white or white on black terminal 9 | 10 | ![](../img/ex_fonts.jpg) 11 | 12 | Size managment can be done by pressing **CTRL+wheel mouse** too. 13 | -------------------------------------------------------------------------------- /docs/pages/ForceCRLF.md: -------------------------------------------------------------------------------- 1 |
2 | ## Force CR/LF on Enter key 3 | 4 | In some situation it can be useful to force **CR/LF** on **Enter** key (default if **LF** only). 5 | 6 | Just set it in **Terminal/Keyboard** tab of the configuration box: 7 | 8 | ![](../img/config_forcecrlf.jpg) 9 | -------------------------------------------------------------------------------- /docs/pages/HiddenEditor.md: -------------------------------------------------------------------------------- 1 |
2 | ## Hidden editor 3 | 4 | A light text editor is hidden in **KiTTY**. To run it just press **SHIFT+F2**. This editor is connected with the **KiTTY** window that ran it. Everything written into this editor can be directly sent to the running session. 5 | -------------------------------------------------------------------------------- /docs/pages/HowToCompile.md: -------------------------------------------------------------------------------- 1 |
2 | ## How to compile 3 | 4 | The **KiTTY** binary is built with [MinGW32](http://mingw.org/). 5 | 6 | The best way to compile **KiTTY** is to use our cross-compile docker image: 7 | 8 | **For 32 bits compilation** 9 | ```bash 10 | mkdir -p builds 2> /dev/null || rm -f builds/*.exe 11 | docker run --rm -it -v $(pwd)/builds:/builds -e USR_UID=$(id -u) -e USR_GID=$(id -g) cyd01/cross-gcc "git clone https://github.com/cyd01/KiTTY.git ; cd KiTTY/0.76b_My_PuTTY/windows ; make -f MAKEFILE.MINGW cross ; cd /builds ; ls -l" 12 | ``` 13 | 14 | **For 64 bits compilation** 15 | ```bash 16 | mkdir -p builds 2> /dev/null || rm -f builds/*.exe 17 | docker run --rm -it -v $(pwd)/builds:/builds -e USR_UID=$(id -u) -e USR_GID=$(id -g) cyd01/cross-gcc "git clone https://github.com/cyd01/KiTTY.git ; cd KiTTY/0.76b_My_PuTTY/windows ; make -f MAKEFILE.MINGW cross64 ; cd /builds ; ls -l" 18 | ``` 19 | 20 | The **kitty.exe** and other stuff will be available into **/builds** directory. 21 | -------------------------------------------------------------------------------- /docs/pages/KeyConfirmation.md: -------------------------------------------------------------------------------- 1 |
2 | ## Private key usage confirmation 3 | 4 | Private keys can be stored into [Kageant](../files/kageant.exe). 5 | It is possible to force an usage confirmation of a key. 6 | 7 | Create a private key with te word **confirmation** included into the key comment: 8 | 9 | ![](../img/config_kittygen.jpg) 10 | 11 | Then load this key into you **Kageant**. 12 | 13 | When the session that needs to use this key starts, and connects to **Kageant** a pop-up shows up and ask for usage confirmation: 14 | 15 | ![](../img/ex_kageant.jpg) 16 | 17 | >Thanks to [Patrick Cernko](https://people.mpi-klsb.mpg.de/~pcernko/pageant.html) for this patch. 18 | -------------------------------------------------------------------------------- /docs/pages/LocalScript.md: -------------------------------------------------------------------------------- 1 |
2 | ## Running a locally saved script on a remote session 3 | 4 | A script that is saved locally on your PC can be run on a remote machine. 5 | Press the two keys **CTRL+F2**, and in the next dialog box, browse to the file containing the script you want to run. 6 | -------------------------------------------------------------------------------- /docs/pages/LogonScript.md: -------------------------------------------------------------------------------- 1 |
2 | ## Automatic logon script 3 | 4 | It is possible to automate some actions depending on what characters are sent by the server and printed to the screen. It's a sort of **challenge response**. For example it is possible to automate connection on telnet servers. 5 | You have to create a simple text file with one line for expected characters and another line for text to send ... and so on. 6 | 7 | **Example: telnet connection where login and password are sent automatically:** 8 | ``` 9 | login: 10 | user1 11 | password: 12 | toto 13 | ``` 14 | 15 | 16 | Then you just have to set the full path to this file in the **Connection/Data**' tab of the configuration box. The encrypted content of the file will be saved only. And after that you can delete the original file. 17 | 18 | ![](../img/config_script.jpg) 19 | 20 | Last remark: don't forget it can't work with ssh authentication. SSH is not a passive protocol (like telnet), and with ssh, authentication is completely part of the protocol 21 | -------------------------------------------------------------------------------- /docs/pages/OtherSettings.md: -------------------------------------------------------------------------------- 1 |
2 | ## Other Settings 3 | 4 | 5 | ![](../img/config_logging.jpg) ![](../img/config_bell.jpg) 6 | 7 | ![](../img/config_behaviour.jpg) ![](../img/config_colours.jpg) 8 | 9 | ![](../img/config_connection.jpg) ![](../img/config_comment.jpg) 10 | 11 | ![](../img/menu.jpg) ![](../img/config_rutty.jpg) 12 | -------------------------------------------------------------------------------- /docs/pages/PortKnock.md: -------------------------------------------------------------------------------- 1 |
2 | ## Port knocking 3 | 4 | Sometimes it can be useful to protect the **ssh port** of a server from attack, especially if the server is available on internet. 5 | [Port knocking](https://en.wikipedia.org/wiki/Port_knocking) is one of the well known method. 6 | 7 | **KiTTY** can handle with port knocking sequence. Define you sequence in **Connection** tab of the configuration box. 8 | 9 | ![](../img/config_connection.jpg) 10 | 11 | The sequence is a coma separated list of ***port***:***protocol***. 12 | -------------------------------------------------------------------------------- /docs/pages/Protection.md: -------------------------------------------------------------------------------- 1 |
2 | ## Protection against unfortunate keyboard input 3 | 4 | With **KiTTY** you can protect your session against unfortunate keyboard input. A **Protect** option is available in the main menu. 5 | By selecting it the terminal window is protected aginst all input. 6 | This option can also be activated by pressing **CTRL+F9** key combination. 7 | 8 | When a window is in protected mode, its title changes. 9 | 10 | ![](../img/ex_protected.jpg) 11 | 12 | -------------------------------------------------------------------------------- /docs/pages/RollUp.md: -------------------------------------------------------------------------------- 1 |
2 | ## Roll-up 3 | 4 | A **Roll-up** option is available in the main menu. It is used to make the main window disappear "into" the title bar. This option is useful to save screen space and organize windows. 5 | 6 | To "roll-up" your window: 7 | 8 | * select the **Roll-up** item from the main menu 9 | * or press the **CTRL+F12** keys 10 | * or press the **CTRL** key, and click on the **window title bar** with the **left mouse button** 11 | -------------------------------------------------------------------------------- /docs/pages/RuTTY.md: -------------------------------------------------------------------------------- 1 |
2 | ## Automatic logon script with the RuTTY patch 3 | 4 | It is possible to automate some actions using the [RuTTY patch](http://sourceforge.net/projects/rutty/ "Jump to RuTTY patch website"): 5 | 6 | ![](../img/config_rutty.jpg) 7 | 8 | The original **RUTTY** patch documentation is available at [sourceforge](http://sourceforge.net/projects/rutty/files/RuTTY%200.14/RuTTY.rtf/download). 9 | A copy is also available [here](../files/RuTTY.rtf). 10 | -------------------------------------------------------------------------------- /docs/pages/SSHHandler.md: -------------------------------------------------------------------------------- 1 |
2 | ## SSH Handler: Internet Explorer integration 3 | 4 | Now it is possible to use **KiTTY** with Internet Explorer. 5 | **KiTTY** can be integrated into Internet Explorer (or any other browser, such as Firefox) and so become the program linked with **putty://**, **telnet://** or **ssh://** links. 6 | 7 | First you have to download the file [kitty_ssh_handler.reg](../files/kitty_ssh_handler.reg). 8 | Then you must correct it to write the full path to the file kitty.exe on your system. 9 | Finally, run it to update the registry. 10 | 11 | Alternatively you can also update the registry with the command-line parameter `kitty.exe -sshhandler`. 12 | 13 | After this update it is possible to create HTML pages with **ssh://** and **telnet://** links. 14 | 15 | Try this example: 16 | 17 | telnet://towel.blinkenlights.nl 18 | -------------------------------------------------------------------------------- /docs/pages/Savedump.md: -------------------------------------------------------------------------------- 1 |
2 | ## How to make a memory dump 3 | 4 | In order to help bug analysis, it's possible to make a memory dump of KiTTY. 5 | 6 | * Get the very last beta build: https://www.9bis.net/kitty/files/kitty-debug.exe 7 | * Add **debug=yes** option to the **[KiTTY]** section of **kitty.ini** file 8 | * Start the session that makes the issue 9 | * Press **CTRL+F8** keys 10 | * Write **/savedump** into the input box and press Enter 11 | * A **kitty.dmp** file is created into the same directory where **kitty.exe** is located 12 | * Remove **debug=yes** option 13 | -------------------------------------------------------------------------------- /docs/pages/SessionsFilter.md: -------------------------------------------------------------------------------- 1 |
2 | ## Sessions filter 3 | 4 | ### Folders 5 | If you need to manage a large number of sessions, with KiTTY you can organize them into folders. One folder for each type of application, one folder per machine, one folder per environment ... or any other organisation. 6 | In the main configuration box you will find a new dropdown box. By selecting a specific folder you can reduce the number of sessions displayed in the selection list above. 7 | 8 | ![Config folder](../img/config_folder.jpg) 9 | 10 | For more information about folders management, consult the [manual](../doc/kitty-folders_list_feature.pdf "Kitty folder list feature"). 11 | 12 | ### Pattern 13 | It is also possible to filter on session name or session hostname by writing characters into **Saved Session/New Folder** field. 14 | 15 | This feature can be turned on/off by adding these lines in your **%APPDATA%/KiTTY/Kitty.ini** configuration file. 16 | 17 | ``` 18 | [ConfigBox] 19 | ; filter: enable/disable filter in saved sessions selection box 20 | filter=yes 21 | ``` 22 | 23 | All filter can be cleared by pressing the `Clear`button. 24 | -------------------------------------------------------------------------------- /docs/pages/StdoutToClipboard.md: -------------------------------------------------------------------------------- 1 |
2 | ## Standard output to clipboard 3 | 4 | With **KiTTY**, it is possible to send standard output directly to Windows Clipboard. 5 | 6 | First, it is necessary to configure a *fake* printer into **Terminal** panel of the configuration box: 7 | 8 | ![stdouttoclipboard](../img/StdoutToClipboard.png "Send standard output to clipboard") 9 | 10 | Then start the session and create this build-in shell function: 11 | 12 | ```bash 13 | # Function to send standard output to Windows clipboard 14 | function wcl { 15 | echo -ne '\e''[5i' 16 | cat $* 17 | echo -ne '\e''[4i' 18 | echo "Copied to Windows clipboard" 1>&2 19 | } 20 | ``` 21 | 22 | And use is with pipe: 23 | 24 | ```bash 25 | $ ls -lart | wcl 26 | Copied to Windows clipboard 27 | ``` 28 | -------------------------------------------------------------------------------- /docs/pages/Transparency.md: -------------------------------------------------------------------------------- 1 |
2 | ## Transparency 3 | 4 | With **KiTTY** you can modify the transparency of the window. Use these keys to modify it: 5 | 6 | * **CTRL +** (or **CTRL+UP**) on the numeric keypad to decrease transparency 7 | * **CTRL -** (or **CTRL+DOWN**) on the numeric keypad to increase transparency 8 | 9 | The transparency is disabled by default. The option can be activated by adding these two lines to the **kitty.ini** file. 10 | 11 | ***kitty.ini file*** 12 | 13 | [KiTTY] 14 | transparency=yes 15 | 16 | 17 | The transparency can be defined specifically for each session. 18 | 19 | ![](../img/config_transparency.jpg) 20 | 21 | > Last minute information for [WinTabber](http://www.wintabber.com), [MTPuTTY](http://www.ttyplus.com/) and [Gadwin](http://www.gadwin.com/printscreen/) users: This software does not work with KiTTY when transparency management is on. For normal use, you must not activate it. 22 | 23 | -------------------------------------------------------------------------------- /docs/pages/URLHyperlinks.md: -------------------------------------------------------------------------------- 1 |
2 | ## URL hyperlinks 3 | 4 | You can specify a specific management for URL hyperlinks into your terminal: 5 | 6 | ![](../img/config_hyperlinks.jpg) 7 | 8 | To enable it add the two lines to your **%APPDATA%/KiTTY/kitty.ini** file: 9 | ``` 10 | [KiTTY] 11 | hyperlink=yes 12 | ``` 13 | -------------------------------------------------------------------------------- /docs/pages/ZModem.md: -------------------------------------------------------------------------------- 1 |
2 | ## ZModem 3 | 4 | The **ZModem** patch from [LePuTTY](http://leputty.sourceforge.net/ "LePuTTY") is now integrated to **KiTTY**. 5 | 6 | > This feature is broken from **[0.71](0.71.md)** version. 7 | 8 | ![](../img/config_zmodem.jpg) 9 | 10 | To activate it you need to add these two lines to your **%APPDATA%/KiTTY/kitty.ini** file: 11 | 12 | [KiTTY] 13 | zmodem=yes 14 | 15 | **sz.exe** and **rz.exe** binaries are available [here](../files/kitty_zmodem.zip "ZModem tools"). 16 | 17 | The last KiTTY version that support **ZModem** feature is **[0.70.0.10](https://www.fosshub.com/KiTTY-old.html?dwl=kitty-0.70.0.10.exe)**. 18 | 19 | -------------------------------------------------------------------------------- /docs/pages/chanlog.md: -------------------------------------------------------------------------------- 1 |
2 | ## Chanlog 3 | 4 | A very light chanlog is available on [Github release page](https://github.com/cyd01/KiTTY/releases). 5 | -------------------------------------------------------------------------------- /docs/pages/contact.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /docs/pages/covidimus.md: -------------------------------------------------------------------------------- 1 |
2 | ## Background image 3 | 4 | If you want to add a background image in your sessions windows, you can do it with the [covidimus patch](https://web.archive.org/web/20050308132334/http://www.covidimus.net/projects/putty/putty.php) that was integrated into **KiTTY**. 5 | 6 | > This feature is broken from **0.71** version. 7 | 8 | ![](../img/ex_background.jpg) 9 | 10 | By default this patch is disabled. To activate it it is necessary to add these two lines into the **%APPDATA%/KiTTY/kitty.ini** configuration file: 11 | 12 | [KiTTY] 13 | backgroundimage=yes 14 | 15 | **KiTTY** accepts **BMP** and **JPEG** images. 16 | 17 | ---- 18 | 19 | > Caution: this patch is not compatible with non-ASCII characters managment (chinese, japanese ...). 20 | 21 | -------------------------------------------------------------------------------- /docs/pages/scoop.md: -------------------------------------------------------------------------------- 1 |
2 | ## Scoop Windows packages manager 3 | 4 | **KiTTY** appears in **[scoop.sh](https://scoop.sh/)** Windows packages manager, in the alternative [extras](https://github.com/lukesampson/scoop-extras) bucket. 5 | 6 | After installing **Scoop**, just run these commands to install **KiTTY**: 7 | 8 | ``` 9 | scoop bucket add extras 10 | scoop install kitty 11 | ``` 12 | -------------------------------------------------------------------------------- /docs/pass/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all 2 | -------------------------------------------------------------------------------- /docs/paypal.html: -------------------------------------------------------------------------------- 1 | 2 | Paypal donation 3 | 8 | 9 | 10 |
11 | 12 |
13 | 14 |
15 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /docs/version.txt: -------------------------------------------------------------------------------- 1 | 0.76.1.13 -------------------------------------------------------------------------------- /docs/version1.php: -------------------------------------------------------------------------------- 1 | 38 | -------------------------------------------------------------------------------- /far2l/cdecode.h: -------------------------------------------------------------------------------- 1 | #ifdef MOD_FAR2L 2 | /* 3 | cdecode.h - c header for a base64 decoding algorithm 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CDECODE_H 9 | #define BASE64_CDECODE_H 10 | 11 | typedef enum 12 | { 13 | step_a, step_b, step_c, step_d 14 | } base64_decodestep; 15 | 16 | typedef struct 17 | { 18 | base64_decodestep step; 19 | char plainchar; 20 | } base64_decodestate; 21 | 22 | void base64_init_decodestate(base64_decodestate* state_in); 23 | 24 | int base64_decode_value(char value_in); 25 | 26 | int base64_decode_block(const char* code_in, const int length_in, char* plaintext_out, base64_decodestate* state_in); 27 | 28 | #endif /* BASE64_CDECODE_H */ 29 | #endif 30 | -------------------------------------------------------------------------------- /far2l/cencode.h: -------------------------------------------------------------------------------- 1 | #ifdef MOD_FAR2L 2 | /* 3 | cencode.h - c header for a base64 encoding algorithm 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CENCODE_H 9 | #define BASE64_CENCODE_H 10 | 11 | typedef enum 12 | { 13 | step_A, step_B, step_C 14 | } base64_encodestep; 15 | 16 | typedef struct 17 | { 18 | base64_encodestep step; 19 | char result; 20 | int stepcount; 21 | } base64_encodestate; 22 | 23 | void base64_init_encodestate(base64_encodestate* state_in); 24 | 25 | char base64_encode_value(char value_in); 26 | 27 | int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in); 28 | 29 | int base64_encode_blockend(char* code_out, base64_encodestate* state_in); 30 | 31 | #endif /* BASE64_CENCODE_H */ 32 | #endif 33 | -------------------------------------------------------------------------------- /jpeg/libjpeg.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/jpeg/libjpeg.a -------------------------------------------------------------------------------- /jpeg/libjpeg_64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/jpeg/libjpeg_64.a -------------------------------------------------------------------------------- /kitty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/kitty.ico -------------------------------------------------------------------------------- /kitty_crypt.h: -------------------------------------------------------------------------------- 1 | #ifndef KITTYCRYPT_H 2 | #define KITTYCRYPT_H 3 | 4 | #include "nbcrypt.h" 5 | #include 6 | 7 | int cryptstring( const int mode, char * st, const char * key ) ; 8 | int decryptstring( const int mode, char * st, const char * key ) ; 9 | int cryptpassword( const int mode, char * password, const char * host, const char * termtype ) ; 10 | int decryptpassword( const int mode, char * password, const char * host, const char * termtype ) ; 11 | 12 | void MASKPASS( const int mode, char * password ) ; 13 | 14 | // Procedure de management de la passphrase 15 | int GetUserPassSSHNoSave(void) ; 16 | char * ManagePassPhrase( const char * st ) ; 17 | size_t iso8859_1_to_utf8(char *content, size_t max_size) ; // Latin-1 = iso8859-1 18 | size_t utf8_to_iso8859_15(char *const output, const char *const input, const size_t length) ; // Latin-9 = iso8859-15 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /kitty_dll.c: -------------------------------------------------------------------------------- 1 | // g++ -shared -o kitty.dll kitty_dll.res.o ../../kitty_dll.c -Wl,--whole-archive ../../base64.a -Wl,--no-whole-archive -DBUILD_DLL -static-libgcc 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #ifdef BUILD_DLL 8 | #define LINKDLL extern "C" __declspec(dllimport) 9 | #else 10 | #define LINKDLL 11 | #endif 12 | 13 | extern "C" const char * get_param_str( const char * val ) { 14 | if( !stricmp( val, "CLASS" ) ) return "KiTTY" ; 15 | return NULL ; 16 | } 17 | -------------------------------------------------------------------------------- /kitty_image.h: -------------------------------------------------------------------------------- 1 | #ifdef MOD_BACKGROUNDIMAGE 2 | 3 | #include 4 | 5 | extern HDC textdc; 6 | extern HBITMAP textbm; 7 | extern HBITMAP backgroundbm; 8 | extern HDC backgroundblenddc; 9 | extern HBITMAP backgroundblendbm; 10 | 11 | extern COLORREF colorinpixel; 12 | extern HDC colorinpixeldc; 13 | extern HBITMAP colorinpixelbm; 14 | extern HDC backgrounddc; 15 | extern BOOL bBgRelToTerm; 16 | 17 | extern bool resizing; 18 | extern RECT size_before; 19 | 20 | void color_blend(HDC destDc, int x, int y, int width, int height, COLORREF alphacolor, int opacity) ; 21 | void paint_term_edges(Terminal *term, HDC hdc, LONG paint_left, LONG paint_top, LONG paint_right, LONG paint_bottom) ; 22 | void init_dc_blend(void); 23 | 24 | int screenCapturePart(int x, int y, int w, int h, LPCSTR fname,int quality) ; 25 | int screenCaptureClientRect( HWND hwnd, LPCSTR fname, int quality ) ; 26 | int screenCaptureWinRect( HWND hwnd, LPCSTR fname, int quality ) ; 27 | int screenCaptureAll( LPCSTR fname, int quality ) ; 28 | 29 | #endif 30 | 31 | void MakeScreenShot(); 32 | int screenCaptureClientRect( HWND hwnd, LPCSTR fname, int quality ) ; 33 | -------------------------------------------------------------------------------- /kitty_keygen.c: -------------------------------------------------------------------------------- 1 | int get_param( const char * val ) { return 0 ; } 2 | void debug_logevent( const char *fmt, ... ) { return ; } 3 | -------------------------------------------------------------------------------- /kitty_launcher.h: -------------------------------------------------------------------------------- 1 | #ifndef KITTY_LAUNCHER_H 2 | #define KITTY_LAUNCHER_H 3 | 4 | #include 5 | 6 | void GoNext( HWND hwnd ) ; 7 | void GoPrevious( HWND hwnd ) ; 8 | void RunPuTTY( HWND hwnd, char * param ) ; 9 | int RunSession( HWND hwnd, const char * folder_in, char * session_in ) ; 10 | int WINAPI Launcher_WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) ; 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /kitty_light.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Devrait etre vide en temps normal 3 | * Sert juste a reussir la compilation en phase de debug 4 | */ 5 | -------------------------------------------------------------------------------- /kitty_proxy.h: -------------------------------------------------------------------------------- 1 | #ifndef KITTY_PROXY 2 | #define KITTY_PROXY 3 | 4 | #define MAX_PROXY 100 5 | struct Proxies { 6 | char *name; 7 | int val; 8 | }; 9 | extern struct Proxies proxies[MAX_PROXY] ; 10 | 11 | int GetProxySelectionFlag() ; 12 | void SetProxySelectionFlag( const int flag ) ; 13 | int LoadProxyInfo( Conf * conf, const char * name ) ; 14 | void InitProxyList(void) ; 15 | int LoadProxyInfo( Conf * conf, const char * name ) ; 16 | #endif 17 | -------------------------------------------------------------------------------- /kitty_regex.c: -------------------------------------------------------------------------------- 1 | #include "kitty_regex.h" 2 | 3 | int strgrep( const char * pattern, const char * str ) { 4 | int return_code = 1 ; 5 | regex_t preg ; 6 | 7 | if( (return_code = regcomp (&preg, pattern, REG_NOSUB | REG_EXTENDED ) ) == 0 ) { 8 | return_code = regexec( &preg, str, 0, NULL, 0 ) ; 9 | regfree( &preg ) ; 10 | } 11 | 12 | return return_code ; 13 | } 14 | -------------------------------------------------------------------------------- /kitty_regex.h: -------------------------------------------------------------------------------- 1 | #ifndef KITTY_REGEX 2 | #define KITTY_REGEX 3 | #include 4 | #include "regex.h" 5 | int strgrep( const char * pattern, const char * str ) ; 6 | #endif 7 | -------------------------------------------------------------------------------- /kitty_ssh.h: -------------------------------------------------------------------------------- 1 | #ifndef KITTY_SSH 2 | #define KITTY_SSH 3 | 4 | #ifdef MOD_PORTKNOCKING 5 | #define PROTO_TCP 1 6 | #define PROTO_UDP 2 7 | int knock( char *hostname, unsigned short port, unsigned short proto) ; 8 | int ManagePortKnocking( char* host, char *portstr ) ; 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /masterpassword.txt: -------------------------------------------------------------------------------- 1 | "ToBeDefined" -------------------------------------------------------------------------------- /md5/MD5check.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/md5/MD5check.a -------------------------------------------------------------------------------- /md5/MD5check.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | /* Procedure de vérification de la signature */ 4 | BOOL CheckMD5Integrity(void) ; 5 | -------------------------------------------------------------------------------- /md5/MD5check_64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/md5/MD5check_64.a -------------------------------------------------------------------------------- /md5/config.h: -------------------------------------------------------------------------------- 1 | #ifndef __CONFIG_H__ 2 | #define __CONFIG_H__ 3 | 4 | #define WIN32_LEAN_AND_MEAN 5 | 6 | #define _WIN32_WINDOWS 0x0400 7 | #define _WIN32_WINNT 0x0400 8 | #define _WIN32_IE 0x0400 9 | 10 | #define UNICODE 11 | 12 | #ifdef __GNUC__ 13 | #define DEPRECATED __attribute__((deprecated)) 14 | #define NORETURN __attribute__((noreturn)) 15 | #define UNUSED __attribute__((unused)) 16 | #else 17 | #define DEPRECATED 18 | #define NORETURN 19 | #define UNUSED 20 | #endif 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /md5/console.c: -------------------------------------------------------------------------------- 1 | #include "config.h" 2 | #include 3 | #include "md5assert.h" 4 | #include "console.h" 5 | 6 | typedef union { 7 | LPTSTR lpBuffer; 8 | LPTSTR lpValue; 9 | } LPTSTR99; 10 | 11 | VOID PrintConsole(LPCTSTR lpFormat, ...) { 12 | va_list lpValues; 13 | LPTSTR99 Message; 14 | DWORD dwCharacters; 15 | va_start(lpValues, lpFormat); 16 | Message.lpBuffer = (LPTSTR) &Message.lpValue; 17 | dwCharacters = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING, lpFormat, 0, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), Message.lpBuffer, 0, &lpValues); 18 | va_end(lpValues); 19 | assert(dwCharacters != 0); 20 | assert(WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), Message.lpValue, dwCharacters, &dwCharacters, NULL) != 0); 21 | LocalFree(Message.lpBuffer); 22 | } 23 | 24 | -------------------------------------------------------------------------------- /md5/console.h: -------------------------------------------------------------------------------- 1 | #ifndef __CONSOLE_H__ 2 | #define __CONSOLE_H__ 3 | 4 | extern VOID PrintConsole(LPCTSTR, ...); 5 | 6 | #endif 7 | 8 | -------------------------------------------------------------------------------- /md5/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/md5/main.c -------------------------------------------------------------------------------- /md5/main.h: -------------------------------------------------------------------------------- 1 | #ifndef __MAIN_H__ 2 | #define __MAIN_H__ 3 | 4 | extern VOID NORETURN mainCRTStartup(VOID); 5 | 6 | #endif 7 | 8 | -------------------------------------------------------------------------------- /md5/md5assert.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/md5/md5assert.c -------------------------------------------------------------------------------- /md5/md5assert.h: -------------------------------------------------------------------------------- 1 | #ifndef __ASSERT_H__ 2 | #define __ASSERT_H__ 3 | 4 | #define _str(x) #x 5 | #define str(x) _str(x) 6 | 7 | #ifndef NDEBUG 8 | extern VOID NORETURN _assert(LPCTSTR, UINT, LPCTSTR); 9 | #define assert(x) ((x) ? SetLastErrorEx(0, SLE_WARNING) : _assert(TEXT(__FILE__), __LINE__, TEXT(#x))) 10 | #else 11 | #define assert(x) ((void) (x)) 12 | #endif 13 | 14 | #endif 15 | 16 | -------------------------------------------------------------------------------- /mini/mini.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/mini/mini.a -------------------------------------------------------------------------------- /mini/mini_64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/mini/mini_64.a -------------------------------------------------------------------------------- /regex/libregex.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/regex/libregex.a -------------------------------------------------------------------------------- /regex/libregex_64.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/regex/libregex_64.a -------------------------------------------------------------------------------- /res/0.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/0.ico -------------------------------------------------------------------------------- /res/1.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/1.ico -------------------------------------------------------------------------------- /res/2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/2.ico -------------------------------------------------------------------------------- /res/3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/3.ico -------------------------------------------------------------------------------- /res/4.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/4.ico -------------------------------------------------------------------------------- /res/5.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/5.ico -------------------------------------------------------------------------------- /res/6.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/6.ico -------------------------------------------------------------------------------- /res/7.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/7.ico -------------------------------------------------------------------------------- /res/8.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/8.ico -------------------------------------------------------------------------------- /res/9.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/9.ico -------------------------------------------------------------------------------- /res/Artua-Soccer-Football.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/Artua-Soccer-Football.ico -------------------------------------------------------------------------------- /res/Artua-Soccer-Worldcup.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/Artua-Soccer-Worldcup.ico -------------------------------------------------------------------------------- /res/Football.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/Football.ico -------------------------------------------------------------------------------- /res/Hover.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/Hover.cur -------------------------------------------------------------------------------- /res/bille.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/bille.ico -------------------------------------------------------------------------------- /res/black.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/black.ico -------------------------------------------------------------------------------- /res/bunny.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/bunny.ico -------------------------------------------------------------------------------- /res/coq.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/coq.ico -------------------------------------------------------------------------------- /res/coyote.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/coyote.ico -------------------------------------------------------------------------------- /res/daffy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/daffy.ico -------------------------------------------------------------------------------- /res/daphne.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/daphne.ico -------------------------------------------------------------------------------- /res/edit.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/edit.ico -------------------------------------------------------------------------------- /res/elmer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/elmer.ico -------------------------------------------------------------------------------- /res/file_assoc/kitty_assoc.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/file_assoc/kitty_assoc.ico -------------------------------------------------------------------------------- /res/freddie.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/freddie.ico -------------------------------------------------------------------------------- /res/general.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/general.ico -------------------------------------------------------------------------------- /res/hagar.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/hagar.ico -------------------------------------------------------------------------------- /res/hellokitty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/hellokitty.ico -------------------------------------------------------------------------------- /res/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/img/favicon.ico -------------------------------------------------------------------------------- /res/jerry.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/jerry.ico -------------------------------------------------------------------------------- /res/kitty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/kitty.ico -------------------------------------------------------------------------------- /res/kitty_assoc.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/kitty_assoc.ico -------------------------------------------------------------------------------- /res/mars.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/mars.ico -------------------------------------------------------------------------------- /res/nocon/kitty_nocon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/nocon/kitty_nocon.ico -------------------------------------------------------------------------------- /res/nuclear.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/nuclear.ico -------------------------------------------------------------------------------- /res/pepepu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/pepepu.ico -------------------------------------------------------------------------------- /res/player_play.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/player_play.ico -------------------------------------------------------------------------------- /res/porky.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/porky.ico -------------------------------------------------------------------------------- /res/putty2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty2.ico -------------------------------------------------------------------------------- /res/putty3.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty3.ico -------------------------------------------------------------------------------- /res/putty4.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty4.ico -------------------------------------------------------------------------------- /res/putty5.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty5.ico -------------------------------------------------------------------------------- /res/putty6.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty6.ico -------------------------------------------------------------------------------- /res/putty7.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty7.ico -------------------------------------------------------------------------------- /res/putty8.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty8.ico -------------------------------------------------------------------------------- /res/putty_launcher.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/putty_launcher.ico -------------------------------------------------------------------------------- /res/puttyprd.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/puttyprd.ico -------------------------------------------------------------------------------- /res/rocky.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/rocky.ico -------------------------------------------------------------------------------- /res/runner.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/runner.ico -------------------------------------------------------------------------------- /res/sam.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/sam.ico -------------------------------------------------------------------------------- /res/scooby.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/scooby.ico -------------------------------------------------------------------------------- /res/shaggy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/shaggy.ico -------------------------------------------------------------------------------- /res/snoopy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/snoopy.ico -------------------------------------------------------------------------------- /res/speedy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/speedy.ico -------------------------------------------------------------------------------- /res/sylvester.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/sylvester.ico -------------------------------------------------------------------------------- /res/taz.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/taz.ico -------------------------------------------------------------------------------- /res/tom.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/tom.ico -------------------------------------------------------------------------------- /res/tweety.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/tweety.ico -------------------------------------------------------------------------------- /res/velma.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/velma.ico -------------------------------------------------------------------------------- /res/woods.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/woods.ico -------------------------------------------------------------------------------- /res/woody.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/woody.ico -------------------------------------------------------------------------------- /res/yogi.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cyd01/KiTTY/75fa2abcd220c17249ff7252f8d5224137001f2d/res/yogi.ico -------------------------------------------------------------------------------- /url/re_lib/regexp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Definitions etc. for regexp(3) routines. 3 | * 4 | * Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], 5 | * not the System V one. 6 | */ 7 | #define NSUBEXP 16 8 | typedef struct regexp { 9 | char *startp[NSUBEXP]; 10 | char *endp[NSUBEXP]; 11 | char regstart; /* Internal use only. */ 12 | char reganch; /* Internal use only. */ 13 | char *regmust; /* Internal use only. */ 14 | int regmlen; /* Internal use only. */ 15 | char program[1]; /* Unwarranted chumminess with compiler. */ 16 | } regexp; 17 | 18 | regexp *regcomp( char* re); 19 | int regexec( regexp* r, char* str); 20 | void regsub( regexp* r, char* str, char* substr); 21 | void regerror( char* s); /* for internal use only */ 22 | void set_regerror_func( void (*func)( char*)); 23 | 24 | void regfree( regexp* r) ; 25 | -------------------------------------------------------------------------------- /url/re_lib/regmagic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * The first byte of the regexp internal "program" is actually this magic 3 | * number; the start node begins in the second byte. 4 | */ 5 | #define MAGIC 0234 6 | -------------------------------------------------------------------------------- /url/urlhack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * HACK: PuttyTray / Nutty 3 | * Hyperlink stuff: CORE FILE! Don't forget to COPY IT TO THE NEXT VERSION 4 | */ 5 | #ifndef _URLHACK_H 6 | #define _URLHACK_H 7 | 8 | #include 9 | 10 | typedef struct { int x0, y0, x1, y1; } text_region; 11 | 12 | const char* urlhack_default_regex; 13 | const char* urlhack_liberal_regex; 14 | 15 | enum { 16 | URLHACK_REGEX_CUSTOM = 0, 17 | URLHACK_REGEX_CLASSIC = 1, 18 | URLHACK_REGEX_LIBERAL, 19 | }; 20 | 21 | int urlhack_mouse_old_x, urlhack_mouse_old_y, urlhack_current_region; 22 | 23 | void urlhack_reset(); 24 | void urlhack_go_find_me_some_hyperlinks(int screen_width); 25 | void urlhack_putchar(char ch); 26 | text_region urlhack_get_link_region(int index); 27 | 28 | int urlhack_is_in_link_region(int x, int y); 29 | int urlhack_is_in_this_link_region(text_region r, int x, int y); 30 | text_region urlhack_get_link_bounds(int x, int y); 31 | void urlhack_add_link_region(int x0, int y0, int x1, int y1); 32 | 33 | void urlhack_launch_url(const char* app, const char *url); 34 | 35 | int urlhack_is_ctrl_pressed(); 36 | //void urlhack_set_regular_expression(const char* expression); 37 | void urlhack_set_regular_expression(int mode, const char* expression) ; 38 | 39 | void urlhack_init(); 40 | void urlhack_cleanup(); 41 | 42 | void SetHyperlinkFlag( const int flag ) ; 43 | void FixWrongRegex() ; 44 | 45 | #endif // _URLHACK_H 46 | -------------------------------------------------------------------------------- /url/urlhack.old.h: -------------------------------------------------------------------------------- 1 | /* 2 | * HACK: PuttyTray / Nutty 3 | * Hyperlink stuff: CORE FILE! Don't forget to COPY IT TO THE NEXT VERSION 4 | */ 5 | #ifndef _URLHACK_H 6 | #define _URLHACK_H 7 | 8 | #include "re_lib/regexp.h" 9 | 10 | typedef struct { int x0, y0, x1, y1; } text_region; 11 | 12 | const char* urlhack_default_regex; 13 | const char* urlhack_liberal_regex; 14 | 15 | enum { 16 | URLHACK_REGEX_CUSTOM = 0, 17 | URLHACK_REGEX_CLASSIC = 1, 18 | URLHACK_REGEX_LIBERAL, 19 | }; 20 | 21 | int urlhack_mouse_old_x, urlhack_mouse_old_y, urlhack_current_region; 22 | 23 | void urlhack_reset(); 24 | void urlhack_go_find_me_some_hyperlinks(int screen_width); 25 | void urlhack_putchar(char ch); 26 | text_region urlhack_get_link_region(int index); 27 | 28 | int urlhack_is_in_link_region(int x, int y); 29 | int urlhack_is_in_this_link_region(text_region r, int x, int y); 30 | text_region urlhack_get_link_bounds(int x, int y); 31 | void urlhack_add_link_region(int x0, int y0, int x1, int y1); 32 | void urlhack_launch_url(const char* app, const char *url); 33 | int urlhack_is_ctrl_pressed(); 34 | //void urlhack_set_regular_expression(const char* expression); 35 | void urlhack_set_regular_expression(int mode, const char* expression) ; 36 | 37 | void urlhack_init(); 38 | void urlhack_cleanup(); 39 | 40 | void SetHyperlinkFlag( const int flag ) ; 41 | 42 | #endif // _URLHACK_H 43 | -------------------------------------------------------------------------------- /void.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Devrait etre vide en temps normal 3 | * Sert juste a reussir la compilation en phase de debug 4 | */ 5 | 6 | #include 7 | #include "putty.h" 8 | #ifdef MOD_PERSO 9 | 10 | #endif 11 | --------------------------------------------------------------------------------