[BACK]Return to OX-RFC-103.oxw CVS log [TXT][DIR] Up to [local] / OpenXM / doc / OpenXM-specs

File: [local] / OpenXM / doc / OpenXM-specs / OX-RFC-103.oxw (download)

Revision 1.6, Wed Feb 1 00:30:04 2006 UTC (18 years, 3 months ago) by takayama
Branch: MAIN
Changes since 1.5: +62 -2 lines

A sample implementation of a new structure of error packets.
See OX-RFC-103.oxw for details.
Example. [["reason_of_error","invalid argument"],
          ["where",["shell","length"]]

% $OpenXM: OpenXM/doc/OpenXM-specs/OX-RFC-103.oxw,v 1.6 2006/02/01 00:30:04 takayama Exp $
/*&C

OX-RFC: 103                                   OpenXM committers
                                           
                                              December 9, 2003, 
                                              September 19, 2004
                                              February 1, 2006

*/
//&en  Supplement to OX-RFC-100 
//&en     --- Broadcasting in process trees and engine authentication
//&en     --- Structure of error packets.
//&ja  OX-RFC-100 $B$X$NDI2C5!G=(B 
//&ja     ---  $B%W%m%;%9LZ9=B$$G$NF1Js$H%(%s%8%sG'>Z(B
//&ja     --- $B%(%i!<%Q%1%C%H$N9=B$(B.

/*&C 

Status of this memo
  This is an experimental specification. 
  Distribution of this memo is unlimited.

Copyright Notice
  OpenXM.org, 2003, 2004, 2006

*/


/*&ja

@@$BMWLs(B
 $B$3$N(B RFC $B$O(B OpenXM RFC 100 ($B$*$h$S(B 101) $B$N<BAu$K$h$jL@$i$+$K$J$C$?<o!9$NLdBjE@$r$b$H$K(B
 RFC 100 $B%W%m%H%3%k$X$N4v$D$+$NDI2C$rDs0F$9$k(B.

*/

//&ja @@$BCfCG$*$h$SJQ?t$NEAGE(B
//&en @@Propagation of an interruption and a value of a variable

//&ja @@@$BCfCG(B
//&en @@@Interruption

/*&ja

OX RFC 103 $B$G$O(B,
$B%(%s%8%s$O(B OX RFC 100 $B$KDj5A$5$l$?CfCG=hM}$r40N;$7$?$N$A(B,
$B$5$i$K<!$N=hM}$r$*$3$J$o$J$$$H$$$1$J$$(B. 
$B>e0U2<C#$NCfCG=hM}(B:
1. $B<+J,$N;R6!%W%m%;%9$r$9$Y$F%j%9%H$9$k(B
  ($B$?$H$($P(B asir $B$N>l9g$O(B ox_get_serverinfo())
2. $B;R6!%W%m%;%9$K=gHV$K(B OpenXM-RFC 100 $B$NCfCG%a%C%;!<%8$rAw$k(B.

*/

/*&en

Engines complient to OX RFC 103 must execute the following
procedures after finishing the interruption exception
defined by OX RFC 100. 

1. List all the child processes.
  (For example, use the function ox_get_serverinfo() in case of asir).
2. Send all the child processes the interruption message defined
   OX RFC 100.

*/

//&ja @@@$B%5!<%PLZ$NBg0hJQ?t(B
//&en @@@Global variable of the tree of the servers

//&ja OX RFC 103 $BBP1~$N%(%s%8%s$O%(%s%8%s4X?t(B 
/*&en
The engines complient to OX RFC 103 implement the engine function
*/
/*&C
   ox103_set_shared_variable(CMO string Name, CMO object value)
*/
/*&ja
$B$r<BAu$7$F$$$k(B.
$B$3$N4X?t$,8F$P$l$k$H(B, $B%(%s%8%s%9%?%C%/%^%7%s$NJQ?t(B Name $B$KCM(B value 
$B$,@_Dj$5$l(B, $B$5$i$K;R$I$b$N%W%m%;%9$9$Y$F$N%(%s%8%s4X?t(B
      ox103_set_shared_variable
$B$r$h$V(B.
*/
/*&en
When this function is called, 
the value value is assigned to
the variable Name of the engine stackmachine
and the engine calls the function 
       ox103_set_shared_variable
of all the child processes with the same arguments.
*/

/*&ja
$B$?$H$($P(B,
$B$3$N5!G=$O(B asir-contrib $B$K$*$$$FJQ?t(B  Xm_noX (ox server $BMQ$N(B debug
window $B$rI=<($9$k$+$7$J$$$+$N%U%i%0(B) $B$NCM$rF1Js$9$k$N$KMQ$$$F$$$k(B.
*/
/*&en
For example,
this protocol is used in the asir-contrib
to broad cast the value of the variable  Xm\_noX,
which is the flag of hiding the debug window of an ox server.
*/


//&ja @@$B?7$7$$(B CMO
//&en @@New CMO

//&ja @@$B%U%!%$%k$X$NFI$_=q$-(B
//&en @@File IO

//&ja @@$B%(%s%8%sG'>Z<jB3$-(B
//&en @@Engine authentication

/*&ja

$B%P%$%H%*!<%@!<$r7h$a$k$?$a$N>pJs8r49(B (OX-RFC 100 $B;2>H(B) $B$NA0$K(B
$B%(%s%8%sG'>Z<jB3$-$r$*$3$J$&(B.

$BG'>Z%W%m%H%3%k$K$O2<$N?^$N(B step 1, step 2, step 3 $B$G$"$k(B.


 client                                            server

     ---------------- step 1 ----------------------->
     ssh $B$K$h$k(B server $B$X$N(B login.
     controle server, engine server $B$H$N@\B3$r3NN)$9$k$?$a$N(B
     $B%]!<%HHV9f$*$h$S(B      -control= ... , -data=...
     $BG'>ZJ}K!$*$h$S(B        -authtype=NONE | <<oneTimePassword>>
     $BG'>Z%Q%9%o!<%I(B        -passControl=... , -passData=...
     $B$bAw?.$5$l$k(B.
     $BG'>Z%Q%9%o!<%I$N0E9f(B  -authEncoding=<<NONE>> | file | RSA
     $B2=J}K!$N;XDj(B.
     << >> $B$O(B src/kxx/ox $B$NI8=`CM(B


    <----------------  step 2 -------------------------->
       -reverse $B$N>l9g$O(B <--- $B$N8~$-$K(B TCP/IP $B@\B3$,3NN)$5$l$k(B.
       $B$=$&$G$J$$$H$-$O(B ---> $B$N8~$-$K(B TCP/IP $B@\B3$,3NN)$5$l$k(B.

    <----------------  step 3 -------------------------->
       -authtype=oneTimePassword $B$N;~(B.
       connect $B$7$?B&$,(B accept $B$7$?B&$X(B oneTimePassword $B$rAw$k(B.
       $BKvHx$N(B 0 $B$rAw?.$9$k(B.

    $B0J2<(B launcher $B$N;E;v$O=*N;$7$F(B, engine $B$H(B control $B$K@)8f$,0\$k(B.
    <----------------  step 4 -------------------------->
       engine $B$N(B byte order $B$r@_Dj(B.

    <---------------------------------------------------->
       OpenXM $B$N%Q%1%C%H8r49(B


*/

/*&ja

 authtype $B$O(B NONE $B$+(B oneTimePassword $B$G$"$k(B.
 oneTimePassword $B$O1Q?t;z$G9=@.$5$l$?Ns$G$"$k(B.
 oneTimePassword $B$O>o$K%/%i%$%"%s%H$G@8@.$5$l$F(B, $B$J$s$i$+$NJ}K!$G%5!<%P$K(B
 $BG[Aw$5$l$k(B.  connect $BB&$,(B oneTimePassword $B$rJ?J8$G(B accept $BB&$KAw?.$7$F(B
 $BG'>Z$,=*N;$9$k(B.

 authEncoding $B$G(B oneTimePassword $B$NG[AwJ}K!$r5,Dj$9$k(B.
 authEncoding $B$O(B NONE $B$+(B file $B$+(B RSA $B$G$"$k(B.

 authEncoding=NONE $B$,A*Br$5$l$?>l9g(B oneTimePassword $B$NG[Aw$KFCJL$JJ}K!$rMxMQ(B
 $B$7$J$$(B.
 NONE $B$rA*Br$7$?>l9g(B, $B8=:_$N(B ox launcher $B$N<BAu$G$O$?$H$($P(B -passControl
 $B$N$"$H$K(B oneTimePassword $B$,@8$N7A$G8=$l$k$3$H$H$J$k(B.
 Unix $B$N>l9g$3$l$O(B command $B$N0z?t$G$"$j(B client $B$H(B server $B$NDL?.O)$,(B
 ssh $BEy$G0E9f2=$5$l$F$$$?$H$9$k$H%M%C%H%o!<%/%f!<%6$OGA$-$_$k$3$H$O$G$-$J$$$,(B,
 $BF10l5!$N%f!<%6$O8+$k$3$H$,2DG=$G$"$k(B.
 $B$7$?$,$C$F(B NONE $B$NA*Br$,2DG=$G$"$k$N$O(B client $B$*$h$S(B server $B$,==J,?.Mj(B
 $B$G$-$k$H$-$K8B$k(B.

*/

/*&ja

@@@authEncoding=file $B$N>l9g(B.

 authEncoding=file $B$rA*Br$7$?>l9g$O(B oneTimePassword $B$OJL$KMQ0U$5$l$?0BA4$J(B
 $BDL?.7PO)(B($B$?$H$($P(B scp) $B$rMQ$$$F(B file $B$H$7$FG[Aw$5$l$k(B.
 oneTimePassword $B$,3JG<$5$l$?(B file $BL>$r(B -passControl, -passData $B0z?t$GEO$9(B.
 file $BL>$O(B $HOME/.openxm/tmp.otp/ $B$+$i$NAjBP%Q%9L>$G$"$k(B.
 $B%Q%9$N6h@Z$jJ8;z$O(B windows $B$G$b(B / $B$rMQ$$$k(B.
 $B%/%i%$%"%s%H$O<!$N5,B'$G%U%!%$%kL>$r@8@.$9$k(B. 
 $B%U%!%$%kL>$K$O1Q?t;z$H(B . -  _ $B$NMxMQ$7$+$f$k$5$l$J$$(B. $B%U%!%$%kL>$O<!$N7A<0(B
 $B$G$"$k(B.

    clientname-servernameUidPidSerial-time.pass

 $B$3$3$G(B time $B$O(B time(2) $B$NLa$jCM$r?t;zJ8;zNs$KJQ49$7$?7A<0$G$"$k(B.
 oneTimePassword $B$N@8@.;~9o$r@Z$j>e$2$F(B 10 $BJ,Kh$N@5;~$KJQ49$7$?$b$N$H$9$k(B.
 servernameUidPidSerial $B$O(B client $B$,(B oneTimePassword $B$r@8@.$7$F$+$i(B
 10 $BJ,4V(B, $B%/%i%$%"%s%H%7%9%F%`$G9b$$3NN($G0l0UE*$G$"$k$3$H$,J]>Z$5$l$F$$$k(B
 $BJ8;zNs$J$i$J$s$G$b$h$$(B.

 $BNc(B
      client                                            server

     oneTimePassword 1342546 $B$r3JG<$7$?%U%!%$%k(B
     yama.openxm.org-00001-2312123123.pass   $B$r@8@.(B

     oneTimePassword 89123888 $B$r3JG<$7$?%U%!%$%k(B
     yama.openxm.org-00002-2312123124.pass   $B$r@8@.(B
     ----------------------------------------------------->
        $B>e$NFs$D$N%U%!%$%k$r0BA4$JDL?.O)$rMQ$$$FG[Aw$9$k(B.
       ($B$?$H$($P(B scp )

     ----------------------------------------------------->
          ox -authtype oneTimePassword
             -authEncoding file
             -passControl yama.openxm.org-00001-2312123123.pass
             -passData yama.openxm.org-00002-2312123124.pass
 

    <----------------  step 2 -------------------------->
       -reverse $B$N>l9g$O(B <--- $B$N8~$-$K(B TCP/IP $B@\B3$,3NN)$5$l$k(B.
       $B$=$&$G$J$$$H$-$O(B ---> $B$N8~$-$K(B TCP/IP $B@\B3$,3NN)$5$l$k(B.

    <----------------  step 3 -------------------------->
       connect $B$7$?B&$,(B accept $B$7$?B&$X(B oneTimePassword $B$rJ?J8$G$*$/$k(B.
     


     oneTimePassword 1342546 $B$r3JG<$7$?%U%!%$%k(B
     yama.openxm.org-00001-2312123123.pass   $B$r(B server $B$K@8@.$9$k$?$a$K(B
    $B$?$H$($P(B sendStringAsAfile(char *servername, char *serveruser,
                  char *filename, char *otp);
    $B$N$h$&$J(B API $B$rMQ0U$7$F$*$/$H$h$$$G$"$m$&(B.

*/

/*&ja

@@@authEncoding=RSA $B$N>l9g(B.

RSA $B$NHkL)80(B, $B8x3+80$r3JG<$9$k%U%!%$%kL>$O0J2<$N$H$*$j(B.
$HOME/.openxm/rsa/ox103-rsa0-identity       ($BHkL)80$r$J$i$Y$?$b$N(B)
$HOME/.openxm/rsa/ox103-rsa0-identity.pub   ($B8x3+80(B: $B$3$N7A<0$G$OMxMQ$5$l$:(B) 
$HOME/.openxm/rsa/ox103-rsa0-authorizedkeys ($B8x3+80$r$J$i$Y$?$b$N(B)

$B80%U%!%$%k$O<!$N%G!<%?$r6uGr$G6h@Z$C$FJB$Y$?$b$N$G$"$k(B.
  user$B<1JL;R(B    $B80(B($B#1#0?J?t;zNs(B)    RSA$B%U%)!<%^%C%H<1JL;R(B(optional)
$B%3%a%s%H9T$O(B # $B$G;O$^$k(B.
$B3F%G!<%?$N6h@Z$j$O(B 0xd $B$^$?$O(B 0xa $B$^$?$O(B $BN>J}$G$"$k(B.

$B%U%)!<%^%C%H<1JL;R$,(B 0 $B$N>l9g$O8x3+800E9f2=(B
x --> x^65537 mod n $B$rMQ$$(B, 128 byte (1024 bit) $B$E$D%G!<%?$r6h@Z$C$F=hM}$9$k(B.
$BHkL)800E9f2=$O(B  x --> x^d mod n $B$rMQ$$$k(B.
$B%U%)!<%^%C%H<1JL;R(B 0 $B$O<B83MQ$N0UL#(B.
$BHkL)80$O(B n,d ,  $B8x3+80$O(B n $B$N7A<0$G(B n $B$H(B d $B$O(B , $B$G6h@Z$k(B.
$BJ8;zNs$rAw?.$9$k$H$-$O(B 0 $B$,J8;zNs=*$j$N%^!<%/$H$J$j(B, 
0 $B$G$N$3$jItJ,$rKd$a$k(B. $B%P%$%HNs$rAw$k$H$-$O%G!<%?$ND9$5$OJLAw$9$k(B.

Todo: $B80$N3JG<J}K!(B, $B%G!<%?6h@Z$j$NJ}K!$J$I2DG=$J8B$j(B 
RFC3447 $B$K=`5r$9$k$h$&$KJQ99$;$h(B.  $B=`5r$,40N;$7$?$i(B -rsa0- $B$r(B 
-rsa- $B$HJQ99$9$k(B.

$BNc(B:

client  $BB&(B

  ox103-rsa0-identity
     # client $BB&$,;H$&HkL)80(B
     takayama@client.math.kobe-u.ac.jp  1234523....


  ox103-rsa0-authorizedkeys
     @ server $BB&$,;H$&HkL)80$KBP1~$9$k8x3+80(B
     takayama@server.math.kobe-u.ac.jp  8989898....

server $BB&(B
  ox103-rsa0-identity
     # server $BB&$,;H$&HkL)80(B
     takayama@server.math.kobe-u.ac.jp  8781234....

  ox103-rsa0-authorizedkeys
     @ client $BB&$,;H$&HkL)80$KBP1~$9$k8x3+80(B
     takayama@client.math.kobe-u.ac.jp  89891....
  
authEncoding=RSA $B$rMxMQ$9$k>l9g$O$3$l$i$N80$rE,@Z$K(B .openxm/rsa $B$N2<$K(B
$BCV$+$J$$$H$$$1$J$$(B.  .openxm/rsa $B$N(B permission $B$O(B rwx------ $B$G$"$k$3$H(B.

$BCm0U(B: $BHkL)80$r@8$G3JG<$7$J$$>l9g%U%!%$%kL>$r(B ox103-rsa2-* $BEy$HJQ99$9$k(B
$BM=Dj(B.  RSA encoding $BJ}K!$O?t;zL5$7(B, $B?t;z$NBg$-$$$b$N$+$i80%U%!%$%k$r(B
$B=gHV$K%5!<%A$7$F(B RSA $B$N%U%)!<%^%C%H$r7hDj$9$k(B.

authEncoding=RSA $B$N>l9g(B -passData $B$*$h$S(B -passControl $B$O(B
oneTimePassword ($BJ8;zNs(B) $B$r(B bit data $B$H$_$F(B rsa $B$G0E9f2=$7$?$b$N$r(B
URL encoding $B$7$?7A$GAw$k(B.

oneTimePassword $B$N<~4|$O==J,Bg$-$/$J$$$H$$$1$J$$(B.
$B0lG/$O(B 31536000 $BIC$G$"$k(B. 100 $BG/$O(B 3153600000 $BIC(B (10 $B7e(B) $B$G$"$k(B.
oneTimePassword $B$O?t;z$N>l9g(B 10 $B7e0J>e$G$"$k$3$H$,I,?\$G$"$j(B,
20 $B7e0J>e$G$"$k$3$H$,K>$^$7$$(B.

*/

/*&ja

@@@Step 1 $B$,<:GT$7$?>l9g$K$D$$$F(B.

Step 1  $B$N<:GT$N860x$K$O<!$N$h$&$J2DG=@-$,$"$k(B.
1. ssh $B$K$h$k(B remote login $B$N<:GT(B.
2. Remote server $B$N%Q%9$K(B ox100start/ox $BEy$N%m!<%s%A%c$,B8:_$7$J$$(B.
3. Remote server $B$K(B xterm $B$,B8:_$7$J$$$+(B, $BB8:_$7$F$b(B X $B%5!<%P$N@\B3$K<:GT$9$k(B.
4. Remote server $B$K%(%s%8%s$,B8:_$7$J$$(B.
5. Remote server $B$H(B client $B$N(B TCP/IP $B@\B3$,$J$s$i$+$N860x$G<:GT$9$k(B.

$B<:GT$N>l9g$KBP1~$9$k$?$a(B,
TCP/IP $B@\B3$G$N(B Accept $BB&$O%?%$%`%"%&%HF0:n$r$9$k$3$H(B.


$B<:GT$N860x$rCN$i$;$k%W%m%H%3%k$O$-$a$i$l$F$$$J$$$,(B, 
$B<BAu>e$NBP:v$H$7$F0J2<$N$b$N$,$"$k(B.
1. $B%(%i!<%a%C%;!<%8$r=PNO$7$F(B sleep(10); $B$9$k(B.
2. $B%(%i!<%a%C%;!<%8$r%U%!%$%kEy$K=PNO$9$k(B.

$B$J$*(B OX-RFC-101 $B$G$O(B Step 1 $B$,J,N%$7$F$$$k$?$a(B, $B%(%i!<$NDLCN$,$h$j4JC1$G$"$k(B.

*/


//&ja @@$B9W8%<T$*$h$S;n83<BAu(B
//&en @@Contributors and sample implementations

/*&ja
$BCfCG$*$h$SJQ?t$NEAGE$K$D$$$F$O9b;3$,@_7W(B, asir $B$*$h$S(B kan/sm1 $B$X$N(B
$B<BAu(B, $BI>2A$r$*$3$J$C$?(B.
(OpenXM/src/asir-contrib/packages/src/oxrfc103.rr,
 OpenXM/src/kan96xx/Doc/oxrfc103.sm1
 $B$r$_$h(B).

$B%(%s%8%sG'>Z<jB3$-$N(B file encoding $BK!$OLnO$$H9b;3$N5DO@$+$i@8$^$l$?(B.
$B%(%s%8%sG'>Z<jB3$-$O(B   ox100start, ox $B$KItJ,<BAu$5$l$F$$$k(B.
  OpenXM/src/kxx/
$B$N%U%!%$%k72$*$h$S(B
  OpenXM/src/kan96xx/Doc/ox.sm1
$B$r$_$h(B.
$BNc(B:  sm1$B$r5/F08e(B,   (ox.sm1) run  asirconnectr
*/

/*&ja
$B9TNs(B, $B%Y%/%H%k$N(B CMO $B$O(B NTL $B$N%5!<%P2=$r%F%9%H%1!<%9$H$7$F(B
$B4d:,$,@_7W(B, $B<BAu(B, $BI>2A$r9T$C$?(B.
RSA $B$N%-!<@8@.(B, DES $BEy$N(B OpenXM crypt $B%i%$%V%i%j$N<BAu$O4d:,$,$*$3$J$C$F$$$k(B.
OpenXM/src/ox_ntl/crypt $B$r$_$h(B.
*/

//&ja @@$B%(%i!<%Q%1%C%H$N9=B$(B.
//&en @@Structure of error packets

/*&en
  English translation has not been done.
*/

/*&ja
Error packet $B$O(B CMO_ARRAY $B$r(B body $BItJ,$H$9$k(B CMO $B$G$"$k$,(B,
$B$3$3$G$O$=$N(B body $BItJ,$N(B array $B$N9=B$$rDj5A$9$k(B.
0 $BHVL\$N@.J,$O(B CMO_INT32 $B$G$"$k(B. $B0UL#$O%5!<%P0MB8(B.
1 $BHVL\$N@.J,$O(B CMO_INT32 $B$G$"$k(B.  $B0UL#$O%5!<%P0MB8(B.
2 $BHVL\$N@.J,$O(B CMO_STRING $B$G$"$j%(%i!<%a%C%;!<%8$r3JG<$9$k(B.
3 $BHVL\$N@.J,(B(optional) $B$,(B ox-rfc-103 $B$G?7$7$/Dj5A$9$kItJ,$G$"$k(B.
3 $BHVL\$N@.J,$N%G!<%?7?$O(B CMO_ARRAY $B$G$"$k(B. 
Array $B$N3FMWAG$O$^$?D9$5(B 2 $B$N(B CMO_ARRAY $B$G$"$j(B,
$BBh0l@.J,$,(B CMO_STRING, $BBh(B2$B@.J,$O(B CMO $B%*%V%8%'%/%H$G$"$k(B.
$BBh0l@.J,$O%-!<%o!<%I$,3JG<$5$l(B, $BBh(B2$B@.J,$O$=$NCM$G$"$k(B.
$B%-!<%o!<%I$H$7$F8=:_<!$N$b$N$r(B ox-rfc-103 $B$H$7$FDs0F$7$F$$$k(B.
$B$J$*%5!<%P$OA4$F$N%-!<%o!<%I$NCM$rLa$9I,MW$O$J$$(B.
  reason_of_error,  (CMO_STRING)$B<B9T;~%(%i!<$NM}M3(B
  where,   (CMO_ARRAY) $B<B9T;~%(%i!<$N>l=j$r$"$i$o$9(B CMO_STRING $B$N(Barray.
  lines,    (CMO_ARRAY) $B<B9T;~%(%i!<$r5/$3$7$?9THV9f(B(CMO_INT32) $B$N(Barray.
                        -1 $B$OITL@$rI=$9(B.
  locals,  (CMO_ARRAY) $B<B9T;~%(%i!<$N;~$N6I=jJQ?t$NL>A0$HCM$N(B 
                       pair($BD9$5(B2$B$N(Barray) $B$N(B array
  parse_error_at,      (CMO_INT32) parse $B%(%i!<$r$*$3$7$?9THV9f(B.
  reason_of_parse_error,  (CMO_STRING) parse $B%(%i!<$NM}M3(B.
*/

/*&C

Example 1.
  [["parse_error_at", 3 ],
   ["reason_of_parse_error","parse error after (x-)"], 
  ]

Example 2.
  [["reason_of_error", "invalid argument"],
   ["where",["shell","length"]],
   ["lines", [15,-1]]
  ]

*/

/*&ja
$BNc(B2$B$NJdB-(B.
   ["where",["shell","length"]],
   ["lines", [15,-1]]
$B$N(B lines $B$N0UL#$O2r@b$rMW$9$k$G$"$m$&(B.
[15,-1] $B$N(B 15 $B$O(B executeString $B$KM?$($i$l$?J8;zNs$N(B 15 $B9TL\$K=P8=$7$F$$$k(B
$B4X?t(B shell $B$G%(%i!<$,5/$3$C$?$3$H$r0UL#$7$F$$$k(B.
$B4X?t(B shell $B$NCf$+$i8F$P$l$F$$$k(B length $B4X?t$G%(%i!<$,5/$-$F$$$k$N$G$"$k$,(B,
-1 $B$O$=$N9T(B(shell $B4X?t$NDj5ACf$G$NAjBPE*$J9THV9f(B)$B$OITL@$G$"$k$H$$$&$3$H$r(B
$B0UL#$7$F$$$k(B.
*/

//&ja @@$B;29MJ88%(B
//&en @@Bibliography

/*&C

[OpenXM-RFC-100]  Design and Implementation of OpenXM Client-Server Model 
                 and Common Mathematical Object Format.  M.Noro, N.Takayama 

[OpenXM-RFC-101] Protocol to Start Engines.  K.Ohara


[RFC3447]  Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography
     Specifications Version 2.1. J. Jonsson, B. Kaliski. February 2003.
     (Format: TXT=143173 bytes) (Obsoletes RFC2437) (Status:
     INFORMATIONAL)

*/