Author: dylan
Date: 2005-03-27 00:49:38 -0500 (Sun, 27 Mar 2005)
New Revision: 659

Modified:
   trunk/
   trunk/docs/manual/haver.texi
   trunk/docs/manual/messages.texi
Log:
 [EMAIL PROTECTED]:  dylan | 2005-03-27 00:17:25 -0500
 more stuff is done. yay!



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:868
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
   + 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:869
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238

Modified: trunk/docs/manual/haver.texi
===================================================================
--- trunk/docs/manual/haver.texi        2005-03-27 05:49:37 UTC (rev 658)
+++ trunk/docs/manual/haver.texi        2005-03-27 05:49:38 UTC (rev 659)
@@ -48,6 +48,7 @@
 * Introduction::
 * Protocol::
 * Formats::
+* Concepts::
 * Messages::
 * Index::
 @end menu

Modified: trunk/docs/manual/messages.texi
===================================================================
--- trunk/docs/manual/messages.texi     2005-03-27 05:49:37 UTC (rev 658)
+++ trunk/docs/manual/messages.texi     2005-03-27 05:49:38 UTC (rev 659)
@@ -5,12 +5,22 @@
 applications can send and receive.
 It also details how error conditions are handled.
 
[EMAIL PROTECTED] On the notation of messages
 A message is composed of a command and zero or more parameters.
 Commands are typeset as @cmd{COMMAND} and arguments @param{parameter}.
 Sadly, parameters appear in all uppercase in info and plain text format.
 
+Parameters that are enclosed in square brackets [like this] are optional.
+When a parameter is followed by an ellipsis (@dots{}), it stands for all the 
remaining
+parameters, of which there should be one. If enclosed in square brackets.
+
+Unless otherwise noted, all spaces in message definitions should be interpreted
+as Tabs (@pxref{Parsing}).
+
+
 @menu
 * Connection Messages::
+* Client Passcodes::
 @end menu
 
 
@@ -27,9 +37,11 @@
 @deffn {Client Message} HAVER client
 @mustSendOnce
 
-This event @strong{must} be the first event sent by the client.
-If a different event is received, servers @strong{must}
+This message @strong{must} be the first message sent by the client.
+If a different message is received, servers @strong{must}
 immediately terminate the connection.
+This message @strong{must not} be sent be sent more than once
+during the lifetime of the connection.
 
 The parameter @param{client} is the name and version
 number of the client software, comparable to the ``User-Agent:''
@@ -37,15 +49,18 @@
 is a number from 0 to 9. This format shall not be strictly enforced,
 but clients are encouraged to not deviate from it.
 
-The server will respond to this event
-by sending @cmd{HAVER} and @cmd{WANT IDENT}.
+The server @strong{must} respond to this message
+by sending @cmd{HAVER}, @cmd{HOST}, @cmd{WANT IDENT}.
 @end deffn
 
 
 @c ########################################################
 
 @deffn {Server Message} HAVER server
-This event is sent after the client sends @cmd{HAVER}.
+
+This message @strong{must} be sent after the client sends @cmd{HAVER},
+and @strong{must not} be sent again during the lifetime of the connection.
+
 The parameter @param{server} is name and version number of the server,
 for example ``Haver::Server::POE/0.07''. This is the same form as
 for client names and versions.
@@ -53,16 +68,78 @@
 The client can just ignore this.
 @end deffn
 
[EMAIL PROTECTED] {Server Message} HOST hostname
+This message @strong{must} be sent after the client sends @cmd{HAVER},
+and @strong{must not} be sent again during the lifetime of the connection.
+
+The parameter @param{hostname} is the @acronym{DNS} name of the server.
+It @strong{must} resolve back to the server, but a client does no have to 
verify this
+(it is a good idea, however).
+
+This value should be remembered, as most clients should use when generating 
passcodes
+(@pxref{Client Passcodes}).
[EMAIL PROTECTED] deffn
+
+
 @c ########################################################
 
 @deffn {Server Message} WANT cmd [EMAIL PROTECTED]
-
 When the server sends this message, the client
[EMAIL PROTECTED] either reply with  @cmd{cmd}
[EMAIL PROTECTED] either reply with @cmd{cmd}
 or [EMAIL PROTECTED] @param{cmd}''.
+The server @strong{must not} send this message after it sends @strong{ACCEPT}.
 
 If the client sends any other message(s), the server @strong{must} disconnect
 the client.
 @end deffn
 
[EMAIL PROTECTED] {Client Message} IDENT [type] ident
+This message @strong{must} only be sent when the server requests it with 
@cmd{WANT}.
 
[EMAIL PROTECTED] is the identifier the client wishes to go by  
(@pxref{Identifiers}).
[EMAIL PROTECTED] is optional, and may be one of ``user'' or ``service''.
+If not specified, it defaults to ``user''.
[EMAIL PROTECTED] deffn
+
[EMAIL PROTECTED] {Client Message} AUTH:TYPE name
[EMAIL PROTECTED] {Server Want} {WANT AUTH:TYPE} [EMAIL PROTECTED]
+This message @strong{must} only be sent when the server requests it with 
@cmd{WANT}.
+
+Request to use authentication type @param{name}.
+Supported values for @param{name} would have been given by 
[EMAIL PROTECTED] of the @cmd{WANT} that requested this message.
+
+Typical values for @param{name} are ``basic'', which is the standard
+authenticate method. In the future there could be extensions, such as 
authentication based on
+OpenPGP keys or similiar.
+
+If client issues @[EMAIL PROTECTED]:TYPE} basic}, the server will respond
+with @[EMAIL PROTECTED] AUTH:BASIC}.
[EMAIL PROTECTED] deffn
+
[EMAIL PROTECTED] {Client Message} AUTH:BASIC hashtype token
[EMAIL PROTECTED] {Server Want} {WANT AUTH:BASIC} key [EMAIL PROTECTED]
+Authenticate using the basic scheme. 
+
+The parameter @param{hashes} of the @cmd{WANT} is a list of hashing
+functions the sever is aware of. Typically, this list will include ``sha1''.
+However, other hashing algorithms may be available, such as ``sha256''.
+The parameter @param{key} is a unique random string.
+Its value is mostly unimportant.
+
+The algorithm for generating a token is very simple:
+
[EMAIL PROTECTED]
[EMAIL PROTECTED]
+The client must select from @param{hashes} the hashing function 
+it prefers most. What it selects will be the value of @param{hashtype}.
+
[EMAIL PROTECTED] 
+Using the hashing function @param{hashtype}, let @param{token} equal the
+concatenation of @param{key} with the client's @emph{passcode} (@pxref{Client 
Passcodes}).
[EMAIL PROTECTED] enumerate
[EMAIL PROTECTED] deffn
+
[EMAIL PROTECTED] Client Passcodes
[EMAIL PROTECTED]
+Foobar


Reply via email to