Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > c82fbb12a1c61d087a9308adf47a46ab > files > 467

ocaml-ocamlnet-devel-2.2.9-10.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Rpc_auth_dh.html">
<link rel="next" href="Rpc_time.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of class types" rel=Appendix href="index_class_types.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
<link title="Equeue" rel="Chapter" href="Equeue.html">
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
<link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html">
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
<link title="Http_client" rel="Chapter" href="Http_client.html">
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
<link title="Netshm" rel="Chapter" href="Netshm.html">
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
<link title="Netstream" rel="Chapter" href="Netstream.html">
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
<link title="Netmime" rel="Chapter" href="Netmime.html">
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
<link title="Neturl" rel="Chapter" href="Neturl.html">
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
<link title="Netdate" rel="Chapter" href="Netdate.html">
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
<link title="Netulex" rel="Chapter" href="Netulex.html">
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
<link title="Netstring_mt" rel="Chapter" href="Netstring_mt.html">
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
<link title="Netaux" rel="Chapter" href="Netaux.html">
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
<link title="Netsys" rel="Chapter" href="Netsys.html">
<link title="Netpop" rel="Chapter" href="Netpop.html">
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
<link title="Xdr" rel="Chapter" href="Xdr.html">
<link title="Rpc" rel="Chapter" href="Rpc.html">
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
<link title="Shell" rel="Chapter" href="Shell.html">
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
<link title="Shell_mt" rel="Chapter" href="Shell_mt.html">
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><link title="Example" rel="Section" href="#2_Example">
<title>Ocamlnet 2 Reference Manual : Rpc_key_service</title>
</head>
<body>
<div class="navbar"><a href="Rpc_auth_dh.html">Previous</a>
&nbsp;<a href="index.html">Up</a>
&nbsp;<a href="Rpc_time.html">Next</a>
</div>
<center><h1>Module <a href="type_Rpc_key_service.html">Rpc_key_service</a></h1></center>
<br>
<pre><span class="keyword">module</span> Rpc_key_service: <code class="code">sig</code> <a href="Rpc_key_service.html">..</a> <code class="code">end</code></pre>Contact the keyserv daemon to encrypt/decrypt data with the common
 key.
<p>

 If the keyserv crashes, the current call will raise an exception
 (e.g. broken pipe), but the next call will try to reconnect.
<p>

 This module works fully synchronous, i.e. waits until the keyserv
 responds. This is normally not a problem, because the keyserv daemon
 runs on the same system, and no network latencies can occur.<br>
<hr width="100%">
<pre><span class="keyword">exception</span> <a name="EXCEPTIONNetname_unknown"></a>Netname_unknown</pre>
<div class="info">
The netname is invalid<br>
</div>
<pre><span class="keyword">exception</span> <a name="EXCEPTIONNo_secret_key"></a>No_secret_key</pre>
<div class="info">
The user does not have a secret key for the netname<br>
</div>
<pre><span class="keyword">exception</span> <a name="EXCEPTIONKey_service_problem"></a>Key_service_problem <span class="keyword">of</span> <code class="type">exn</code></pre>
<div class="info">
All exceptions (except the exceptions defined above) are wrapped into
 <code class="code">Key_service_problem</code>.<br>
</div>
<pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t </pre>
<div class="info">
represents a client of the keyserv daemon<br>
</div>

<pre><span class="keyword">type</span> <a name="TYPEconnector"></a><code class="type"></code>connector = <code class="type">[ `Direct of <a href="Rpc_client.html#TYPEconnector">Rpc_client.connector</a> * <a href="Rpc.html#TYPEprotocol">Rpc.protocol</a> | `Keyenvoy of string ]</code> </pre>
<div class="info">
How to connect to keyserv:<ul>
<li><code class="code">`Direct(c,p)</code>: Create a direct RPC connection to the keyserv
   program listening at <code class="code">c</code> using protocol <code class="code">p</code>. This usually only
   works if <code class="code">c</code> is a local transport like Unix Domain.</li>
<li><code class="code">`Keyenvoy path</code>: Call the <code class="code">keyenvoy</code> program installed at <code class="code">path</code></li>
</ul>
<br>
</div>

<pre><span class="keyword">val</span> <a name="VALcreate"></a>create : <code class="type">?connector:<a href="Rpc_key_service.html#TYPEconnector">connector</a> -> unit -> <a href="Rpc_key_service.html#TYPEt">t</a></code></pre><div class="info">
Connects to the keyserv daemon. By default (no <code class="code">connector</code>), the local
 keyserv daemon is contacted in an OS-specific way.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALgenerate"></a>generate : <code class="type"><a href="Rpc_key_service.html#TYPEt">t</a> -> string</code></pre><div class="info">
Generates a new conversation key (a 64 bit random number)<br>
</div>
<pre><span class="keyword">val</span> <a name="VALencrypt"></a>encrypt : <code class="type"><a href="Rpc_key_service.html#TYPEt">t</a> -> string -> string -> string</code></pre><div class="info">
This function is used if this program is a client and wants to contact
 a server. The first passed string is the netname of the server.
 Furthermore, the keyserv daemon automatically determines the netname
 of this process. The daemon looks up the public key of the server
 and the secret key of the client, and computes the common key using
 the Diffie Hellman scheme.
 The second passed string (exactly 8 characters) is DES-encrypted with the
 common key in ECB mode, and returned (again 8 characters).<br>
</div>
<pre><span class="keyword">val</span> <a name="VALdecrypt"></a>decrypt : <code class="type"><a href="Rpc_key_service.html#TYPEt">t</a> -> string -> string -> string</code></pre><div class="info">
This function is used if this program is a server and wants to check
 the identity of a contacting client.
 The first passed string is the netname of the client.
 Furthermore, the keyserv daemon automatically determines the netname
 of this process. The daemon looks up the public key of the client
 and the secret key of the server, and computes the common key using
 the Diffie Hellman scheme.
 The second passed string (exactly 8 characters) is DES-decrypted with the
 common key in ECB mode, and returned (again 8 characters).<br>
</div>
<br>
<a name="2_Example"></a>
<h2>Example</h2><ul>
<li>The client is: "unix.100@domain"</li>
<li>The server is: "unix.mercury@domain"       (* i.e. root@mercury *)</li>
</ul>

 The client encrypts with
   <pre><code class="code"> let enc_data = encrypt "unix.mercury@domain" data </code></pre>
 This works because the keyserv daemon knows from the OS that the current
 process is run by "unix.100<br>
<pre><span class="keyword">val</span> <a name="VALnet_get"></a>net_get : <code class="type"><a href="Rpc_key_service.html#TYPEt">t</a> -> string * string * string</code></pre><pre><span class="keyword">val</span> <a name="VALshut_down"></a>shut_down : <code class="type"><a href="Rpc_key_service.html#TYPEt">t</a> -> unit</code></pre></body></html>