=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/ox.sm1,v retrieving revision 1.40 retrieving revision 1.44 diff -u -p -r1.40 -r1.44 --- OpenXM/src/kan96xx/Doc/ox.sm1 2004/08/22 02:00:24 1.40 +++ OpenXM/src/kan96xx/Doc/ox.sm1 2004/09/17 11:05:56 1.44 @@ -1,4 +1,4 @@ -%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.39 2004/03/08 08:24:42 takayama Exp $ +%%%%%%%%%%% $OpenXM: OpenXM/src/kan96xx/Doc/ox.sm1,v 1.43 2004/09/17 07:27:28 takayama Exp $ /ox.sm1.myname (ox-new.sm1) def @@ -360,7 +360,7 @@ ox.verbose { oxhelp } { } ifelse /arg1 set [/in-launch_nox /pass /peer /data /control /name /machine /your-peer /comm /remoteOpenXMbin /remoteServer /myhost - /argNumber /aaa + /argNumber /aaa /myssh ] pushVariables [ /aaa arg1 def @@ -370,36 +370,38 @@ ox.verbose { oxhelp } { } ifelse aaa 1 get ox_launch_localhost /your-peer set /LLL.end goto } { - /remoteOpenXMbin aaa 1 get def - /remoteServer aaa 2 get def - /name aaa 3 get def - /myhost aaa 4 get def + /remoteServer aaa 1 get def + /name aaa 2 get def + /myhost aaa 3 get def } ifelse - /pass [(oxGenPass)] extension def + /myssh [(which) (ssh)] oxshell def + myssh tag 0 eq { + (ssh is not found.) error + } { } ifelse + /pass ox_encrypt_104_genPass def /peer [(oxGetPort) myhost] extension def /data peer 1 get toString def /control peer 3 get toString def peer message - [(ssh -f ) machine ( -l ) name ( ") - - @@@.ox_launch_nox { - } { - remoteOpenXMbin(/oxlog ) - ( /usr/X11R6/bin/xterm -icon -e ) - } ifelse - - ( ) remoteOpenXMbin (/ox ) - ( -reverse -ox ) remoteServer - ( -host ) myhost - ( -data ) data ( -control ) control ( -pass ) pass - oxpath.null - ( ") + peer 0 get -1 eq { + (Error in oxGetPort) error + } { } ifelse + [myssh ( -f ) machine ( -l ) name ( ) + [ + (ox100start ) % it must be on a path of the remote host + @@@.quiet { ( -quiet ) } { } ifelse + Xm_noX { ( -nox ) } { } ifelse + ( -oxserver ) remoteServer ( -e ) + ( -reverse ) + ( -data ) data ( -control ) control pass [1 2] get + ] cat ] cat /comm set - (Executing the command : ) messagen comm message message - comm system - (sleep 5) system-csh - [(oxCreateClient2) peer 1 pass] extension /your-peer set + (Executing the command : ) messagen comm message + comm execve 0 lt { + (Fork exec failed) error + } { } ifelse + [(oxCreateClient2) peer 1 pass 0 get] extension /your-peer set /LLL.end /arg1 your-peer def ] pop @@ -408,22 +410,22 @@ ox.verbose { oxhelp } { } ifelse } def [(ox_launch) -[( [remote remote-OpenXM-bin remote-ox-server remote-login-name myhostname] ) +[( [remote remote-ox-server remote-login-name myhostname] ) ( ox_launch client ) $or $ $ [(localhost) ox-server-name] ox_launch client$ (Example 1: ) - $ [(tau.math.kobe-u.ac.jp) (/home/taka/OpenXM/bin) $ - $ (/home/taka/OpenXM/src/ox_math/ox_math) (taka) (dc4.math.kobe-u.ac.jp) $ + $ [(tau.math.kobe-u.ac.jp) $ + $ (bin/ox_math) (taka) (dc4.math.kobe-u.ac.jp) $ $ ] ox_launch /@@@.oxmath set $ ]] putUsages [(ox_launch_nox) -[( [remote remote-OpenXM-bin remote-ox-server remote-login-name myhostname] ) +[( [remote remote-ox-server remote-login-name myhostname] ) ( ox_launch_nox client ) (Example 1: ) - $ [(tau.math.kobe-u.ac.jp) (/home/taka/OpenXM/bin) $ - $ (/home/taka/OpenXM/src/ox_math/ox_math) (taka) (dc4.math.kobe-u.ac.jp) $ + $ [(tau.math.kobe-u.ac.jp) $ + $ (bin/ox_math) (taka) (dc4.math.kobe-u.ac.jp) $ $ ] ox_launch_nox /@@@.oxmath set $ ]] putUsages @@ -433,16 +435,20 @@ ox.verbose { oxhelp } { } ifelse /my-peer] pushVariables [ /oxserver arg1 def - /pass [(oxGenPass)] extension def + /pass ox_encrypt_104_genPass def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def peer message - [oxpath.oxlog.xterm oxpath.ox ( -reverse -ox ) oxserver - ( -data ) data ( -control ) control ( -pass ) pass - oxpath.null - ( &)] cat system-csh - [(oxCreateClient2) peer 0 pass] extension /my-peer set + [ + oxstart100 + @@@.quiet { ( -quiet ) } { } ifelse + Xm_noX { ( -nox ) } { } ifelse + ( -oxserver ) oxserver ( -e ) + ( -reverse ) + ( -data ) data ( -control ) control pass [1 2] get + ] cat execve + [(oxCreateClient2) peer 0 pass 0 get] extension /my-peer set %% 0 means connect from only localhost. /arg1 my-peer def ] pop @@ -502,7 +508,7 @@ ox.verbose { oxhelp } { } ifelse /sm1StartControl101 { [/in-sm1connectr /pass /peer /data /control ] pushVariables [ - /pass [(oxGenPass)] extension def + /pass ox_encrypt_104_genPass def /peer [(oxGetPort1) (localhost)] extension def /data peer 1 get toString def peer message @@ -662,7 +668,7 @@ ox.verbose { oxhelp } { } ifelse [(getServerEnv) (bin/ox_sm1)] extension tag 0 eq { (Server bin/ox_sm1 is not found.) error }{ } ifelse - /pass [(oxGenPass)] extension def + /pass ox_encrypt_104_genPass def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def @@ -672,9 +678,9 @@ ox.verbose { oxhelp } { } ifelse @@@.quiet { ( -quiet ) } { } ifelse Xm_noX { ( -nox ) } { } ifelse ( -oxserver bin/ox_sm1 -e ) ( -reverse ) - ( -data ) data ( -control ) control ( -pass ) pass + ( -data ) data ( -control ) control pass [1 2] get ( )] cat execve - [(oxCreateClient2) peer 0 pass] extension /oxsm1.ccc set + [(oxCreateClient2) peer 0 pass 0 get] extension /oxsm1.ccc set %% 0 means connect from only localhost. (The server is binded to the variable oxsm1.ccc) message-quiet /ox.ccc oxsm1.ccc def @@ -703,7 +709,7 @@ ox.verbose { oxhelp } { } ifelse /machine arg1 0 get def /name arg1 1 get def - /pass [(oxGenPass)] extension def + /pass ox_encrypt_104_genPass def /peer [(oxGetPort) myhostname-ssh] extension def /data peer 1 get toString def /control peer 3 get toString def @@ -711,14 +717,14 @@ ox.verbose { oxhelp } { } ifelse [(ssh -f ) machine ( -l ) name ( ") oxpath.oxlog.xterm-ssh oxpath.ox-ssh ( -reverse -ox ) oxpath.oxsm1-ssh ( -host ) myhostname-ssh - ( -data ) data ( -control ) control ( -pass ) pass + ( -data ) data ( -control ) control pass [1 2] get oxpath.null ( ") ] cat /comm set (Executing the command : ) messagen comm message message comm system (sleep 5) system-csh - [(oxCreateClient2) peer 1 pass] extension /your-peer set + [(oxCreateClient2) peer 1 pass 0 get] extension /your-peer set /arg1 your-peer def ] pop popVariables @@ -757,7 +763,7 @@ ox.verbose { oxhelp } { } ifelse [(getServerEnv) (bin/ox_ntl)] extension tag 0 eq { (Server bin/ox_ntl is not found.) error }{ } ifelse - /pass [(oxGenPass)] extension def + /pass ox_encrypt_104_genPass def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def @@ -766,9 +772,9 @@ ox.verbose { oxhelp } { } ifelse oxstart100 Xm_noX { ( -nox ) } { } ifelse ( -oxserver bin/ox_ntl -e ) ( -reverse ) - ( -data ) data ( -control ) control ( -pass ) pass + ( -data ) data ( -control ) control pass [1 2] get ( )] cat execve - [(oxCreateClient2) peer 0 pass] extension /oxntl.ccc set + [(oxCreateClient2) peer 0 pass 0 get] extension /oxntl.ccc set %% 0 means connect from only localhost. (The server is binded to the variable oxntl.ccc) message-quiet % oxntl.ccc.init @@ -1053,7 +1059,7 @@ oxasir.verbose { f 0 get isPolynomial { /r f 0 get (ring) dc def - /vvv vvv { r ,, } map def + /vvv vvv { r __ } map def } { [vvv from_records ring_of_polynomials 0] define_ring @@ -1095,6 +1101,7 @@ oxasir.verbose { arg1 } def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /polygcd { /arg1 set [/pp /f /g /comm /vv] pushVariables @@ -1164,6 +1171,67 @@ oxasir.verbose { ] ] putUsages +/asir_red { + /arg1 set + [/pp /f /g /rr /vv] pushVariables + [(CurrentRingp)] pushEnv + [ + /pp arg1 def + oxasir.ccc [ ] eq { + (Starting ox_asir server.) message + ox_asirConnectMethod + } { } ifelse + { + pp isRational { + /f pp numerator def + /g pp denominator def + [[f g]] reduceByAsir /rr set + }{ } ifelse + exit + + pp isArray { + /vv pp 2 get def + /f pp 0 get 0 get def + /g pp 0 get 1 get def + [[f toString g toString] vv] reduceByAsir /rr set + } { } ifelse + exit + + (asir_red: not implemented) error exit + } loop + + rr 1 get isPolynomial { + rr 0 get rr 1 get div /rr set + }{ + rr 1 get (1).. eq { + rr 0 get /rr set + }{ + rr 0 get rr 1 get div /rr set + } ifelse + } ifelse + + /arg1 rr def + ] pop + popEnv + popVariables + arg1 +} def +[(asir_red) + [(Calling the function red of asir. It simplifies a rational function.) + (cf. cancel) + (Example: (x^2). (x). div asir_red ) +]] putUsages + +/asir_fctr { fctr } def +[(asir_fctr) + [(Calling the factorizer of asir.) +]] putUsages + +/asir_primadec { primadec } def +[(asir_primadec) + [(Calling the primadec of asir.) +]] putUsages + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [(chattr) 0 /findIntegralRoots] extension pop /findIntegralRoots { @@ -1644,7 +1712,7 @@ oxasir.verbose { (Server bin/ox_sm1 is not found.) error }{ } ifelse - /pass [(oxGenPass)] extension def + /pass ox_encrypt_104_genPass def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def @@ -1654,9 +1722,9 @@ oxasir.verbose { @@@.quiet { ( -quiet ) } { } ifelse Xm_noX { ( -nox ) } { } ifelse ( -oxserver bin/ox_asir -e ) ( -reverse ) - ( -data ) data ( -control ) control ( -pass ) pass + ( -data ) data ( -control ) control pass [1 2] get ( )] cat execve - [(oxCreateClient2) peer 0 pass] extension /oxasir.ccc set + [(oxCreateClient2) peer 0 pass 0 get] extension /oxasir.ccc set %% 0 means connect from only localhost. oxasir.ccc asir.init /arg1 oxasir.ccc def @@ -1691,7 +1759,7 @@ oxasir.verbose { (Server bin/ox_sm1 is not found.) error }{ } ifelse - /pass [(oxGenPass)] extension def + /pass ox_encrypt_104_genPass def /peer [(oxGetPort) (localhost)] extension def /data peer 1 get toString def /control peer 3 get toString def @@ -1700,9 +1768,9 @@ oxasir.verbose { oxstart100 Xm_noX { ( -nox ) } { } ifelse ( -oxserver bin/ox_k0 -e ) ( -reverse ) - ( -data ) data ( -control ) control ( -pass ) pass + ( -data ) data ( -control ) control pass [1 2] get ( )] cat execve - [(oxCreateClient2) peer 0 pass] extension /oxk0.ccc set + [(oxCreateClient2) peer 0 pass 0 get] extension /oxk0.ccc set %% 0 means connect from only localhost. (The server is binded to the variable oxk0.ccc) message-quiet ox.k0.init @@ -1715,5 +1783,53 @@ oxasir.verbose { /ox_server_mode { /:: { } def % do nothing +} def +%% Encryption methods +/ox_encrypt_104.NONE 0 def +/ox_encrypt_104.FILE 1 def +/ox_encrypt_104.RSA 2 def +/@@@.ox_encrypt_104.method ox_encrypt_104.NONE def +/ox_encrypt_104.1 { + /arg1 set + [/sss /rrr] pushVariables + [ + /sss arg1 def + sss toString /sss set + { + @@@.ox_encrypt_104.method ox_encrypt_104.NONE eq { + /rrr [sss] def + exit + } { } ifelse + (The encryption method has not yet been implemented.) error + } loop + /arg1 rrr def + ] pop + popVariables + arg1 +} def + +%< +% Usages: ox_encrypt_104_genPass +% [[ c-pass d-pass ] [c-pass-encrypted d-pass-encrypted ox-command-str ] ...] +%> +/ox_encrypt_104_genPass { + [/sss /p1 /p2 /e1 /e2 /rrr] pushVariables + [ + /r1 [(oxGenPass)] extension def + /r2 [(oxGenPass)] extension def + r1 ox_encrypt_104.1 /e1 set + r2 ox_encrypt_104.1 /e2 set + { + @@@.ox_encrypt_104.method ox_encrypt_104.NONE eq { + [( -passControl ) e1 0 get ( -passData ) e2 0 get ( )] cat /sss set + [[r1 r2] [e1 0 get , e2 0 get , sss]] /rrr set + exit + } { } ifelse + (The encryption method has not been implemented.) error + } loop + rrr /arg1 set + ] pop + popVariables + arg1 } def \ No newline at end of file