Annotation of OpenXM/rc/fetch_asir_key.sm1, Revision 1.3
1.3 ! takayama 1: % $OpenXM: OpenXM/rc/fetch_asir_key.sm1,v 1.2 2000/03/10 01:21:17 takayama Exp $
1.2 takayama 2: %% Usages:
3: % ../bin/sm1 -f fetch_asir_key.sm1
4: % Set the asir key automatically.
5: %
6: % ../bin/sm1 -f fetch_asir_key.sm1 -s "/func (mail) def"
7: % ../bin/sm1 -f fetch_asir_key.sm1 -s "/func (set) def"
8: % Step 1. Only send a mail to get a key.
9: % Step 2. Wait for a reply and set the keys to asir_key
1.1 takayama 10:
11: /fetchSeed {
12: [/in-fetchSeed /size] pushVariables
13: [
14: (/bin/rm -rf work) system
15: (mkdir work) system
16: (echo "quit;" >work/asir_key.in) system
17: (../bin/asir <work/asir_key.in 2> work/asir_key.out0 ) system
18: (grep ASIR work/asir_key.out0 >work/asir_key.out) system
19: [(stat) (work/asir_key.out)] extension 1 get 0 get /size set
20: /arg1 size def
21: ] pop
22: popVariables
23: arg1
24: } def
25:
26: /sendMail {
27: /MAILADDRESS ( risa@sec.flab.fujitsu.co.jp )def
28: [(Sending a mail to ) MAILADDRESS ] cat message
29: [(mail ) MAILADDRESS ( < ) (work/asir_key.out)] cat system
30: } def
31:
32: /waitReply {
1.3 ! takayama 33: % Note that when you "su", $USER is not set to root, but set to your
! 34: % original login name. The "From" field of your mail also seems to use
! 35: % $USER
1.1 takayama 36: /MAIL [(/var/mail/) [(getenv) (USER)] extension ] cat def
1.2 takayama 37: (/bin/rm -rf work/reply) system
1.1 takayama 38: {
39: [(Waiting a reply in ) MAIL] cat message
1.2 takayama 40: [( Type in ctrl-Z and kill ) 37 (string) dc 37 (string) dc
41: ( to stop this script.) ] cat message
1.1 takayama 42: [(grep risa@sec.flab.fujitsu.co.jp ) MAIL (>work/reply)] cat system
43: [(stat) (work/reply)] extension 1 get 0 get 0 eq not {
44: exit
45: }{ } ifelse
1.2 takayama 46: (sleep 5) system
1.1 takayama 47: } loop
48: (Got a key) message
49: } def
50:
51: /setAsirKey {
52: /MAIL [(/var/mail/) [(getenv) (USER)] extension ] cat def
53: (/bin/rm -rf work/key) system
54: [ (egrep '[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z] [0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z] [0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]' ) MAIL ( >work/key) ]
55: cat system
56: cat work/key >>../lib/asir/asir_key
57: } def
58:
1.2 takayama 59: /fetch_check {
1.1 takayama 60: [(This script sets OpenXM/lib/asir/asir_key for your machine,)
61: (if your system can receive a mail at /var/mail on this machine.)
62: ] { message } map
63: ( ) message
64: ( ) message
65: (Cheching if you have a correct asir_key.) message
66: ( ) message
67: ( ) message
68: fetchSeed 0 eq {
69: ( ) message
70: ( ) message
71: (You already have a correct asir_key.) message
72: ( ) message
73: quit
1.2 takayama 74: }{ } ifelse
75: } def
76:
77: /fetch {
78: fetch_check
1.1 takayama 79: sendMail
80: waitReply
81: setAsirKey
82: } def
83:
1.2 takayama 84: /func load tag 0 eq {
85: fetch
86: quit
87: } { } ifelse
88:
89: func (mail) eq {
90: ( ) message
91: (Send a mail only) message
92: fetch_check
93: sendMail
94: quit
95: } { } ifelse
96:
97: func (set) eq {
98: ( ) message
99: (Wait a reply and set the keys) message
100: waitReply
101: setAsirKey
102: quit
103: } { } ifelse
1.1 takayama 104:
1.2 takayama 105: quit
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>