File: secure-card

package info (click to toggle)
ppp 2.4.7-2%2B4.1%2Bdeb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 7,164 kB
  • sloc: ansic: 56,241; sh: 1,050; perl: 334; makefile: 114; exp: 82
file content (111 lines) | stat: -rwxr-xr-x 2,374 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/usr/bin/expect -f
#
# This  script was  written  by  Jim Isaacson  <jcisaac@crl.com>.  It is
# designed to work  as a script to use the  SecureCARD(tm) device.  This
# little device is mated with a central controller. The number displayed
# on this card changes every so often and  you need to enter  the number
# along with your user account name in order to gain access.  Since chat
# is based upon fixed strings this procedure will not work with chat.
#
# It is included by permission. An excellent reference for the expect
# program used by this script is in the book:
#
# "Exploring Expect"
# by Don Libes
# Published by O'Rielly and Associates
#

send_user "hello, starting ppp\n"

system "stty 19200 -echoe -echo raw < /dev/ttyS3 > /dev/ttyS3"

#
# These are the parameters for the program.
#
set user      Pxxxxxx
set password  xxxxxxx 
set modem     /dev/ttyS3
set dialup    <put phone number here>
set timeout   60

spawn -noecho -open [open $modem "r+"]

send "AT&F\r"
expect "OK"

send "ATe0v1x4&c1q0&d2&c1s2=128s0=0DT $dialup\r"
set timeout 15
set counter 0

set still_connecting 1

expect {
	-re ".*CONNECT.*\n" {
		set timeout 5
		set still_connecting 0
		continue -expect
	}
	-re ".*CONNECT.*\r" {
		set timeout 5
		set still_connecting 0
		continue -expect
	}
        -re ".*NO.*CARRIER" {
		send_user "Failed to Connect, exiting...\n"
		exit
        }
        -re ".*NO.*DIAL.*TONE" {
		send_user "Failed to Connect, exiting...\n"
		exit
        }
        -re ".*VOICE" {
		send_user "Failed to Connect, exiting...\n"
		exit
        }
	-re ".*sscode:.*\n" {
		continue -expect
	}
	-re ".*sscode:" {
                set timeout -1
		expect_user -re "(.*)\n"
		send "$expect_out(1,string)\r"
		set timeout 30
		continue -expect
	}
	-re ".*Next.*:" {
                set timeout -1
		expect_user -re "(.*)\n"
		send "$expect_out(1,string)\r"
		set timeout 30
		continue -expect
	}
	-re "Your.*" {
		send "\r"
		continue -expect
	}
	-re ".*in:" {
		send "$user\r"
		continue -expect
	}
	-re ".*word:" {
		send "$password\r"
	}

	timeout {
		if { $still_connecting > 0 } {
			continue -expect 
			}
		set timeout 15
		send "\r"
		incr counter
		if { $counter > 8 } {
			send_user "Cannot Connect\n"
			exit
		} else {
			continue -expect
		}
	}
}

overlay -0 $spawn_id -1 $spawn_id pppd /dev/ttyS3 19200 192.111.187.215: \
	crtscts modem defaultroute debug