% $RCSfile: vconf.tex,v $
%
% $Log: vconf.tex,v $
% Revision 1.1  1995/07/28 21:22:13  slm
% Initial revision
%
% Revision 1.4.1.1  1994/10/21  00:00:53  hkaram
% New branch
%
% Revision 1.4  1994/08/02  23:55:43  davidm
% Sectioning commands now use \protspec and \topic so latex2html has
% an easier time.
%
% Revision 1.3  1994/07/05  00:42:34  ho
% Indexed.
%
% Revision 1.2  1994/01/14  19:29:02  menze
% Fixed KEYS subsection to not make TOC entry
%

\protspec{VCONF}{VCONF (Virtual Confounder Protocol)}
\index{vconf}
\label{VCONF}

\input cryptDist

\topic{SPECIFICATION}

\noindent
VCONF is a virtual protocol; it does not directly manipulate messages.
At open, VCONF chooses a hash prefix for messages, based on the destination.
The prefix is requested from a key manager (KM, page~\pageref{KM}), and passed to a lower
hashing protocol that accepts a prefix, either MD5 or SHA.
VCONF doesn't create a session; the lower session is linked directly
to the protocol above.


\topic{SYNOPSIS}

\noindent 
When VCONF is opened, it opens the protocol configured below 
it with the addresses passed to it during open.  The
first participant is then used as an argument to open a key manager (KM)
session.  A key is looked up, and passed down via a control operation
to a lower hash protocol, becoming the hash prefix for that session.
The key manager session is closed.  VCONF doesn't create a session,
but arranges for the lower session to be linked directly to the protocol above.

When an opendone happens from a lower protocol, VCONF does a GETPARTICIPANTS
to determine the destination.  The key lookup, etc. happens
as if the open were from above.


\topic{REALM}

VCONF is in the ASYNC realm.


\topic{PARTICIPANTS}

VCONF passes participants to the lower protocols without manipulating them.
When VCONF is opened from above, it uses the first participant to lookup the hash prefix
to pass to the lower hash protocol.  When opened from below, it uses
the second participant for the same purpose.


\topic{CONTROL OPERATIONS}

VCONF passes all protocol control operations unchanged to the lower
protocol.  There are no VCONF sessions, hence no session control operations.


\topic{CONFIGURATION}

VCONF expects to be configured somewhere above a hash protocol (MD5 or SHA)
and directly above a key manager.  It accepts arbitrary address types at 
open time.

Example of a graph.comp file:
\begin{verbatim}
---------------------------------
@;
name=simeth/0;
name=eth protocols=simeth/0;
name=arp protocols=eth;
name=vnet protocols=eth,arp;
name=ip protocols=vnet;
name=md5 protocols=ip;
name=km;
name=vconf protocols=md5,km;
name=udp protocols=vconf;
name=udpcrypttest protocols=udp;
@;
prottbl = ../../../etc/prottbl.nonstd;
---------------------------------
\end{verbatim}


\topic{KEYS}

There are no special restrictions on keys for VCONF; they may be any length.
See the description for the key manager for example keys.


\topic{AUTHOR}

\noindent Sean O'Malley

