Check-in [2d57dd9864]
Overview
Comment:Make Tcl SSH Agent more standalone
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | trunk
Files: files | file ages | folders
SHA1:2d57dd9864e513ac1cee6d64a5f969b1d224c00b
User & Date: rkeene on 2022-03-13 20:46:34
Other Links: manifest | tags
Context
2022-03-13
20:46
Make Tcl SSH Agent more standalone Leaf check-in: 2d57dd9864 user: rkeene tags: trunk
20:23
Add SHA-512 support (hacked) and a bit of cleanup check-in: a1b40a439c user: rkeene tags: trunk
Changes

Modified .fossil-settings/ignore-glob from [4e7947b3ab] to [5381eee219].

    37     37   build/chrome/test
    38     38   build/chrome/google-pcsc.js
    39     39   build/chrome/manifest.json
    40     40   build/chrome/jsrsasign.js
    41     41   build/chrome/extra/*.png
    42     42   build/tcl/ssh-agent-noasync.js
    43     43   build/tcl/tclkit
           44  +build/tcl/ssh-agent

Modified build/tcl/Makefile from [ef0ac61411] to [f52d795173].

     1         -all: ssh-agent-noasync.js
            1  +all: ssh-agent
            2  +
            3  +ssh-agent: ssh-agent.in ssh-agent-noasync.js chrome-emu.js
            4  +	rm -f ssh-agent.new ssh-agent
            5  +	sed $$'/@@SSH_AGENT_NOASYNC_JS@@/{r ssh-agent-noasync.js\nd}\n/@@CHROME_EMU_JS@@/{r chrome-emu.js\nd}' < ssh-agent.in > ssh-agent.new
            6  +	chmod +x ssh-agent.new
            7  +	mv ssh-agent.new ssh-agent
     2      8   
     3      9   ssh-agent-noasync.js: ../chrome/ssh-agent.js
     4     10   	$(CC) -Dawait='' -Dasync='' -nostdinc -C -E -x c ../chrome/ssh-agent.js -o - | grep -v '^# ' > ssh-agent-noasync.js.new
     5     11   	mv ssh-agent-noasync.js.new ssh-agent-noasync.js
     6     12   
     7     13   softokn3-pkcs11.so: softokn3-pkcs11.c
     8     14   	$(CC) -fPIC -Wall -shared -o softokn3-pkcs11.so softokn3-pkcs11.c
     9     15   
    10     16   clean:
    11     17   	rm -f ssh-agent-noasync.js.new ssh-agent-noasync.js
    12     18   	rm -f softokn3-pkcs11.so
           19  +	rm -f ssh-agent.new ssh-agent
    13     20   
    14     21   distclean: clean
    15     22   
    16     23   .PHONY: all clean distclean

Modified build/tcl/ssh-agent.in from [bf92e80fb2] to [973f5211fa].

    16     16   	error "Must set SSH_AGENT_PKCS11_MODULE"
    17     17   }
    18     18   
    19     19   package require duktape 0.7
    20     20   package require tuapi
    21     21   package require pki 0.6
    22     22   package require pki::pkcs11 0.9.9
           23  +
           24  +# Files
           25  +set ::files(chrome-emu.js) {
           26  +@@CHROME_EMU_JS@@
           27  +}
           28  +
           29  +set ::files(ssh-agent-noasync.js) {
           30  +@@SSH_AGENT_NOASYNC_JS@@
           31  +}
    23     32   
    24     33   ## HACK: Fix up older versions of "pki" to include the raw certificate
    25     34   ##       this is needed
    26     35   apply {{} {
    27     36   	set procToUpdate ::pki::x509::parse_cert
    28     37   	if {![string match "*set ret(raw)*" [info body $procToUpdate]]} {
    29     38   		set body [info body $procToUpdate]
................................................................................
   152    161   		}
   153    162   		X509.parseCert = __parseCert;
   154    163   		delete __parseCert;
   155    164   	}
   156    165   }
   157    166   
   158    167   proc readFile {fileName} {
          168  +	if {[info exists ::files($fileName)]} {
          169  +		set data $::files($fileName)
          170  +		if {[string range [string trim $data] 0 1] ne "@@"} {
          171  +			return $data
          172  +		}
          173  +	}
          174  +
   159    175   	set fileName [file join $::dir $fileName]
   160    176   	if {![info exists ::readFile($fileName)]} {
   161    177   		catch {
   162    178   			set fd [open $fileName]
   163    179   			set ::readFile($fileName) [read $fd]
   164    180   		}
   165    181   		catch {