Files
2026-07-30 11:19:44 +05:30

109 lines
3.3 KiB
Tcl

#!/usr/bin/expect --
##############################################################################
# Updates the .cfg files and download
# them to the target systems
#
# Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: setup.tcl,v $ $Revision: 1.14 $
# $Source: /home/interpeak/CVSRoot/ipike/examples/setup.tcl,v $
# $Author: edahlber $ $Date: 2010-04-23 15:31:39 $
# $State: Exp $ $Locker: $
#
# Copyright Interpeak AB 2001 <www.interpeak.se>. All rights reserved.
# Created by Kenneth Jonsson <kenneth@interpeak.se>
##############################################################################
set prompt "(%|\#|\\$|>) ?$"
if { [llength $argv] != 5 } {
puts "Usage: setup.tcl ip_initiator ip_responder ftp_name ftp_login (pre|rsa|dss)\n"
exit
}
set auth_meth ""
if { "pre" == [lindex $argv 4] } {
set auth_meth "PRE_SHARED_KEY"
set private_key ""
set cert ""
}
if { "rsa" == [lindex $argv 4] } {
set auth_meth "RSA_SIGNATURE"
set private_key "ike_rsa_init.key ike_rsa_resp.key"
set cert "ike_rsa_init.cer ike_rsa_resp.cer"
}
if { "dss" == [lindex $argv 4] } {
set auth_meth "DSS_SIGNATURE"
set private_key "ike_dsa_init.key ike_dsa_resp.key"
set cert "ike_dsa_init.cer ike_dsa_resp.cer"
}
if { $auth_meth == "" } {
puts "The last argument must be pre, rsa or dss"
exit
}
set conffn "initiator.cfg responder.cfg"
set tempfn "initiator.bak responder.bak"
set ipaddr "#INITIATOR #RESPONDER"
set trusted_dir "trusted"
set intermediate_dir "intermediate"
for { set i 0 } {$i < 2} {incr i 1 } {
set f_handle [open [lindex $conffn $i] "r"]
set str [read $f_handle]
close $f_handle
regsub -all -- [lindex $ipaddr 0] $str [lindex $argv 0] str
regsub -all -- [lindex $ipaddr 1] $str [lindex $argv 1] str
regsub -all -- "#AUTHENTICATION_METHOD" $str $auth_meth str
if { $private_key == "" } {
regsub -all -- "#CERTIFICATE" $str "dummy" str
regsub -all -- "#PRIVATE_KEY" $str "dummy" str
} else {
regsub -all -- "#CERTIFICATE" $str [lindex $cert $i] str
regsub -all -- "#PRIVATE_KEY" $str [lindex $private_key $i] str
}
set f_handle [open [lindex $tempfn $i] "w"]
puts -nonewline $f_handle $str
close $f_handle
spawn ftp [lindex $argv $i]
expect "\): "
set user [lindex $argv 2]
send "$user\n"
expect "Password:"
set passwd [lindex $argv 3]
send "$passwd\n"
expect "ftp> "
set cfn [lindex $conffn $i]
set tfn [lindex $tempfn $i]
send "put $tfn ike.cfg\n"
expect "ftp> "
if { $private_key != "" } {
set certfn [lindex $cert $i]
set keyfn [lindex $private_key $i]
send "put $certfn\n"
expect "ftp> "
send "put $keyfn\n"
expect "ftp> "
send "mkdir $trusted_dir\n"
expect "ftp> "
send "mkdir $intermediate_dir\n"
expect "ftp> "
send "lcd $trusted_dir\n"
expect "ftp> "
send "cd $trusted_dir\n"
expect "ftp> "
send "put ca.cer\n"
expect "ftp> "
}
send "bye\n"
# Set date so that certificate verification will work
spawn telnet [lindex $argv $i] 2323
expect -re $prompt
send "date 2001-10-31\n"
expect -re $prompt
send "exit\n"
}