Check-in [2d57dd9864]
Overview
Comment:Make Tcl SSH Agent more standalone
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 2d57dd9864e513ac1cee6d64a5f969b1d224c00b
User & Date: rkeene on 2022-03-13 20:46:34
Other Links: manifest | tags
Context
2024-02-27
18:31
Create new branch named "ssh-agent-encode-bigint-better" Leaf check-in: bae07d7e7c user: rkeene tags: ssh-agent-encode-bigint-better
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
38
39
40
41
42
43

37
38
39
40
41
42
43
44







+
build/chrome/test
build/chrome/google-pcsc.js
build/chrome/manifest.json
build/chrome/jsrsasign.js
build/chrome/extra/*.png
build/tcl/ssh-agent-noasync.js
build/tcl/tclkit
build/tcl/ssh-agent

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

1







2
3
4
5
6
7
8
9
10
11
12

13
14
15
16

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-
+
+
+
+
+
+
+











+




all: ssh-agent-noasync.js
all: ssh-agent

ssh-agent: ssh-agent.in ssh-agent-noasync.js chrome-emu.js
	rm -f ssh-agent.new ssh-agent
	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
	chmod +x ssh-agent.new
	mv ssh-agent.new ssh-agent

ssh-agent-noasync.js: ../chrome/ssh-agent.js
	$(CC) -Dawait='' -Dasync='' -nostdinc -C -E -x c ../chrome/ssh-agent.js -o - | grep -v '^# ' > ssh-agent-noasync.js.new
	mv ssh-agent-noasync.js.new ssh-agent-noasync.js

softokn3-pkcs11.so: softokn3-pkcs11.c
	$(CC) -fPIC -Wall -shared -o softokn3-pkcs11.so softokn3-pkcs11.c

clean:
	rm -f ssh-agent-noasync.js.new ssh-agent-noasync.js
	rm -f softokn3-pkcs11.so
	rm -f ssh-agent.new ssh-agent

distclean: clean

.PHONY: all clean distclean

Renamed and modified build/tcl/ssh-agent.tcl [bf92e80fb2] to build/tcl/ssh-agent.in [973f5211fa].

16
17
18
19
20
21
22









23
24
25
26
27
28
29
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38







+
+
+
+
+
+
+
+
+







	error "Must set SSH_AGENT_PKCS11_MODULE"
}

package require duktape 0.7
package require tuapi
package require pki 0.6
package require pki::pkcs11 0.9.9

# Files
set ::files(chrome-emu.js) {
@@CHROME_EMU_JS@@
}

set ::files(ssh-agent-noasync.js) {
@@SSH_AGENT_NOASYNC_JS@@
}

## HACK: Fix up older versions of "pki" to include the raw certificate
##       this is needed
apply {{} {
	set procToUpdate ::pki::x509::parse_cert
	if {![string match "*set ret(raw)*" [info body $procToUpdate]]} {
		set body [info body $procToUpdate]
152
153
154
155
156
157
158







159
160
161
162
163
164
165
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181







+
+
+
+
+
+
+







		}
		X509.parseCert = __parseCert;
		delete __parseCert;
	}
}

proc readFile {fileName} {
	if {[info exists ::files($fileName)]} {
		set data $::files($fileName)
		if {[string range [string trim $data] 0 1] ne "@@"} {
			return $data
		}
	}

	set fileName [file join $::dir $fileName]
	if {![info exists ::readFile($fileName)]} {
		catch {
			set fd [open $fileName]
			set ::readFile($fileName) [read $fd]
		}
		catch {