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: |
2d57dd9864e513ac1cee6d64a5f969b1 |
| 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 | 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 | > | 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 17 18 19 20 21 22 23 |
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 |
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
## 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]
| > > > > > > > > > | 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 |
}
X509.parseCert = __parseCert;
delete __parseCert;
}
}
proc readFile {fileName} {
set fileName [file join $::dir $fileName]
if {![info exists ::readFile($fileName)]} {
catch {
set fd [open $fileName]
set ::readFile($fileName) [read $fd]
}
catch {
| > > > > > > > | 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 {
|
| ︙ | ︙ |