#!/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 . All rights reserved. # Created by Kenneth Jonsson ############################################################################## 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" }