keyring-auth man page on Inferno

Man page or keyword search:  
man Server   579 pages
apropos Keyword Search (all sections)
Output format
Inferno logo
[printable version]

KEYRING-AUTH(2)						       KEYRING-AUTH(2)

NAME
       keyring: auth, readauthinfo, writeauthinfo - authenticate a connection

SYNOPSIS
       include "keyring.m";
       keyring := load Keyring Keyring->PATH;
       auth:	       fn(fd: ref Sys->FD, info: ref Authinfo, setid: int)
		       : (string, array of byte);
       readauthinfo:   fn(filename: string): ref Authinfo;
       writeauthinfo:  fn(filename: string, info: ref Authinfo): int;

DESCRIPTION
       Auth  performs mutual authentication over a network connection, usually
       between a client and a server.  The function is symmetric:  each	 party
       runs it on their end of the connection.	Info holds the public key of a
       certifying authority (PKca), the private key of	the  user  (SKu),  the
       public  key  (PKu)  of  the  user  signed  by  the certifying authority
       (CERTu), and Diffie-Hellman parameters (alpha, p).

       Auth returns a string and a byte array.	If the byte array is nil  then
       the  authentication  has	 failed and the string is an error message. If
       the byte array is non-nil, it represents a secret  shared  by  the  two
       communicating  parties, and the string names the party at the other end
       of the connection.

       If the authentication is successful and setid  is  non-zero  then  auth
       attempts to write the name of the party at the other end of the connec‐
       tion into /dev/user (see cons(3)); no error is generated if  that  does
       not succeed.  If the authentication is not successful and setid is non-
       zero, auth writes the name nobody into /dev/user.

       The authentication protocol is based on the  Station-to-Station	proto‐
       col.  In the following, the parties are labelled 0 and 1.  Sig0(x) is x
       signed with 0's private key.

	      0 → 1  alpha**r0 mod p, CERTu0, PKu0
	      1 → 0  alpha**r1 mod p, CERTu1, PKu1
	      0 → 1  sig0(alpha**r0 mod p, alpha**r1 mod p)
	      1 → 0  sig1(alpha**r0 mod p, alpha**r1 mod p)

       At this point both 0 and 1 share the  secret  alpha**(r0*r1)  which  is
       returned in the byte array.  Amongst other things, it can be the secret
       to digest or encrypt a conversation (see security-ssl(2)).

       Readauthinfo reads a representation of an Authinfo  from	 a  file.   It
       returns	nil if there is a read error or a conversion error; it returns
       a reference to the Authinfo otherwise.

       Writeauthinfo writes a representation of info to a file. It returns  -1
       if the write operation fails, 0 otherwise.

FILES
       /usr/user/keyring
	      The conventional directory for storing Authinfo files

       /usr/user/keyring/default
	      The key file normally used by server programs

       /usr/user/keyring/net!server
	      The key file normally used by clients for a given server

SOURCE
       /libinterp/keyring.c

							       KEYRING-AUTH(2)
[top]

List of man pages available for Inferno

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net