BSD 4_4_Lite2 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 14 May 1995 09:40:21 +0000 (01:40 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 14 May 1995 09:40:21 +0000 (01:40 -0800)
Work on file usr/share/man/cat1/register.0
Work on file usr/share/man/cat8/registerd.0
Work on file usr/share/man/cat8/make_keypair.0
Work on file usr/share/man/cat1/ksrvtgt.0
Work on file usr/share/man/cat1/klist.0
Work on file usr/share/man/cat1/kdestroy.0
Work on file usr/share/man/cat1/kerberos.0
Work on file usr/share/man/cat3/acl_check.0
Work on file usr/share/man/cat1/kinit.0
Work on file usr/share/man/cat3/krb_rd_err.0
Work on file usr/share/man/cat3/krb_realmofhost.0
Work on file usr/share/man/cat3/krb_sendauth.0
Work on file usr/share/man/cat3/kerberos.0
Work on file usr/share/man/cat3/krb_kntoln.0
Work on file usr/share/man/cat3/krb_mk_req.0
Work on file usr/share/man/cat3/krb_rd_req.0
Work on file usr/share/man/cat3/krb.0
Work on file usr/share/man/cat3/realm.0
Work on file usr/share/man/cat3/krb_rd_safe.0
Work on file usr/share/man/cat3/krb_set_tkt_string.0
Work on file usr/share/man/cat3/krb_get_cred.0
Work on file usr/share/man/cat3/des_crypt.0
Work on file usr/share/man/cat3/des.0
Work on file usr/share/man/cat3/ksend.0
Work on file usr/share/man/cat3/krb_ck_repl.0
Work on file usr/share/man/cat3/krb_set_key.0
Work on file usr/share/man/cat3/krb_mk_err.0
Work on file usr/share/man/cat3/krb_mk_safe.0
Work on file usr/share/man/cat3/krb_mk_priv.0
Work on file usr/share/man/cat8/ext_srvtab.0
Work on file usr/share/man/cat5/krb.conf.0
Work on file usr/share/man/cat5/krb.realms.0
Work on file usr/share/man/cat8/kdb_destroy.0
Work on file usr/share/man/cat3/tf_util.0
Work on file usr/share/man/cat3/kuserok.0
Work on file usr/share/man/cat8/kdb_edit.0
Work on file usr/share/man/cat8/kdb_init.0
Work on file usr/share/man/cat8/kstash.0
Work on file usr/share/man/cat8/kdb_util.0

Synthesized-from: CSRG/cd3/4.4BSD-Lite2

39 files changed:
usr/share/man/cat1/kdestroy.0 [new file with mode: 0644]
usr/share/man/cat1/kerberos.0 [new file with mode: 0644]
usr/share/man/cat1/kinit.0 [new file with mode: 0644]
usr/share/man/cat1/klist.0 [new file with mode: 0644]
usr/share/man/cat1/ksrvtgt.0 [new file with mode: 0644]
usr/share/man/cat1/register.0 [new file with mode: 0644]
usr/share/man/cat3/acl_check.0 [new file with mode: 0644]
usr/share/man/cat3/des.0 [new file with mode: 0644]
usr/share/man/cat3/des_crypt.0 [new file with mode: 0644]
usr/share/man/cat3/kerberos.0 [new file with mode: 0644]
usr/share/man/cat3/krb.0 [new file with mode: 0644]
usr/share/man/cat3/krb_ck_repl.0 [new file with mode: 0644]
usr/share/man/cat3/krb_get_cred.0 [new file with mode: 0644]
usr/share/man/cat3/krb_kntoln.0 [new file with mode: 0644]
usr/share/man/cat3/krb_mk_err.0 [new file with mode: 0644]
usr/share/man/cat3/krb_mk_priv.0 [new file with mode: 0644]
usr/share/man/cat3/krb_mk_req.0 [new file with mode: 0644]
usr/share/man/cat3/krb_mk_safe.0 [new file with mode: 0644]
usr/share/man/cat3/krb_rd_err.0 [new file with mode: 0644]
usr/share/man/cat3/krb_rd_req.0 [new file with mode: 0644]
usr/share/man/cat3/krb_rd_safe.0 [new file with mode: 0644]
usr/share/man/cat3/krb_realmofhost.0 [new file with mode: 0644]
usr/share/man/cat3/krb_sendauth.0 [new file with mode: 0644]
usr/share/man/cat3/krb_set_key.0 [new file with mode: 0644]
usr/share/man/cat3/krb_set_tkt_string.0 [new file with mode: 0644]
usr/share/man/cat3/ksend.0 [new file with mode: 0644]
usr/share/man/cat3/kuserok.0 [new file with mode: 0644]
usr/share/man/cat3/realm.0 [new file with mode: 0644]
usr/share/man/cat3/tf_util.0 [new file with mode: 0644]
usr/share/man/cat5/krb.conf.0 [new file with mode: 0644]
usr/share/man/cat5/krb.realms.0 [new file with mode: 0644]
usr/share/man/cat8/ext_srvtab.0 [new file with mode: 0644]
usr/share/man/cat8/kdb_destroy.0 [new file with mode: 0644]
usr/share/man/cat8/kdb_edit.0 [new file with mode: 0644]
usr/share/man/cat8/kdb_init.0 [new file with mode: 0644]
usr/share/man/cat8/kdb_util.0 [new file with mode: 0644]
usr/share/man/cat8/kstash.0 [new file with mode: 0644]
usr/share/man/cat8/make_keypair.0 [new file with mode: 0644]
usr/share/man/cat8/registerd.0 [new file with mode: 0644]

diff --git a/usr/share/man/cat1/kdestroy.0 b/usr/share/man/cat1/kdestroy.0
new file mode 100644 (file)
index 0000000..59a1849
--- /dev/null
@@ -0,0 +1,132 @@
+
+
+
+KDESTROY(1)            BSD Reference Manual           KDESTROY(1)
+
+
+N\bNA\bAM\bME\bE
+       kdestroy - destroy Kerberos tickets
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       k\bkd\bde\bes\bst\btr\bro\boy\by [ -\b-f\bf ] [ -\b-q\bq ]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       The  _\bk_\bd_\be_\bs_\bt_\br_\bo_\by  utility destroys the user's active Kerberos
+       authorization tickets by writing zeros to  the  file  that
+       contains  them.   If  the ticket file does not exist, _\bk_\bd_\be_\b-
+       _\bs_\bt_\br_\bo_\by displays a message to that effect.
+
+       After overwriting the file, _\bk_\bd_\be_\bs_\bt_\br_\bo_\by removes the file from
+       the system.  The utility displays a message indicating the
+       success or failure  of  the  operation.   If  _\bk_\bd_\be_\bs_\bt_\br_\bo_\by  is
+       unable  to  destroy the ticket file, the utility will warn
+       you by making your terminal beep.
+
+       In the Athena workstation environment, the _\bt_\bo_\be_\bh_\bo_\bl_\bd service
+       automatically  destroys  your tickets when you end a work-
+       station session.  If your site does not provide a  similar
+       ticket-destroying  mechanism,  you  can place the _\bk_\bd_\be_\bs_\bt_\br_\bo_\by
+       command in your _\b._\bl_\bo_\bg_\bo_\bu_\bt file  so  that  your  tickets  are
+       destroyed automatically when you logout.
+
+       The options to _\bk_\bd_\be_\bs_\bt_\br_\bo_\by are as follows:
+
+       -\b-f\bf     _\bk_\bd_\be_\bs_\bt_\br_\bo_\by  runs  without  displaying the status mes-
+              sage.
+
+       -\b-q\bq     _\bk_\bd_\be_\bs_\bt_\br_\bo_\by will not make your  terminal  beep  if  it
+              fails to destroy the tickets.
+
+F\bFI\bIL\bLE\bES\bS
+       KRBTKFILE environment variable if set, otherwise
+       /tmp/tkt[uid]
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), kinit(1), klist(1)
+
+B\bBU\bUG\bGS\bS
+       Only  the  tickets  in  the user's current ticket file are
+       destroyed.  Separate ticket files are used  to  hold  root
+       instance  and  password  changing  tickets.   These  files
+       should probably be destroyed too, or all of a user's tick-
+       ets kept in a single ticket file.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+       Clifford Neuman, MIT Project Athena
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KDESTROY(1)            BSD Reference Manual           KDESTROY(1)
+
+
+       Bill Sommerfeld, MIT Project Athena
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
diff --git a/usr/share/man/cat1/kerberos.0 b/usr/share/man/cat1/kerberos.0
new file mode 100644 (file)
index 0000000..7607076
--- /dev/null
@@ -0,0 +1,198 @@
+
+
+
+KERBEROS(1)            BSD Reference Manual           KERBEROS(1)
+
+
+N\bNA\bAM\bME\bE
+       kerberos - introduction to the Kerberos system
+
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       The  Kerberos  system  authenticates individual users in a
+       network environment.   After  authenticating  yourself  to
+       Kerberos,  you  can  use network utilities such as _\br_\bl_\bo_\bg_\bi_\bn,
+       _\br_\bc_\bp, and _\br_\bs_\bh without having to present passwords to remote
+       hosts  and  without  having  to bother with _\b._\br_\bh_\bo_\bs_\bt_\bs files.
+       Note that these utilities will work without passwords only
+       if  the remote machines you deal with support the Kerberos
+       system.  All Athena timesharing machines and public  work-
+       stations support Kerberos.
+
+       Before  you  can  use  Kerberos,  you  must register as an
+       Athena user, and you must make sure you have been added to
+       the  Kerberos  database.  You can use the _\bk_\bi_\bn_\bi_\bt command to
+       find out.  This command tries to log you into the Kerberos
+       system.   _\bk_\bi_\bn_\bi_\bt  will  prompt you for a username and pass-
+       word.  Enter your username and password.  If  the  utility
+       lets  you  login  without  giving  you a message, you have
+       already been registered.
+
+       If you enter your username and _\bk_\bi_\bn_\bi_\bt  responds  with  this
+       message:
+
+       Principal unknown (kerberos)
+
+       you  haven't been registered as a Kerberos user.  See your
+       system administrator.
+
+       A Kerberos name contains three parts.  The  first  is  the
+       _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl  _\bn_\ba_\bm_\be_\b,  which  is  usually a user's or service's
+       name.  The second is the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b, which in the case of  a
+       user  is  usually  null.   Some  users may have privileged
+       instances, however, such as ``root'' or ``admin''.  In the
+       case of a service, the instance is the name of the machine
+       on which it runs; i.e. there can be an _\br_\bl_\bo_\bg_\bi_\bn service run-
+       ning  on  the  machine  ABC,  which  is different from the
+       rlogin service running on the machine XYZ.  The third part
+       of a Kerberos name is the _\br_\be_\ba_\bl_\bm_\b.  The realm corresponds to
+       the Kerberos  service  providing  authentication  for  the
+       principal.   For  example, at MIT there is a Kerberos run-
+       ning at the Laboratory for Computer Science and  one  run-
+       ning at Project Athena.
+
+       When  writing a Kerberos name, the principal name is sepa-
+       rated from the instance (if not null) by a period, and the
+       realm  (if  not  the  local realm) follows, preceded by an
+       ``@'' sign.  The following are examples of valid  Kerberos
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(1)            BSD Reference Manual           KERBEROS(1)
+
+
+       names:
+
+               billb
+               jis.admin
+               srz@lcs.mit.edu
+               treese.root@athena.mit.edu
+
+       When  you  authenticate  yourself  with  Kerberos, through
+       either the workstation _\bt_\bo_\be_\bh_\bo_\bl_\bd system or  the  _\bk_\bi_\bn_\bi_\bt  com-
+       mand,  Kerberos  gives you an initial Kerberos _\bt_\bi_\bc_\bk_\be_\bt.  (A
+       Kerberos ticket is an encrypted protocol message that pro-
+       vides authentication.)  Kerberos uses this ticket for net-
+       work utilities such as _\br_\bl_\bo_\bg_\bi_\bn and _\br_\bc_\bp.  The ticket  trans-
+       actions are done transparently, so you don't have to worry
+       about their management.
+
+       Note, however, that tickets expire.   Privileged  tickets,
+       such  as  root  instance tickets, expire in a few minutes,
+       while tickets that carry more ordinary privileges  may  be
+       good  for several hours or a day, depending on the instal-
+       lation's policy.  If your login session extends beyond the
+       time  limit,  you will have to re-authenticate yourself to
+       Kerberos to get new tickets.  Use the _\bk_\bi_\bn_\bi_\bt command to re-
+       authenticate yourself.
+
+       If  you  use  the  _\bk_\bi_\bn_\bi_\bt command to get your tickets, make
+       sure you use the _\bk_\bd_\be_\bs_\bt_\br_\bo_\by command to destroy your  tickets
+       before  you  end  your login session.  You should probably
+       put the _\bk_\bd_\be_\bs_\bt_\br_\bo_\by command in your _\b._\bl_\bo_\bg_\bo_\bu_\bt file so that your
+       tickets  will  be destroyed automatically when you logout.
+       For more information about the  _\bk_\bi_\bn_\bi_\bt  and  _\bk_\bd_\be_\bs_\bt_\br_\bo_\by  com-
+       mands, see the _\bk_\bi_\bn_\bi_\bt_\b(_\b1_\b) and _\bk_\bd_\be_\bs_\bt_\br_\bo_\by_\b(_\b1_\b) manual pages.
+
+       Currently,  Kerberos  supports  the following network ser-
+       vices: _\br_\bl_\bo_\bg_\bi_\bn, _\br_\bs_\bh, and _\br_\bc_\bp.   Other  services  are  being
+       worked  on,  such  as the _\bp_\bo_\bp mail system and NFS (network
+       file system), but are not yet available.
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kdestroy(1), kinit(1), klist(1), kpasswd(1), des_crypt(3),
+       kerberos(3), kadmin(8)
+
+B\bBU\bUG\bGS\bS
+       Kerberos  will not do authentication forwarding.  In other
+       words, if you use _\br_\bl_\bo_\bg_\bi_\bn to login to a  remote  host,  you
+       cannot  use  Kerberos  services  from  that host until you
+       authenticate yourself explicitly on that  host.   Although
+       you  may need to authenticate yourself on the remote host,
+       be aware that when you do so, _\br_\bl_\bo_\bg_\bi_\bn sends  your  password
+       across the network in clear text.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(1)            BSD Reference Manual           KERBEROS(1)
+
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+       Clifford Neuman, MIT Project Athena
+
+       The following people helped out on various aspects of  the
+       system:
+
+       Jeff Schiller designed and wrote the administration server
+       and its user interface, kadmin.  He  also  wrote  the  dbm
+       version of the database management system.
+
+       Mark Colan developed the Kerberos versions of _\br_\bl_\bo_\bg_\bi_\bn, _\br_\bs_\bh,
+       and _\br_\bc_\bp, as well as contributing work on the servers.
+
+       John Ostlund developed the Kerberos versions of _\bp_\ba_\bs_\bs_\bw_\bd and
+       _\bu_\bs_\be_\br_\br_\be_\bg.
+
+       Stan  Zanarotti  pioneered  Kerberos  in  a  foreign realm
+       (LCS), and made many contributions based on  that  experi-
+       ence.
+
+       Many  people contributed code and/or useful ideas, includ-
+       ing Jim Aspnes, Bob Baldwin, John  Barba,  Richard  Basch,
+       Jim  Bloom,  Bill  Bryant,  Rob  French,  Dan  Geer, David
+       Jedlinsky, John Kohl, John Kubiatowicz, Bob  McKie,  Brian
+       Murphy,   Ken  Raeburn,  Chris  Reed,  Jon  Rochlis,  Mike
+       Shanzer, Bill Sommerfeld, Jennifer Steiner, Ted Ts'o,  and
+       Win Treese.
+
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986 Massachusetts Institute of Technology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
diff --git a/usr/share/man/cat1/kinit.0 b/usr/share/man/cat1/kinit.0
new file mode 100644 (file)
index 0000000..13cf8d0
--- /dev/null
@@ -0,0 +1,132 @@
+
+
+
+KINIT(1)               BSD Reference Manual              KINIT(1)
+
+
+N\bNA\bAM\bME\bE
+       kinit - Kerberos login utility
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       k\bki\bin\bni\bit\bt [ -\b-i\bir\brv\bvl\bl ]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       The _\bk_\bi_\bn_\bi_\bt command is used to login to the Kerberos authen-
+       tication and authorization system.  Note that only  regis-
+       tered  Kerberos  users  can  use the Kerberos system.  For
+       information about registering as a Kerberos user, see  the
+       _\bk_\be_\br_\bb_\be_\br_\bo_\bs_\b(_\b1_\b) manual page.
+
+       If  you are logged in to a workstation that is running the
+       _\bt_\bo_\be_\bh_\bo_\bl_\bd service, you do not have to use _\bk_\bi_\bn_\bi_\bt_\b.   The  _\bt_\bo_\be_\b-
+       _\bh_\bo_\bl_\bd  login procedure will log you into Kerberos automati-
+       cally.  You will need to use _\bk_\bi_\bn_\bi_\bt only  in  those  situa-
+       tions in which your original tickets have expired.  (Tick-
+       ets expire in about a day.)  Note  as  well  that  _\bt_\bo_\be_\bh_\bo_\bl_\bd
+       will  automatically  destroy  your tickets when you logout
+       from the workstation.
+
+       When you use _\bk_\bi_\bn_\bi_\bt without options,  the  utility  prompts
+       for  your  username  and  Kerberos  password, and tries to
+       authenticate your login with the local Kerberos server.
+
+       If  Kerberos  authenticates  the  login   attempt,   _\bk_\bi_\bn_\bi_\bt
+       retrieves  your  initial  ticket and puts it in the ticket
+       file specified by your KRBTKFILE environment variable.  If
+       this  variable is undefined, your ticket will be stored in
+       the _\b/_\bt_\bm_\bp directory, in the file _\bt_\bk_\bt_\bu_\bi_\bd _\b, where _\bu_\bi_\bd  speci-
+       fies your user identification number.
+
+       If  you  have logged in to Kerberos without the benefit of
+       the workstation _\bt_\bo_\be_\bh_\bo_\bl_\bd system, make sure you use the _\bk_\bd_\be_\b-
+       _\bs_\bt_\br_\bo_\by command to destroy any active tickets before you end
+       your login session.  You may want to put the _\bk_\bd_\be_\bs_\bt_\br_\bo_\by com-
+       mand  in  your  _\b._\bl_\bo_\bg_\bo_\bu_\bt  file so that your tickets will be
+       destroyed automatically when you logout.
+
+       The options to _\bk_\bi_\bn_\bi_\bt are as follows:
+
+       -\b-i\bi     _\bk_\bi_\bn_\bi_\bt prompts you for a Kerberos instance.
+
+       -\b-r\br     _\bk_\bi_\bn_\bi_\bt prompts  you  for  a  Kerberos  realm.   This
+              option lets you authenticate yourself with a remote
+              Kerberos server.
+
+       -\b-v\bv     Verbose mode.  _\bk_\bi_\bn_\bi_\bt prints the name of the  ticket
+              file used, and a status message indicating the suc-
+              cess or failure of your login attempt.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KINIT(1)               BSD Reference Manual              KINIT(1)
+
+
+       -\b-l\bl     _\bk_\bi_\bn_\bi_\bt prompts you for a ticket lifetime in minutes.
+              Due to protocol restrictions in Kerberos Version 4,
+              this value must be between 5 and 1275 minutes.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), kdestroy(1), klist(1), toehold(1)
+
+B\bBU\bUG\bGS\bS
+       The -\b-r\br option has not been fully implemented.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Steve Miller, MIT Project Athena/Digital Equipment  Corpo-
+       ration
+       Clifford Neuman, MIT Project Athena
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
diff --git a/usr/share/man/cat1/klist.0 b/usr/share/man/cat1/klist.0
new file mode 100644 (file)
index 0000000..5db9335
--- /dev/null
@@ -0,0 +1,132 @@
+
+
+
+KLIST(1)               BSD Reference Manual              KLIST(1)
+
+
+N\bNA\bAM\bME\bE
+       klist - list currently held Kerberos tickets
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       k\bkl\bli\bis\bst\bt [ -\b-s\bs | -\b-t\bt ] [ -\b-f\bfi\bil\ble\be name ] [ -\b-s\bsr\brv\bvt\bta\bab\bb ]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bl_\bi_\bs_\bt prints the name of the tickets file and the identity
+       of the principal the tickets are for  (as  listed  in  the
+       tickets  file),  and lists the principal names of all Ker-
+       beros tickets currently held by the user, along  with  the
+       issue  and  expire time for each authenticator.  Principal
+       names are listed in the form _\bn_\ba_\bm_\be_\b._\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b@_\br_\be_\ba_\bl_\bm_\b, with the
+       '.'  omitted  if the instance is null, and the '@' omitted
+       if the realm is null.
+
+       If given the -\b-s\bs option, _\bk_\bl_\bi_\bs_\bt does not print the issue and
+       expire  times,  the name of the tickets file, or the iden-
+       tity of the principal.
+
+       If given the -\b-t\bt option, k\bkl\bli\bis\bst\bt checks for the existence  of
+       a  non-expired  ticket-granting-ticket in the ticket file.
+       If one is present, it exits with status 0, else  it  exits
+       with status 1.  No output is generated when this option is
+       specified.
+
+       If given the -\b-f\bfi\bil\ble\be option, the following argument is  used
+       as  the ticket file.  Otherwise, if the K\bKR\bRB\bBT\bTK\bKF\bFI\bIL\bLE\bE environ-
+       ment variable is set, it is  used.   If  this  environment
+       variable is not set, the file /\b/t\btm\bmp\bp/\b/t\btk\bkt\bt[\b[u\bui\bid\bd]\b] is used, where
+       u\bui\bid\bd is the current user-id of the user.
+
+       If given the -\b-s\bsr\brv\bvt\bta\bab\bb option, the file is treated as a ser-
+       vice key file, and the names of the keys contained therein
+       are printed.  If no file is specified with a -\b-f\bfi\bil\ble\be option,
+       the default is _\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bs_\br_\bv_\bt_\ba_\bb.
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/krb.conf
+                           to get the name of the local realm
+
+       /tmp/tkt[uid]       as  the  default ticket file ([uid] is
+                           the decimal UID of the user).
+
+       /etc/kerberosIV/srvtab
+                           as the default service key file
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), kinit(1), kdestroy(1)
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KLIST(1)               BSD Reference Manual              KLIST(1)
+
+
+B\bBU\bUG\bGS\bS
+       When reading a file as a service  key  file,  very  little
+       sanity or error checking is performed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
diff --git a/usr/share/man/cat1/ksrvtgt.0 b/usr/share/man/cat1/ksrvtgt.0
new file mode 100644 (file)
index 0000000..c8e9d15
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KSRVTGT(1)             BSD Reference Manual            KSRVTGT(1)
+
+
+N\bNA\bAM\bME\bE
+       ksrvtgt  - fetch and store Kerberos ticket-granting-ticket
+       using a service key
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       k\bks\bsr\brv\bvt\btg\bgt\bt name instance [[realm] srvtab]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bs_\br_\bv_\bt_\bg_\bt retrieves a ticket-granting ticket with a lifetime
+       of  five (5) minutes for the principal _\bn_\ba_\bm_\be_\b._\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b@_\br_\be_\ba_\bl_\bm
+       (or _\bn_\ba_\bm_\be_\b._\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b@_\bl_\bo_\bc_\ba_\bl_\br_\be_\ba_\bl_\bm if _\br_\be_\ba_\bl_\bm is not  supplied  on
+       the command line), decrypts the response using the service
+       key found  in  _\bs_\br_\bv_\bt_\ba_\bb  (or  in  /\b/e\bet\btc\bc/\b/k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/s\bsr\brv\bvt\bta\bab\bb  if
+       _\bs_\br_\bv_\bt_\ba_\bb  is  not specified on the command line), and stores
+       the ticket in the standard ticket cache.
+
+       This command  is  intended  primarily  for  use  in  shell
+       scripts and other batch-type facilities.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "Generic kerberos failure (kfailure)" can indicate a whole
+       range of problems, the most common of which is the inabil-
+       ity to read the service key file.
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/krb.conf
+                           to get the name of the local realm.
+
+       /tmp/tkt[uid]       The default ticket file.
+
+       /etc/kerberosIV/srvtab
+                           The default service key file.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), kinit(1), kdestroy(1)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat1/register.0 b/usr/share/man/cat1/register.0
new file mode 100644 (file)
index 0000000..9d0d1e3
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+REGISTER(1)            BSD Reference Manual           REGISTER(1)
+
+
+N\bNA\bAM\bME\bE
+       register - register with Kerberos
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       r\bre\beg\bgi\bis\bst\bte\ber\br
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       The  _\br_\be_\bg_\bi_\bs_\bt_\be_\br  command is used to register a new user with
+       Kerberos.  The Kerberos server  keeps  record  of  certain
+       trusted hosts from which it will accept new registrations.
+       If the host on which _\br_\be_\bg_\bi_\bs_\bt_\be_\br is run is  trusted  by  Ker-
+       beros,  the  user  is  asked for his current password, and
+       then a new password to be used with Kerberos.  A user  may
+       only register with Kerberos one time.
+
+F\bFI\bIL\bLE\bES\bS
+       /.update.keyxx.xx.xx.xx    shared DES key with server
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       registerd(8), kerberos(1)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "Principal  not  unique" if the user already exists in the
+       Kerberos database.
+       "Permission Denied," if the  host  on  which  register  is
+       being run is untrusted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4.4 Berkeley Distribution  June 1, 1993                         1
+
+
+
+
+
diff --git a/usr/share/man/cat3/acl_check.0 b/usr/share/man/cat3/acl_check.0
new file mode 100644 (file)
index 0000000..ba975b4
--- /dev/null
@@ -0,0 +1,198 @@
+
+
+
+ACL_CHECK(3)         BSD Programmer's Manual         ACL_CHECK(3)
+
+
+N\bNA\bAM\bME\bE
+       acl_canonicalize_principal,   acl_check,  acl_exact_match,
+       acl_add, acl_delete, acl_initialize - access control  list
+       routines
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       c\bcc\bc <\b<f\bfi\bil\ble\bes\bs>\b> -\b-l\bla\bac\bcl\bl -\b-l\blk\bkr\brb\bb
+
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bkr\brb\bb.\b.h\bh>\b>
+
+       a\bac\bcl\bl_\b_c\bca\ban\bno\bon\bni\bic\bca\bal\bli\biz\bze\be_\b_p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl(\b(p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl,\b, b\bbu\buf\bf)\b)
+       c\bch\bha\bar\br *\b*p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl;\b;
+       c\bch\bha\bar\br *\b*b\bbu\buf\bf;\b;
+
+       a\bac\bcl\bl_\b_c\bch\bhe\bec\bck\bk(\b(a\bac\bcl\bl,\b, p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl)\b)
+       c\bch\bha\bar\br *\b*a\bac\bcl\bl;\b;
+       c\bch\bha\bar\br *\b*p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl;\b;
+
+       a\bac\bcl\bl_\b_e\bex\bxa\bac\bct\bt_\b_m\bma\bat\btc\bch\bh(\b(a\bac\bcl\bl,\b, p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl)\b)
+       c\bch\bha\bar\br *\b*a\bac\bcl\bl;\b;
+       c\bch\bha\bar\br *\b*p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl;\b;
+
+       a\bac\bcl\bl_\b_a\bad\bdd\bd(\b(a\bac\bcl\bl,\b, p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl)\b)
+       c\bch\bha\bar\br *\b*a\bac\bcl\bl;\b;
+       c\bch\bha\bar\br *\b*p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl;\b;
+
+       a\bac\bcl\bl_\b_d\bde\bel\ble\bet\bte\be(\b(a\bac\bcl\bl,\b, p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl)\b)
+       c\bch\bha\bar\br *\b*a\bac\bcl\bl;\b;
+       c\bch\bha\bar\br *\b*p\bpr\bri\bin\bnc\bci\bip\bpa\bal\bl;\b;
+
+       a\bac\bcl\bl_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\be(\b(a\bac\bcl\bl_\b_f\bfi\bil\ble\be,\b, m\bmo\bod\bde\be)\b)
+       c\bch\bha\bar\br *\b*a\bac\bcl\bl_\b_f\bfi\bil\ble\be;\b;
+       i\bin\bnt\bt m\bmo\bod\bde\be;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+   I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn
+       An  access  control  list  (ACL)  is a list of principals,
+       where each principal is represented by a text string which
+       cannot contain whitespace.  The library allows application
+       programs to refer to named access control  lists  to  test
+       membership  and  to  atomically  add and delete principals
+       using a natural and intuitive interface.  At present,  the
+       names  of  access  control  lists  are required to be Unix
+       filenames, and refer to human-readable Unix files; in  the
+       future,  when  a  networked ACL server is implemented, the
+       names may refer to a different namespace specific  to  the
+       ACL service.
+
+
+   P\bPr\bri\bin\bnc\bci\bip\bpa\bal\bl N\bNa\bam\bme\bes\bs
+       Principal names have the form
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+ACL_CHECK(3)         BSD Programmer's Manual         ACL_CHECK(3)
+
+
+            <name>[.<instance>][@<realm>]
+       e.g.:
+            asp
+            asp.root
+            asp@ATHENA.MIT.EDU
+            asp.@ATHENA.MIT.EDU
+            asp.root@ATHENA.MIT.EDU
+       It is possible for principals to be underspecified.  If an
+       instance is missing, it is assumed to be "".  If realm  is
+       missing, it is assumed to be the local realm as determined
+       by _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bl_\br_\be_\ba_\bl_\bm(3).  The canonical form contains all  of
+       name, instance, and realm; the acl_add and acl_delete rou-
+       tines will always leave the file in that form.  Note  that
+       the  canonical  form  of  asp@ATHENA.MIT.EDU  is  actually
+       asp.@ATHENA.MIT.EDU.
+
+   R\bRo\bou\but\bti\bin\bne\bes\bs
+       _\ba_\bc_\bl_\b__\bc_\ba_\bn_\bo_\bn_\bi_\bc_\ba_\bl_\bi_\bz_\be_\b__\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl stores the  canonical  form  of
+       _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl  in _\bb_\bu_\bf.  _\bB_\bu_\bf must contain enough space to store
+       a principal, given  the  limits  on  the  sizes  of  name,
+       instance,  and  realm  specified as ANAME_SZ, INST_SZ, and
+       REALM_SZ, respectively, in _\b/_\bu_\bs_\br_\b/_\bi_\bn_\bc_\bl_\bu_\bd_\be_\b/_\bk_\br_\bb_\b._\bh.
+
+       _\ba_\bc_\bl_\b__\bc_\bh_\be_\bc_\bk returns nonzero if  _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl  appears  in  _\ba_\bc_\bl.
+       Returns  0  if  principal does not appear in acl, or if an
+       error occurs.  Canonicalizes  principal  before  checking,
+       and  allows  the  ACL to contain wildcards.  The only sup-
+       ported wildcards are entries  of  the  form  name.*@realm,
+       *.*@realm,  and  *.*@*.  An asterisk matches any value for
+       its component  field.   For  example,  "jtkohl.*@*"  would
+       match principal jtkohl, with any instance and any realm.
+
+       _\ba_\bc_\bl_\b__\be_\bx_\ba_\bc_\bt_\b__\bm_\ba_\bt_\bc_\bh  performs  like  _\ba_\bc_\bl_\b__\bc_\bh_\be_\bc_\bk,  but  does  no
+       canonicalization or wildcard matching.
+
+       _\ba_\bc_\bl_\b__\ba_\bd_\bd atomically adds _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl to _\ba_\bc_\bl.   Returns  0  if
+       successful, nonzero otherwise.  It is considered a failure
+       if _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl is already in _\ba_\bc_\bl.  This routine will canoni-
+       calize _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl, but will treat wildcards literally.
+
+       _\ba_\bc_\bl_\b__\bd_\be_\bl_\be_\bt_\be atomically deletes _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl from _\ba_\bc_\bl.  Returns
+       0 if successful, nonzero otherwise.  It  is  considered  a
+       failure  if _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl is not already in _\ba_\bc_\bl.  This routine
+       will canonicalize _\bp_\br_\bi_\bn_\bc_\bi_\bp_\ba_\bl, but will treat wildcards lit-
+       erally.
+
+       _\ba_\bc_\bl_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\bi_\bz_\be initializes _\ba_\bc_\bl_\b__\bf_\bi_\bl_\be.  If the file _\ba_\bc_\bl_\b__\bf_\bi_\bl_\be
+       does not exist, _\ba_\bc_\bl_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\bi_\bz_\be creates it with mode  _\bm_\bo_\bd_\be.
+       If  the  file  _\ba_\bc_\bl_\b__\bf_\bi_\bl_\be exists, _\ba_\bc_\bl_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\bi_\bz_\be removes all
+       members.  Returns  0  if  successful,  nonzero  otherwise.
+       WARNING:  Mode  argument  is  likely  to  change  with the
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+ACL_CHECK(3)         BSD Programmer's Manual         ACL_CHECK(3)
+
+
+       eventual introduction of an ACL service.
+
+N\bNO\bOT\bTE\bES\bS
+       In the presence of concurrency,  there  is  a  very  small
+       chance  that  _\ba_\bc_\bl_\b__\ba_\bd_\bd  or  _\ba_\bc_\bl_\b__\bd_\be_\bl_\be_\bt_\be could report success
+       even though it would have had no effect.  This is a neces-
+       sary  side effect of using lock files for concurrency con-
+       trol rather than flock(2), which is not supported by  NFS.
+
+       The  current  implementation  caches  ACLs  in memory in a
+       hash-table format for  increased  efficiency  in  checking
+       membership;  one  effect of the caching scheme is that one
+       file descriptor will be kept open for each ACL cached,  up
+       to a maximum of 8.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(3), krb_get_lrealm(3)
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+       James Aspnes (MIT Project Athena)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
diff --git a/usr/share/man/cat3/des.0 b/usr/share/man/cat3/des.0
new file mode 100644 (file)
index 0000000..7e68897
--- /dev/null
@@ -0,0 +1,396 @@
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+N\bNA\bAM\bME\bE
+       des_read_password,    des_string_to_key,   des_random_key,
+       des_set_key,       des_ecb_encrypt,       des_cbc_encrypt,
+       des_pcbc_encrypt,  des_cbc_cksum,  des_quad_cksum, - (new)
+       DES encryption
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_r\bre\bea\bad\bd_\b_p\bpa\bas\bss\bsw\bwo\bor\brd\bd(\b(k\bke\bey\by,\b,p\bpr\bro\bom\bmp\bpt\bt,\b,v\bve\ber\bri\bif\bfy\by)\b)
+       des_cblock *key;
+       char *prompt;
+       int verify;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_s\bst\btr\bri\bin\bng\bg_\b_t\bto\bo_\b_k\bke\bey\by(\b(s\bst\btr\br,\b,k\bke\bey\by)\b)
+       c\bch\bha\bar\br *\b*s\bst\btr\br;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_r\bra\ban\bnd\bdo\bom\bm_\b_k\bke\bey\by(\b(k\bke\bey\by)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*k\bke\bey\by;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_e\bec\bcb\bb_\b_e\ben\bnc\bcr\bry\byp\bpt\bt(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,e\ben\bnc\bcr\bry\byp\bpt\bt)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       i\bin\bnt\bt e\ben\bnc\bcr\bry\byp\bpt\bt;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_c\bcb\bbc\bc_\b_e\ben\bnc\bcr\bry\byp\bpt\bt(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,i\biv\bve\bec\bc,\b,e\ben\bnc\bcr\bry\byp\bpt\bt)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\biv\bve\bec\bc;\b;
+       i\bin\bnt\bt e\ben\bnc\bcr\bry\byp\bpt\bt;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_p\bpc\bcb\bbc\bc_\b_e\ben\bnc\bcr\bry\byp\bpt\bt(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,i\biv\bve\bec\bc,\b,e\ben\bnc\bcr\bry\byp\bpt\bt)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\biv\bve\bec\bc;\b;
+       i\bin\bnt\bt e\ben\bnc\bcr\bry\byp\bpt\bt;\b;
+
+       u\bun\bns\bsi\big\bgn\bne\bed\bd l\blo\bon\bng\bg d\bde\bes\bs_\b_c\bcb\bbc\bc_\b_c\bck\bks\bsu\bum\bm(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,i\biv\bve\bec\bc)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\biv\bve\bec\bc;\b;
+
+       u\bun\bns\bsi\big\bgn\bne\bed\bd l\blo\bon\bng\bg q\bqu\bua\bad\bd_\b_c\bck\bks\bsu\bum\bm(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,o\bou\but\bt_\b_c\bco\bou\bun\bnt\bt,\b,s\bse\bee\bed\bd)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       i\bin\bnt\bt o\bou\but\bt_\b_c\bco\bou\bun\bnt\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*s\bse\bee\bed\bd;\b;
+
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports various DES encryption related oper-
+       ations.  It  differs  from  the _\bc_\br_\by_\bp_\bt_\b, _\bs_\be_\bt_\bk_\be_\by_\b, _\ba_\bn_\bd _\be_\bn_\bc_\br_\by_\bp_\bt
+       library routines in that it provides a  true  DES  encryp-
+       tion,  without  modifying the algorithm, and executes much
+       faster.
+
+       For each key that may be simultaneously active,  create  a
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be  struct, defined in "des.h". Next, create
+       key schedules  (from  the  8-byte  keys)  as  needed,  via
+       _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b,  prior  to  using  the encryption or checksum
+       routines. Then setup the input  and  output  areas.   Make
+       sure  to  note the restrictions on lengths being multiples
+       of eight bytes. Finally, invoke the  encryption/decryption
+       routines,    _\bd_\be_\bs_\b__\be_\bc_\bb_\b__\be_\bn_\bc_\br_\by_\bp_\bt    or    _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt   or
+       _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b, or, to generate a  cryptographic  check-
+       sum, use _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm (fast) or _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm (slow).
+
+       A  _\bd_\be_\bs_\b__\bc_\bb_\bl_\bo_\bc_\bk struct is an 8 byte block used as the funda-
+       mental unit for DES data and keys, and is defined as:
+
+       t\bty\byp\bpe\bed\bde\bef\bf   u\bun\bns\bsi\big\bgn\bne\bed\bd c\bch\bha\bar\br d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk[\b[8\b8]\b];\b;
+
+       and a _\bd_\be_\bs_\b__\bk_\be_\by_\b__\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, is defined as:
+
+       t\bty\byp\bpe\bed\bde\bef\bf   s\bst\btr\bru\buc\bct\bt     d\bde\bes\bs_\b_k\bks\bs_\b_s\bst\btr\bru\buc\bct\bt     {\b{d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk     _\b_;\b;}\b}
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be[\b[1\b16\b6]\b];\b;
+
+       _\bd_\be_\bs_\b__\br_\be_\ba_\bd_\b__\bp_\ba_\bs_\bs_\bw_\bo_\br_\bd writes the string specified by _\bp_\br_\bo_\bm_\bp_\bt to
+       the standard output, turns  off  echo  (if  possible)  and
+       reads an input string from standard input until terminated
+       with a newline.  If _\bv_\be_\br_\bi_\bf_\by is  non-zero,  it  prompts  and
+       reads  input again, for use in applications such as chang-
+       ing a password; both versions are compared, and the  input
+       is   requested   repeatedly   until   they   match.   Then
+       _\bd_\be_\bs_\b__\br_\be_\ba_\bd_\b__\bp_\ba_\bs_\bs_\bw_\bo_\br_\bd converts the input string into  a  valid
+       DES  key,  internally using the _\bd_\be_\bs_\b__\bs_\bt_\br_\bi_\bn_\bg_\b__\bt_\bo_\b__\bk_\be_\by routine.
+       The newly created key is copied to the area pointed to  by
+       the  _\bk_\be_\by argument.  _\bd_\be_\bs_\b__\br_\be_\ba_\bd_\b__\bp_\ba_\bs_\bs_\bw_\bo_\br_\bd returns a zero if no
+       errors occurred, or a -1 indicating that an error occurred
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       trying to manipulate the terminal echo.
+
+
+       _\bd_\be_\bs_\b__\bs_\bt_\br_\bi_\bn_\bg_\b__\bt_\bo_\b__\bk_\be_\by   converts  an  arbitrary  length  null-
+       terminated string to an 8 byte DES key, with odd byte par-
+       ity,  per  FIPS specification.  A one-way function is used
+       to convert the string to a key, making it  very  difficult
+       to  reconstruct the string from the key.  The _\bs_\bt_\br argument
+       is a pointer to the string, and  _\bk_\be_\by  should  point  to  a
+       _\bd_\be_\bs_\b__\bc_\bb_\bl_\bo_\bc_\bk supplied by the caller to receive the generated
+       key.  No meaningful value is returned. Void  is  not  used
+       for compatibility with other compilers.
+
+
+       _\bd_\be_\bs_\b__\br_\ba_\bn_\bd_\bo_\bm_\b__\bk_\be_\by  generates  a  random  DES  encryption  key
+       (eight bytes), set to odd parity per FIPS  specifications.
+       This  routine  uses  the  current  time, process id, and a
+       counter as a seed for the random  number  generator.   The
+       caller  must   supply space for the output key, pointed to
+       by argument _\bk_\be_\by_\b, then after calling _\bd_\be_\bs_\b__\br_\ba_\bn_\bd_\bo_\bm_\b__\bk_\be_\by  should
+       call  the  _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by routine when needed.  No meaningful
+       value is returned.  Void is  not  used  for  compatibility
+       with other compilers.
+
+
+       _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by calculates a key schedule from all eight bytes
+       of the input key, pointed to by the _\bk_\be_\by argument, and out-
+       puts  the  schedule into the _\bd_\be_\bs_\b__\bk_\be_\by_\b__\bs_\bc_\bh_\be_\bd_\bu_\bl_\be indicated by
+       the _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be argument. Make sure to  pass  a  valid  eight
+       byte  key;  no padding is done.  The key schedule may then
+       be used in subsequent encryption/decryption/checksum oper-
+       ations.   Many  key schedules may be cached for later use.
+       The user is responsible to clear  keys  and  schedules  as
+       soon  as  no  longer  needed, to prevent their disclosure.
+       The routine also checks the key parity, and returns a zero
+       if  the key parity is correct (odd), a -1 indicating a key
+       parity error, or a -2 indicating use of  an  illegal  weak
+       key.  If  an  error  is returned, the key schedule was not
+       created.
+
+
+       _\bd_\be_\bs_\b__\be_\bc_\bb_\b__\be_\bn_\bc_\br_\by_\bp_\bt is the basic DES encryption  routine  that
+       encrypts  or  decrypts a single 8-byte block in e\bel\ble\bec\bct\btr\bro\bon\bni\bic\bc
+       c\bco\bod\bde\be b\bbo\boo\bok\bk mode.  It  always  transforms  the  input  data,
+       pointed  to  by _\bi_\bn_\bp_\bu_\bt_\b, into the output data, pointed to by
+       the _\bo_\bu_\bt_\bp_\bu_\bt argument.
+
+       If the _\be_\bn_\bc_\br_\by_\bp_\bt argument is non-zero, the _\bi_\bn_\bp_\bu_\bt (cleartext)
+       is  encrypted  into  the  _\bo_\bu_\bt_\bp_\bu_\bt  (ciphertext)  using  the
+       key_schedule specified by the  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be  argument,  previ-
+       ously set via _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       If   encrypt  is  zero,  the  _\bi_\bn_\bp_\bu_\bt  (now  ciphertext)  is
+       decrypted into the _\bo_\bu_\bt_\bp_\bu_\bt (now cleartext).
+
+       Input and output may overlap.
+
+       No meaningful value is returned.  Void  is  not  used  for
+       compatibility with other compilers.
+
+
+       _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt  encrypts/decrypts using the c\bci\bip\bph\bhe\ber\br-\b-b\bbl\blo\boc\bck\bk-\b-
+       c\bch\bha\bai\bin\bni\bin\bng\bg m\bmo\bod\bde\be o\bof\bf D\bDE\bES\bS.\b.  If the  _\be_\bn_\bc_\br_\by_\bp_\bt  argument  is  non-
+       zero,  the routine cipher-block-chain encrypts the cleart-
+       ext data pointed to by the _\bi_\bn_\bp_\bu_\bt argument into the cipher-
+       text  pointed  to  by  the  _\bo_\bu_\bt_\bp_\bu_\bt argument, using the key
+       schedule provided by the _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be argument,  and  initial-
+       ization  vector  provided  by  the  _\bi_\bv_\be_\bc argument.  If the
+       _\bl_\be_\bn_\bg_\bt_\bh argument is  not  an  integral  multiple  of  eight
+       bytes,  the last block is copied to a temp and zero filled
+       (highest addresses).  The output  is  ALWAYS  an  integral
+       multiple of eight bytes.
+
+       If   _\be_\bn_\bc_\br_\by_\bp_\bt  is  zero,  the  routine  cipher-block  chain
+       decrypts the (now) ciphertext data pointed to by the _\bi_\bn_\bp_\bu_\bt
+       argument  into  (now)  cleartext  pointed to by the _\bo_\bu_\bt_\bp_\bu_\bt
+       argument using the key schedule provided by  the  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be
+       argument,  and  initialization vector provided by the _\bi_\bv_\be_\bc
+       argument. Decryption ALWAYS operates on integral multiples
+       of 8 bytes, so it will round the _\bl_\be_\bn_\bg_\bt_\bh provided up to the
+       appropriate multiple. Consequently, it will always produce
+       the  rounded-up  number  of bytes of output cleartext. The
+       application must determine if  the  output  cleartext  was
+       zero-padded  due  to  original cleartext lengths that were
+       not integral multiples of 8.
+
+       No errors or meaningful values are returned.  Void is  not
+       used for compatibility with other compilers.
+
+       A characteristic of cbc mode is that changing a single bit
+       of the cleartext, then encrypting using cbc mode,  affects
+       ALL  the  subsequent ciphertext.  This makes cryptanalysis
+       much more difficult. However, modifying a  single  bit  of
+       the  ciphertext, then decrypting, only affects the result-
+       ing cleartext from the modified block and  the  succeeding
+       block.   Therefore,  _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt  is  STRONGLY recom-
+       mended for applications where  indefinite  propagation  of
+       errors is required in order to detect modifications.
+
+
+       _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt  encrypts/decrypts using a modified block
+       chaining  mode.  Its  calling  sequence  is  identical  to
+       _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.   It  differs  in  its  error propagation
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       characteristics.
+
+       _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt is highly recommended for most encryption
+       purposes,  in  that  modification  of  a single bit of the
+       ciphertext will  affect  ALL  the  subsequent  (decrypted)
+       cleartext. Similarly, modifying a single bit of the clear-
+       text will affect ALL the  subsequent  (encrypted)  cipher-
+       text.  "PCBC" mode, on encryption, "xors" both the cleart-
+       ext of block N and the ciphertext resulting from  block  N
+       with the cleartext for block N+1 prior to encrypting block
+       N+1.
+
+       _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm produces an 8 byte cryptographic checksum by
+       cipher-block-chain  encrypting  the cleartext data pointed
+       to by the _\bi_\bn_\bp_\bu_\bt argument. All of the ciphertext output  is
+       discarded,  except the last 8-byte ciphertext block, which
+       is written into the area pointed to by  the  _\bo_\bu_\bt_\bp_\bu_\bt  argu-
+       ment.   It uses the key schedule, provided by the _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be
+       argument and initialization vector provided  by  the  _\bi_\bv_\be_\bc
+       argument.   If the _\bl_\be_\bn_\bg_\bt_\bh argument is not an integral mul-
+       tiple of eight bytes, the last cleartext block  is  copied
+       to a temp and zero filled (highest addresses).  The output
+       is ALWAYS eight bytes.
+
+       The routine also returns an unsigned long,  which  is  the
+       last  (highest  address)  half of the 8 byte checksum com-
+       puted.
+
+
+       _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm produces a checksum by chaining quadratic oper-
+       ations on the cleartext data pointed to by the _\bi_\bn_\bp_\bu_\bt argu-
+       ment. The _\bl_\be_\bn_\bg_\bt_\bh argument  specifies  the  length  of  the
+       input -- only exactly that many bytes are included for the
+       checksum, without any padding.
+
+       The algorithm may be iterated over the same input data, if
+       the _\bo_\bu_\bt_\b__\bc_\bo_\bu_\bn_\bt argument is 2, 3 or 4, and the optional _\bo_\bu_\bt_\b-
+       _\bp_\bu_\bt argument is a non-null pointer .  The default  is  one
+       iteration, and it will not run more than 4 times. Multiple
+       iterations run slower, but provide a  longer  checksum  if
+       desired. The _\bs_\be_\be_\bd argument provides an 8-byte seed for the
+       first iteration. If multiple iterations are requested, the
+       results  of  one  iteration  are automatically used as the
+       seed for the next iteration.
+
+       It returns both an unsigned long checksum  value,  and  if
+       the  _\bo_\bu_\bt_\bp_\bu_\bt argument is not a null pointer, up to 16 bytes
+       of the computed checksum are written into the output.
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       This software has not  yet  been  compiled  or  tested  on
+       machines other than the VAX and the IBM PC.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986 Massachusetts Institute of Technology
+
+       This software may not be exported outside of the US  with-
+       out a special license from the US Dept of Commerce. It may
+       be replaced by any secret  key  block  cipher  with  block
+       length and key length of 8 bytes, as long as the interface
+       is the same as described here.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
diff --git a/usr/share/man/cat3/des_crypt.0 b/usr/share/man/cat3/des_crypt.0
new file mode 100644 (file)
index 0000000..7e68897
--- /dev/null
@@ -0,0 +1,396 @@
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+N\bNA\bAM\bME\bE
+       des_read_password,    des_string_to_key,   des_random_key,
+       des_set_key,       des_ecb_encrypt,       des_cbc_encrypt,
+       des_pcbc_encrypt,  des_cbc_cksum,  des_quad_cksum, - (new)
+       DES encryption
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_r\bre\bea\bad\bd_\b_p\bpa\bas\bss\bsw\bwo\bor\brd\bd(\b(k\bke\bey\by,\b,p\bpr\bro\bom\bmp\bpt\bt,\b,v\bve\ber\bri\bif\bfy\by)\b)
+       des_cblock *key;
+       char *prompt;
+       int verify;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_s\bst\btr\bri\bin\bng\bg_\b_t\bto\bo_\b_k\bke\bey\by(\b(s\bst\btr\br,\b,k\bke\bey\by)\b)
+       c\bch\bha\bar\br *\b*s\bst\btr\br;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_r\bra\ban\bnd\bdo\bom\bm_\b_k\bke\bey\by(\b(k\bke\bey\by)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*k\bke\bey\by;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_e\bec\bcb\bb_\b_e\ben\bnc\bcr\bry\byp\bpt\bt(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,e\ben\bnc\bcr\bry\byp\bpt\bt)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       i\bin\bnt\bt e\ben\bnc\bcr\bry\byp\bpt\bt;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_c\bcb\bbc\bc_\b_e\ben\bnc\bcr\bry\byp\bpt\bt(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,i\biv\bve\bec\bc,\b,e\ben\bnc\bcr\bry\byp\bpt\bt)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\biv\bve\bec\bc;\b;
+       i\bin\bnt\bt e\ben\bnc\bcr\bry\byp\bpt\bt;\b;
+
+       i\bin\bnt\bt d\bde\bes\bs_\b_p\bpc\bcb\bbc\bc_\b_e\ben\bnc\bcr\bry\byp\bpt\bt(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,i\biv\bve\bec\bc,\b,e\ben\bnc\bcr\bry\byp\bpt\bt)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\biv\bve\bec\bc;\b;
+       i\bin\bnt\bt e\ben\bnc\bcr\bry\byp\bpt\bt;\b;
+
+       u\bun\bns\bsi\big\bgn\bne\bed\bd l\blo\bon\bng\bg d\bde\bes\bs_\b_c\bcb\bbc\bc_\b_c\bck\bks\bsu\bum\bm(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,i\biv\bve\bec\bc)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\biv\bve\bec\bc;\b;
+
+       u\bun\bns\bsi\big\bgn\bne\bed\bd l\blo\bon\bng\bg q\bqu\bua\bad\bd_\b_c\bck\bks\bsu\bum\bm(\b(i\bin\bnp\bpu\but\bt,\b,o\bou\but\btp\bpu\but\bt,\b,l\ble\ben\bng\bgt\bth\bh,\b,o\bou\but\bt_\b_c\bco\bou\bun\bnt\bt,\b,s\bse\bee\bed\bd)\b)
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*i\bin\bnp\bpu\but\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*o\bou\but\btp\bpu\but\bt;\b;
+       l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       i\bin\bnt\bt o\bou\but\bt_\b_c\bco\bou\bun\bnt\bt;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk *\b*s\bse\bee\bed\bd;\b;
+
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports various DES encryption related oper-
+       ations.  It  differs  from  the _\bc_\br_\by_\bp_\bt_\b, _\bs_\be_\bt_\bk_\be_\by_\b, _\ba_\bn_\bd _\be_\bn_\bc_\br_\by_\bp_\bt
+       library routines in that it provides a  true  DES  encryp-
+       tion,  without  modifying the algorithm, and executes much
+       faster.
+
+       For each key that may be simultaneously active,  create  a
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be  struct, defined in "des.h". Next, create
+       key schedules  (from  the  8-byte  keys)  as  needed,  via
+       _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b,  prior  to  using  the encryption or checksum
+       routines. Then setup the input  and  output  areas.   Make
+       sure  to  note the restrictions on lengths being multiples
+       of eight bytes. Finally, invoke the  encryption/decryption
+       routines,    _\bd_\be_\bs_\b__\be_\bc_\bb_\b__\be_\bn_\bc_\br_\by_\bp_\bt    or    _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt   or
+       _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b, or, to generate a  cryptographic  check-
+       sum, use _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm (fast) or _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm (slow).
+
+       A  _\bd_\be_\bs_\b__\bc_\bb_\bl_\bo_\bc_\bk struct is an 8 byte block used as the funda-
+       mental unit for DES data and keys, and is defined as:
+
+       t\bty\byp\bpe\bed\bde\bef\bf   u\bun\bns\bsi\big\bgn\bne\bed\bd c\bch\bha\bar\br d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk[\b[8\b8]\b];\b;
+
+       and a _\bd_\be_\bs_\b__\bk_\be_\by_\b__\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, is defined as:
+
+       t\bty\byp\bpe\bed\bde\bef\bf   s\bst\btr\bru\buc\bct\bt     d\bde\bes\bs_\b_k\bks\bs_\b_s\bst\btr\bru\buc\bct\bt     {\b{d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk     _\b_;\b;}\b}
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be[\b[1\b16\b6]\b];\b;
+
+       _\bd_\be_\bs_\b__\br_\be_\ba_\bd_\b__\bp_\ba_\bs_\bs_\bw_\bo_\br_\bd writes the string specified by _\bp_\br_\bo_\bm_\bp_\bt to
+       the standard output, turns  off  echo  (if  possible)  and
+       reads an input string from standard input until terminated
+       with a newline.  If _\bv_\be_\br_\bi_\bf_\by is  non-zero,  it  prompts  and
+       reads  input again, for use in applications such as chang-
+       ing a password; both versions are compared, and the  input
+       is   requested   repeatedly   until   they   match.   Then
+       _\bd_\be_\bs_\b__\br_\be_\ba_\bd_\b__\bp_\ba_\bs_\bs_\bw_\bo_\br_\bd converts the input string into  a  valid
+       DES  key,  internally using the _\bd_\be_\bs_\b__\bs_\bt_\br_\bi_\bn_\bg_\b__\bt_\bo_\b__\bk_\be_\by routine.
+       The newly created key is copied to the area pointed to  by
+       the  _\bk_\be_\by argument.  _\bd_\be_\bs_\b__\br_\be_\ba_\bd_\b__\bp_\ba_\bs_\bs_\bw_\bo_\br_\bd returns a zero if no
+       errors occurred, or a -1 indicating that an error occurred
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       trying to manipulate the terminal echo.
+
+
+       _\bd_\be_\bs_\b__\bs_\bt_\br_\bi_\bn_\bg_\b__\bt_\bo_\b__\bk_\be_\by   converts  an  arbitrary  length  null-
+       terminated string to an 8 byte DES key, with odd byte par-
+       ity,  per  FIPS specification.  A one-way function is used
+       to convert the string to a key, making it  very  difficult
+       to  reconstruct the string from the key.  The _\bs_\bt_\br argument
+       is a pointer to the string, and  _\bk_\be_\by  should  point  to  a
+       _\bd_\be_\bs_\b__\bc_\bb_\bl_\bo_\bc_\bk supplied by the caller to receive the generated
+       key.  No meaningful value is returned. Void  is  not  used
+       for compatibility with other compilers.
+
+
+       _\bd_\be_\bs_\b__\br_\ba_\bn_\bd_\bo_\bm_\b__\bk_\be_\by  generates  a  random  DES  encryption  key
+       (eight bytes), set to odd parity per FIPS  specifications.
+       This  routine  uses  the  current  time, process id, and a
+       counter as a seed for the random  number  generator.   The
+       caller  must   supply space for the output key, pointed to
+       by argument _\bk_\be_\by_\b, then after calling _\bd_\be_\bs_\b__\br_\ba_\bn_\bd_\bo_\bm_\b__\bk_\be_\by  should
+       call  the  _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by routine when needed.  No meaningful
+       value is returned.  Void is  not  used  for  compatibility
+       with other compilers.
+
+
+       _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by calculates a key schedule from all eight bytes
+       of the input key, pointed to by the _\bk_\be_\by argument, and out-
+       puts  the  schedule into the _\bd_\be_\bs_\b__\bk_\be_\by_\b__\bs_\bc_\bh_\be_\bd_\bu_\bl_\be indicated by
+       the _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be argument. Make sure to  pass  a  valid  eight
+       byte  key;  no padding is done.  The key schedule may then
+       be used in subsequent encryption/decryption/checksum oper-
+       ations.   Many  key schedules may be cached for later use.
+       The user is responsible to clear  keys  and  schedules  as
+       soon  as  no  longer  needed, to prevent their disclosure.
+       The routine also checks the key parity, and returns a zero
+       if  the key parity is correct (odd), a -1 indicating a key
+       parity error, or a -2 indicating use of  an  illegal  weak
+       key.  If  an  error  is returned, the key schedule was not
+       created.
+
+
+       _\bd_\be_\bs_\b__\be_\bc_\bb_\b__\be_\bn_\bc_\br_\by_\bp_\bt is the basic DES encryption  routine  that
+       encrypts  or  decrypts a single 8-byte block in e\bel\ble\bec\bct\btr\bro\bon\bni\bic\bc
+       c\bco\bod\bde\be b\bbo\boo\bok\bk mode.  It  always  transforms  the  input  data,
+       pointed  to  by _\bi_\bn_\bp_\bu_\bt_\b, into the output data, pointed to by
+       the _\bo_\bu_\bt_\bp_\bu_\bt argument.
+
+       If the _\be_\bn_\bc_\br_\by_\bp_\bt argument is non-zero, the _\bi_\bn_\bp_\bu_\bt (cleartext)
+       is  encrypted  into  the  _\bo_\bu_\bt_\bp_\bu_\bt  (ciphertext)  using  the
+       key_schedule specified by the  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be  argument,  previ-
+       ously set via _\bd_\be_\bs_\b__\bs_\be_\bt_\b__\bk_\be_\by
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       If   encrypt  is  zero,  the  _\bi_\bn_\bp_\bu_\bt  (now  ciphertext)  is
+       decrypted into the _\bo_\bu_\bt_\bp_\bu_\bt (now cleartext).
+
+       Input and output may overlap.
+
+       No meaningful value is returned.  Void  is  not  used  for
+       compatibility with other compilers.
+
+
+       _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt  encrypts/decrypts using the c\bci\bip\bph\bhe\ber\br-\b-b\bbl\blo\boc\bck\bk-\b-
+       c\bch\bha\bai\bin\bni\bin\bng\bg m\bmo\bod\bde\be o\bof\bf D\bDE\bES\bS.\b.  If the  _\be_\bn_\bc_\br_\by_\bp_\bt  argument  is  non-
+       zero,  the routine cipher-block-chain encrypts the cleart-
+       ext data pointed to by the _\bi_\bn_\bp_\bu_\bt argument into the cipher-
+       text  pointed  to  by  the  _\bo_\bu_\bt_\bp_\bu_\bt argument, using the key
+       schedule provided by the _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be argument,  and  initial-
+       ization  vector  provided  by  the  _\bi_\bv_\be_\bc argument.  If the
+       _\bl_\be_\bn_\bg_\bt_\bh argument is  not  an  integral  multiple  of  eight
+       bytes,  the last block is copied to a temp and zero filled
+       (highest addresses).  The output  is  ALWAYS  an  integral
+       multiple of eight bytes.
+
+       If   _\be_\bn_\bc_\br_\by_\bp_\bt  is  zero,  the  routine  cipher-block  chain
+       decrypts the (now) ciphertext data pointed to by the _\bi_\bn_\bp_\bu_\bt
+       argument  into  (now)  cleartext  pointed to by the _\bo_\bu_\bt_\bp_\bu_\bt
+       argument using the key schedule provided by  the  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be
+       argument,  and  initialization vector provided by the _\bi_\bv_\be_\bc
+       argument. Decryption ALWAYS operates on integral multiples
+       of 8 bytes, so it will round the _\bl_\be_\bn_\bg_\bt_\bh provided up to the
+       appropriate multiple. Consequently, it will always produce
+       the  rounded-up  number  of bytes of output cleartext. The
+       application must determine if  the  output  cleartext  was
+       zero-padded  due  to  original cleartext lengths that were
+       not integral multiples of 8.
+
+       No errors or meaningful values are returned.  Void is  not
+       used for compatibility with other compilers.
+
+       A characteristic of cbc mode is that changing a single bit
+       of the cleartext, then encrypting using cbc mode,  affects
+       ALL  the  subsequent ciphertext.  This makes cryptanalysis
+       much more difficult. However, modifying a  single  bit  of
+       the  ciphertext, then decrypting, only affects the result-
+       ing cleartext from the modified block and  the  succeeding
+       block.   Therefore,  _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt  is  STRONGLY recom-
+       mended for applications where  indefinite  propagation  of
+       errors is required in order to detect modifications.
+
+
+       _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt  encrypts/decrypts using a modified block
+       chaining  mode.  Its  calling  sequence  is  identical  to
+       _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.   It  differs  in  its  error propagation
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+       characteristics.
+
+       _\bd_\be_\bs_\b__\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt is highly recommended for most encryption
+       purposes,  in  that  modification  of  a single bit of the
+       ciphertext will  affect  ALL  the  subsequent  (decrypted)
+       cleartext. Similarly, modifying a single bit of the clear-
+       text will affect ALL the  subsequent  (encrypted)  cipher-
+       text.  "PCBC" mode, on encryption, "xors" both the cleart-
+       ext of block N and the ciphertext resulting from  block  N
+       with the cleartext for block N+1 prior to encrypting block
+       N+1.
+
+       _\bd_\be_\bs_\b__\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm produces an 8 byte cryptographic checksum by
+       cipher-block-chain  encrypting  the cleartext data pointed
+       to by the _\bi_\bn_\bp_\bu_\bt argument. All of the ciphertext output  is
+       discarded,  except the last 8-byte ciphertext block, which
+       is written into the area pointed to by  the  _\bo_\bu_\bt_\bp_\bu_\bt  argu-
+       ment.   It uses the key schedule, provided by the _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be
+       argument and initialization vector provided  by  the  _\bi_\bv_\be_\bc
+       argument.   If the _\bl_\be_\bn_\bg_\bt_\bh argument is not an integral mul-
+       tiple of eight bytes, the last cleartext block  is  copied
+       to a temp and zero filled (highest addresses).  The output
+       is ALWAYS eight bytes.
+
+       The routine also returns an unsigned long,  which  is  the
+       last  (highest  address)  half of the 8 byte checksum com-
+       puted.
+
+
+       _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm produces a checksum by chaining quadratic oper-
+       ations on the cleartext data pointed to by the _\bi_\bn_\bp_\bu_\bt argu-
+       ment. The _\bl_\be_\bn_\bg_\bt_\bh argument  specifies  the  length  of  the
+       input -- only exactly that many bytes are included for the
+       checksum, without any padding.
+
+       The algorithm may be iterated over the same input data, if
+       the _\bo_\bu_\bt_\b__\bc_\bo_\bu_\bn_\bt argument is 2, 3 or 4, and the optional _\bo_\bu_\bt_\b-
+       _\bp_\bu_\bt argument is a non-null pointer .  The default  is  one
+       iteration, and it will not run more than 4 times. Multiple
+       iterations run slower, but provide a  longer  checksum  if
+       desired. The _\bs_\be_\be_\bd argument provides an 8-byte seed for the
+       first iteration. If multiple iterations are requested, the
+       results  of  one  iteration  are automatically used as the
+       seed for the next iteration.
+
+       It returns both an unsigned long checksum  value,  and  if
+       the  _\bo_\bu_\bt_\bp_\bu_\bt argument is not a null pointer, up to 16 bytes
+       of the computed checksum are written into the output.
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+DES_CRYPT(3)         BSD Programmer's Manual         DES_CRYPT(3)
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       This software has not  yet  been  compiled  or  tested  on
+       machines other than the VAX and the IBM PC.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986 Massachusetts Institute of Technology
+
+       This software may not be exported outside of the US  with-
+       out a special license from the US Dept of Commerce. It may
+       be replaced by any secret  key  block  cipher  with  block
+       length and key length of 8 bytes, as long as the interface
+       is the same as described here.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
diff --git a/usr/share/man/cat3/kerberos.0 b/usr/share/man/cat3/kerberos.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb.0 b/usr/share/man/cat3/krb.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_ck_repl.0 b/usr/share/man/cat3/krb_ck_repl.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_get_cred.0 b/usr/share/man/cat3/krb_get_cred.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_kntoln.0 b/usr/share/man/cat3/krb_kntoln.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_mk_err.0 b/usr/share/man/cat3/krb_mk_err.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_mk_priv.0 b/usr/share/man/cat3/krb_mk_priv.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_mk_req.0 b/usr/share/man/cat3/krb_mk_req.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_mk_safe.0 b/usr/share/man/cat3/krb_mk_safe.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_rd_err.0 b/usr/share/man/cat3/krb_rd_err.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_rd_req.0 b/usr/share/man/cat3/krb_rd_req.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_rd_safe.0 b/usr/share/man/cat3/krb_rd_safe.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_realmofhost.0 b/usr/share/man/cat3/krb_realmofhost.0
new file mode 100644 (file)
index 0000000..901419e
--- /dev/null
@@ -0,0 +1,198 @@
+
+
+
+KRB_REALMOFHOST(3)   BSD Programmer's Manual   KRB_REALMOFHOST(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_realmofhost,       krb_get_phost,      krb_get_krbhst,
+       krb_get_admhst, krb_get_lrealm - additional Kerberos util-
+       ity routines
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+       c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_r\bre\bea\bal\blm\bmo\bof\bfh\bho\bos\bst\bt(\b(h\bho\bos\bst\bt)\b)
+       c\bch\bha\bar\br *\b*h\bho\bos\bst\bt;\b;
+
+       c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_g\bge\bet\bt_\b_p\bph\bho\bos\bst\bt(\b(a\bal\bli\bia\bas\bs)\b)
+       c\bch\bha\bar\br *\b*a\bal\bli\bia\bas\bs;\b;
+
+       k\bkr\brb\bb_\b_g\bge\bet\bt_\b_k\bkr\brb\bbh\bhs\bst\bt(\b(h\bho\bos\bst\bt,\b,r\bre\bea\bal\blm\bm,\b,n\bn)\b)
+       c\bch\bha\bar\br *\b*h\bho\bos\bst\bt;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       i\bin\bnt\bt n\bn;\b;
+
+       k\bkr\brb\bb_\b_g\bge\bet\bt_\b_a\bad\bdm\bmh\bhs\bst\bt(\b(h\bho\bos\bst\bt,\b,r\bre\bea\bal\blm\bm,\b,n\bn)\b)
+       c\bch\bha\bar\br *\b*h\bho\bos\bst\bt;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       i\bin\bnt\bt n\bn;\b;
+
+       k\bkr\brb\bb_\b_g\bge\bet\bt_\b_l\blr\bre\bea\bal\blm\bm(\b(r\bre\bea\bal\blm\bm,\b,n\bn)\b)
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       i\bin\bnt\bt n\bn;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\br_\bb_\b__\br_\be_\ba_\bl_\bm_\bo_\bf_\bh_\bo_\bs_\bt  returns  the  Kerberos  realm of the host
+       _\bh_\bo_\bs_\bt,   as   determined   by   the    translation    table
+       _\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bk_\br_\bb_\b._\br_\be_\ba_\bl_\bm_\bs.   _\bh_\bo_\bs_\bt  should  be  the fully-
+       qualified domain-style primary host name of  the  host  in
+       question.   In  order to prevent certain security attacks,
+       this routine must either have  _\ba  _\bp_\br_\bi_\bo_\br_\bi  knowledge  of  a
+       host's realm, or obtain such information securely.
+
+       The  format  of  the  translation  file  is  described  by
+       _\bk_\br_\bb_\b._\br_\be_\ba_\bl_\bm_\bs(5).  If _\bh_\bo_\bs_\bt exactly matches a host_name  line,
+       the  corresponding  realm  is returned.  Otherwise, if the
+       domain portion of _\bh_\bo_\bs_\bt matches  a  domain_name  line,  the
+       corresponding  realm  is  returned.   If  _\bh_\bo_\bs_\bt  contains a
+       domain, but no translation is found, _\bh_\bo_\bs_\bt's domain is con-
+       verted  to  upper-case  and returned.  If _\bh_\bo_\bs_\bt contains no
+       discernible domain, or an error occurs,  the  local  realm
+       name, as supplied by _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bl_\br_\be_\ba_\bl_\bm(3), is returned.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bp_\bh_\bo_\bs_\bt  converts  the  hostname _\ba_\bl_\bi_\ba_\bs (which can be
+       either an official name or an  alias)  into  the  instance
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KRB_REALMOFHOST(3)   BSD Programmer's Manual   KRB_REALMOFHOST(3)
+
+
+       name  to  be  used  in obtaining Kerberos tickets for most
+       services, including the Berkeley rcmd suite (rlogin,  rcp,
+       rsh).
+       The  current  convention is to return the first segment of
+       the official domain-style name after conversion  to  lower
+       case.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bk_\br_\bb_\bh_\bs_\bt  fills in _\bh_\bo_\bs_\bt with the hostname of the _\bnth
+       host running a Kerberos key distribution center (KDC)  for
+       realm  _\br_\be_\ba_\bl_\bm,  as  specified  in  the  configuration  file
+       (_\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bk_\br_\bb_\b._\bc_\bo_\bn_\bf).   The  configuration  file  is
+       described  by  _\bk_\br_\bb_\b._\bc_\bo_\bn_\bf(5).   If  the host is successfully
+       filled in, the routine returns KSUCCESS.  If the file can-
+       not  be opened, and _\bn equals 1, then the value of KRB_HOST
+       as defined in  _\b<_\bk_\br_\bb_\b._\bh_\b>  is  filled  in,  and  KSUCCESS  is
+       returned.   If there are fewer than _\bn hosts running a Ker-
+       beros KDC for the requested realm,  or  the  configuration
+       file is malformed, the routine returns KFAILURE.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\ba_\bd_\bm_\bh_\bs_\bt  fills in _\bh_\bo_\bs_\bt with the hostname of the _\bnth
+       host running a Kerberos KDC database administration server
+       for  realm  _\br_\be_\ba_\bl_\bm,  as specified in the configuration file
+       (_\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bk_\br_\bb_\b._\bc_\bo_\bn_\bf).  If the file cannot be  opened
+       or is malformed, or there are fewer than _\bn hosts running a
+       Kerberos KDC database administration server,  the  routine
+       returns KFAILURE.
+
+       The   character   arrays   used   as   return  values  for
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bk_\br_\bb_\bh_\bs_\bt, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\ba_\bd_\bm_\bh_\bs_\bt, should be large enough  to
+       hold any hostname (MAXHOSTNAMELEN from <sys/param.h>).
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bl_\br_\be_\ba_\bl_\bm  fills  in  _\br_\be_\ba_\bl_\bm with the _\bnth realm of the
+       local host, as specified in the configuration file.  _\br_\be_\ba_\bl_\bm
+       should  be at least REALM_SZ (from _\b<_\bk_\br_\bb_\b._\bh_\b>_\b)characters_\bl_\bo_\bn_\bg_\b.
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(3), krb.conf(5), krb.realms(5)
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/krb.realms
+                           translation  file  for   host-to-realm
+                           mapping.
+
+       /etc/kerberosIV/krb.conf
+                           local realm-name and realm/server con-
+                           figuration file.
+
+B\bBU\bUG\bGS\bS
+       The current convention for instance names is too  limited;
+       the full domain name should be used.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KRB_REALMOFHOST(3)   BSD Programmer's Manual   KRB_REALMOFHOST(3)
+
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bl_\br_\be_\ba_\bl_\bm  currently  only supports _\bn = 1.  It should
+       really consult the user's ticket cache  to  determine  the
+       user's current realm, rather than consulting a file on the
+       host.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_sendauth.0 b/usr/share/man/cat3/krb_sendauth.0
new file mode 100644 (file)
index 0000000..881666b
--- /dev/null
@@ -0,0 +1,264 @@
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_sendauth,  krb_recvauth, krb_net_write, krb_net_read -
+       Kerberos routines for sending authentication  via  network
+       stream sockets
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\ben\bnd\bda\bau\but\bth\bh(\b(o\bop\bpt\bti\bio\bon\bns\bs,\b, f\bfd\bd,\b, k\bkt\bte\bex\bxt\bt,\b, s\bse\ber\brv\bvi\bic\bce\be,\b, i\bin\bns\bst\bt,\b, r\bre\bea\bal\blm\bm,\b,
+                 c\bch\bhe\bec\bck\bks\bsu\bum\bm,\b,  m\bms\bsg\bg_\b_d\bda\bat\bta\ba,\b,  c\bcr\bre\bed\bd,\b,   s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,   l\bla\bad\bdd\bdr\br,\b,
+                 f\bfa\bad\bdd\bdr\br,\b, v\bve\ber\brs\bsi\bio\bon\bn)\b)
+       l\blo\bon\bng\bg o\bop\bpt\bti\bio\bon\bns\bs;\b;
+       i\bin\bnt\bt f\bfd\bd;\b;
+       K\bKT\bTE\bEX\bXT\bT k\bkt\bte\bex\bxt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be,\b, *\b*i\bin\bns\bst\bt,\b, *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bcr\bre\bed\bd;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*l\bla\bad\bdd\bdr\br,\b, *\b*f\bfa\bad\bdd\bdr\br;\b;
+       c\bch\bha\bar\br *\b*v\bve\ber\brs\bsi\bio\bon\bn;\b;
+
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\bre\bec\bcv\bva\bau\but\bth\bh(\b(o\bop\bpt\bti\bio\bon\bns\bs,\b, f\bfd\bd,\b, k\bkt\bte\bex\bxt\bt,\b, s\bse\ber\brv\bvi\bic\bce\be,\b, i\bin\bns\bst\bt,\b, f\bfa\bad\bdd\bdr\br,\b,
+                 l\bla\bad\bdd\bdr\br,\b, a\bau\but\bth\bh_\b_d\bda\bat\bta\ba,\b, f\bfi\bil\ble\ben\bna\bam\bme\be,\b, s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b, v\bve\ber\brs\bsi\bio\bon\bn)\b)
+       l\blo\bon\bng\bg o\bop\bpt\bti\bio\bon\bns\bs;\b;
+       i\bin\bnt\bt f\bfd\bd;\b;
+       K\bKT\bTE\bEX\bXT\bT k\bkt\bte\bex\bxt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be,\b, *\b*i\bin\bns\bst\bt;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*f\bfa\bad\bdd\bdr\br,\b, *\b*l\bla\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bau\but\bth\bh_\b_d\bda\bat\bta\ba;\b;
+       c\bch\bha\bar\br *\b*f\bfi\bil\ble\ben\bna\bam\bme\be;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       c\bch\bha\bar\br *\b*v\bve\ber\brs\bsi\bio\bon\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_n\bne\bet\bt_\b_w\bwr\bri\bit\bte\be(\b(f\bfd\bd,\b, b\bbu\buf\bf,\b, l\ble\ben\bn)\b)
+       i\bin\bnt\bt f\bfd\bd;\b;
+       c\bch\bha\bar\br *\b*b\bbu\buf\bf;\b;
+       i\bin\bnt\bt l\ble\ben\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_n\bne\bet\bt_\b_r\bre\bea\bad\bd(\b(f\bfd\bd,\b, b\bbu\buf\bf,\b, l\ble\ben\bn)\b)
+       i\bin\bnt\bt f\bfd\bd;\b;
+       c\bch\bha\bar\br *\b*b\bbu\buf\bf;\b;
+       i\bin\bnt\bt l\ble\ben\bn;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       These functions, which are built on top of the  core  Ker-
+       beros  library,  provide a convenient means for client and
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+       server programs to send  authentication  messages  to  one
+       another  through  network  connections.   The _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh
+       function sends an authenticated  ticket  from  the  client
+       program  to  the server program by writing the ticket to a
+       network socket.  The _\bk_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh  function  receives  the
+       ticket from the client by reading from a network socket.
+
+
+K\bKR\bRB\bB_\b_S\bSE\bEN\bND\bDA\bAU\bUT\bTH\bH
+       This  function  writes  the  ticket  to the network socket
+       specified by the file descriptor _\bf_\bd_\b, returning KSUCCESS if
+       the  write  proceeds successfully, and an error code if it
+       does not.
+
+       The _\bk_\bt_\be_\bx_\bt argument should point to an  allocated  KTEXT_ST
+       structure.  The _\bs_\be_\br_\bv_\bi_\bc_\be_\b, _\bi_\bn_\bs_\bt_\b, and _\br_\be_\ba_\bl_\bm arguments specify
+       the server program's Kerberos  principal  name,  instance,
+       and  realm.   If  you  are  writing a client that uses the
+       local realm exclusively, you can set the _\br_\be_\ba_\bl_\bm argument to
+       NULL.
+
+       The  _\bv_\be_\br_\bs_\bi_\bo_\bn argument allows the client program to pass an
+       application-specific version string that the  server  pro-
+       gram  can  then match against its own version string.  The
+       _\bv_\be_\br_\bs_\bi_\bo_\bn string can be up to  KSEND_VNO_LEN  (see  _\b<_\bk_\br_\bb_\b._\bh_\b>)
+       characters in length.
+
+       The  _\bc_\bh_\be_\bc_\bk_\bs_\bu_\bm argument can be used to pass checksum infor-
+       mation to the  server  program.   The  client  program  is
+       responsible  for specifying this information.  This check-
+       sum  information   is   difficult   to   corrupt   because
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh passes it over the network in encrypted form.
+       The _\bc_\bh_\be_\bc_\bk_\bs_\bu_\bm argument is passed as the  checksum  argument
+       to _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq.
+
+       You  can set _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b'_\bs other arguments to NULL unless
+       you want  the  client  and  server  programs  to  mutually
+       authenticate  themselves.  In the case of mutual authenti-
+       cation, the client authenticates itself to the server pro-
+       gram,  and  demands  that  the server in turn authenticate
+       itself to the client.
+
+
+K\bKR\bRB\bB_\b_S\bSE\bEN\bND\bDA\bAU\bUT\bTH\bH A\bAN\bND\bD M\bMU\bUT\bTU\bUA\bAL\bL A\bAU\bUT\bTH\bHE\bEN\bNT\bTI\bIC\bCA\bAT\bTI\bIO\bON\bN
+       If you want mutual authentication, make sure that you read
+       all  pending  data  from  the  local socket before calling
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b.   Set  _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b'_\bs  _\bo_\bp_\bt_\bi_\bo_\bn_\bs  argument  to
+       K\bKO\bOP\bPT\bT_\b_D\bDO\bO_\b_M\bMU\bUT\bTU\bUA\bAL\bL  (this macro is defined in the _\bk_\br_\bb_\b._\bh file);
+       make sure that the _\bl_\ba_\bd_\bd_\br argument points to the address of
+       the  local  socket,  and  that _\bf_\ba_\bd_\bd_\br points to the foreign
+       socket's network address.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+       _\bK_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh fills  in  the  other  arguments--  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba,
+       _\bc_\br_\be_\bd,  and  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be--before  sending  the  ticket  to the
+       server program.  You must,  however,  allocate  space  for
+       these arguments before calling the function.
+
+       _\bK_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh supports two other options: K\bKO\bOP\bPT\bT_\b_D\bDO\bON\bNT\bT_\b_M\bMK\bK_\b_R\bRE\bEQ\bQ,\b,
+       and  K\bKO\bOP\bPT\bT_\b_D\bDO\bON\bNT\bT_\b_C\bCA\bAN\bNO\bON\bN.\b.   If  called  with  _\bo_\bp_\bt_\bi_\bo_\bn_\bs  set  as
+       KOPT_DONT_MK_REQ, _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh will not use the _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq
+       function to retrieve the ticket from the Kerberos  server.
+       The  _\bk_\bt_\be_\bx_\bt  argument  must point to an existing ticket and
+       authenticator (such as would be  created  by  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq),
+       and  the  _\bs_\be_\br_\bv_\bi_\bc_\be_\b, _\bi_\bn_\bs_\bt_\b, and _\br_\be_\ba_\bl_\bm arguments can be set to
+       NULL.
+
+       If   called   with   _\bo_\bp_\bt_\bi_\bo_\bn_\bs   set   as   KOPT_DONT_CANON,
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh  will  not  convert the service's instance to
+       canonical form using _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bp_\bh_\bo_\bs_\bt(3).
+
+       If you want to call _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh with a  multiple  _\bo_\bp_\bt_\bi_\bo_\bn_\bs
+       specification,  construct  _\bo_\bp_\bt_\bi_\bo_\bn_\bs  as a bitwise-OR of the
+       options you want to specify.
+
+
+K\bKR\bRB\bB_\b_R\bRE\bEC\bCV\bVA\bAU\bUT\bTH\bH
+       The _\bk_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh  function  reads  a  ticket/authenticator
+       pair  from  the socket pointed to by the _\bf_\bd argument.  Set
+       the _\bo_\bp_\bt_\bi_\bo_\bn_\bs  argument  as  a  bitwise-OR  of  the  options
+       desired.   Currently  only KOPT_DO_MUTUAL is useful to the
+       receiver.
+
+       The _\bk_\bt_\be_\bx_\bt argument should point to an  allocated  KTEXT_ST
+       structure.     _\bK_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh    fills    _\bk_\bt_\be_\bx_\bt   with   the
+       ticket/authenticator pair read from _\bf_\bd, then passes it  to
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq.
+
+       The  _\bs_\be_\br_\bv_\bi_\bc_\be  and _\bi_\bn_\bs_\bt arguments specify the expected ser-
+       vice and instance for  which  the  ticket  was  generated.
+       They are also passed to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  The _\bi_\bn_\bs_\bt argument may
+       be set to "*" if the caller wishes _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq to  fill  in
+       the  instance  used  (note that there must be space in the
+       _\bi_\bn_\bs_\bt  argument  to  hold  a  full   instance   name,   see
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq(3)).
+
+       The _\bf_\ba_\bd_\bd_\br argument should point to the address of the peer
+       which is presenting the ticket.   It  is  also  passed  to
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq.
+
+       If the client and server plan to mutually authenticate one
+       another, the _\bl_\ba_\bd_\bd_\br argument  should  point  to  the  local
+       address  of  the  file  descriptor.  Otherwise you can set
+       this argument to NULL.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+       The  _\ba_\bu_\bt_\bh_\b__\bd_\ba_\bt_\ba  argument  should  point  to  an  allocated
+       AUTH_DAT   area.   It  is  passed  to  and  filled  in  by
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq.  The  checksum  passed  to  the  corresponding
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh   is  available  as  part  of  the  filled-in
+       AUTH_DAT area.
+
+       The _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be argument specifies  the  filename  which  the
+       service  program  should  use  to  obtain its service key.
+       _\bK_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh passes _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be to the  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq  function.
+       If  you  set this argument to "", _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq looks for the
+       service key in the file _\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bs_\br_\bv_\bt_\ba_\bb_\b.
+
+       If the client and server are performing mutual authentica-
+       tion,  the  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be argument should point to an allocated
+       Key_schedule.  Otherwise it is ignored and may be NULL.
+
+       The _\bv_\be_\br_\bs_\bi_\bo_\bn argument should point to a character array  of
+       at  least  KSEND_VNO_LEN characters.  It is filled in with
+       the version string passed by the client to _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b.
+
+
+K\bKR\bRB\bB_\b_N\bNE\bET\bT_\b_W\bWR\bRI\bIT\bTE\bE A\bAN\bND\bD K\bKR\bRB\bB_\b_N\bNE\bET\bT_\b_R\bRE\bEA\bAD\bD
+       The _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\bw_\br_\bi_\bt_\be function emulates  the  write(2)  system
+       call, but guarantees that all data specified is written to
+       _\bf_\bd before returning, unless an error condition occurs.
+
+       The _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\br_\be_\ba_\bd  function  emulates  the  read(2)  system
+       call,  but guarantees that the requested amount of data is
+       read from _\bf_\bd before returning, unless an  error  condition
+       occurs.
+
+
+B\bBU\bUG\bGS\bS
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b,     _\bk_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh_\b,     _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\bw_\br_\bi_\bt_\be_\b,     and
+       _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\br_\be_\ba_\bd will not work properly on sockets set to non-
+       blocking I/O mode.
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       krb_mk_req(3), krb_rd_req(3), krb_get_phost(3)
+
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+       John T. Kohl, MIT Project Athena
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       Copyright  1988,  Massachusetts Instititute of Technology.
+       For copying and distribution information, please  see  the
+       file <mit-copyright.h>.
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_set_key.0 b/usr/share/man/cat3/krb_set_key.0
new file mode 100644 (file)
index 0000000..ac1157f
--- /dev/null
@@ -0,0 +1,462 @@
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_mk_req,     krb_rd_req,    krb_kntoln,    krb_set_key,
+       krb_get_cred,   krb_mk_priv,   krb_rd_priv,   krb_mk_safe,
+       krb_rd_safe,  krb_mk_err,  krb_rd_err,  krb_ck_repl - Ker-
+       beros authentication library
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_m\bmk\bk_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bch\bhe\bec\bck\bks\bsu\bum\bm)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\brd\bd_\b_r\bre\beq\bq(\b(a\bau\but\bth\bhe\ben\bnt\bt,\b,s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br,\b,a\bad\bd,\b,f\bfn\bn)\b)
+       K\bKT\bTE\bEX\bXT\bT a\bau\but\bth\bhe\ben\bnt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       u\bu_\b_l\blo\bon\bng\bg f\bfr\bro\bom\bm_\b_a\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*f\bfn\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_k\bkn\bnt\bto\bol\bln\bn(\b(a\bad\bd,\b,l\bln\bna\bam\bme\be)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bad\bd;\b;
+       c\bch\bha\bar\br *\b*l\bln\bna\bam\bme\be;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\bet\bt_\b_k\bke\bey\by(\b(k\bke\bey\by,\b,c\bcv\bvt\bt)\b)
+       c\bch\bha\bar\br *\b*k\bke\bey\by;\b;
+       i\bin\bnt\bt c\bcv\bvt\bt;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(s\bse\ber\brv\bvi\bic\bce\be,\b,i\bin\bns\bst\bta\ban\bnc\bce\be,\b,r\bre\bea\bal\blm\bm,\b,c\bc)\b)
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be;\b;
+       c\bch\bha\bar\br *\b*i\bin\bns\bst\bta\ban\bnc\bce\be;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       d\bde\bes\bs_\b_k\bke\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_p\bpr\bri\biv\bv(\b(i\bin\bn,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,o\bou\but\bt,\b,i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       u\bu_\b_l\blo\bon\bng\bg i\bin\bn_\b_l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_s\bsa\baf\bfe\be(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,k\bke\bey\by,\b,s\bse\ben\bnd\bde\ber\br,\b,r\bre\bec\bce\bei\biv\bve\ber\br,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       d\bde\bes\bs_\b_c\bcb\bbl\blo\boc\bck\bk k\bke\bey\by;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*s\bse\ben\bnd\bde\ber\br;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*r\bre\bec\bce\bei\biv\bve\ber\br;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_m\bmk\bk_\b_e\ber\brr\br(\b(o\bou\but\bt,\b,c\bco\bod\bde\be,\b,s\bst\btr\bri\bin\bng\bg)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*o\bou\but\bt;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       c\bch\bha\bar\br *\b*s\bst\btr\bri\bin\bng\bg;\b;
+
+       l\blo\bon\bng\bg k\bkr\brb\bb_\b_r\brd\bd_\b_e\ber\brr\br(\b(i\bin\bn,\b,l\ble\ben\bng\bgt\bth\bh,\b,c\bco\bod\bde\be,\b,m\bms\bsg\bg_\b_d\bda\bat\bta\ba)\b)
+       u\bu_\b_c\bch\bha\bar\br *\b*i\bin\bn;\b;
+       u\bu_\b_l\blo\bon\bng\bg l\ble\ben\bng\bgt\bth\bh;\b;
+       l\blo\bon\bng\bg c\bco\bod\bde\be;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This library supports network authentication  and  various
+       related  operations.   The  library contains many routines
+       beyond those described in this man page, but they are  not
+       intended to be used directly.  Instead, they are called by
+       the routines that are described, the authentication server
+       and the login program.
+
+       _\bk_\br_\bb_\b__\be_\br_\br_\b__\bt_\bx_\bt_\b[_\b] contains text string descriptions of various
+       Kerberos error codes returned  by  some  of  the  routines
+       below.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq takes a pointer to a text structure in which an
+       authenticator is to be built.  It  also  takes  the  name,
+       instance,  and  realm  of  the  service  to be used and an
+       optional checksum.  It is up to the application to  decide
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       how to generate the checksum.  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq then retrieves a
+       ticket for the desired service and creates an  authentica-
+       tor.   The authenticator is built in _\ba_\bu_\bt_\bh_\be_\bn_\bt and is acces-
+       sible to the calling procedure.
+
+       It is up to the application to get  the  authenticator  to
+       the  service  where it will be read by _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  Unless
+       an attacker possesses the session  key  contained  in  the
+       ticket,  it  will  be  unable to modify the authenticator.
+       Thus, the checksum can be used to verify the  authenticity
+       of the other data that will pass through a connection.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq takes an authenticator of type K\bKT\bTE\bEX\bXT\bT,\b, a service
+       name, an instance, the address of the host originating the
+       request,  and  a  pointer  to a structure of type A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT
+       which is filled in  with  information  obtained  from  the
+       authenticator.   It  also optionally takes the name of the
+       file in which it will find the secret key(s) for the  ser-
+       vice.   If  the  supplied  _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be contains "*", then the
+       first service key with the same service name found in  the
+       service  key  file will be used, and the _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be argument
+       will be filled in with the chosen  instance.   This  means
+       that  the  caller  must provide space for such an instance
+       name.
+
+       It is used to find out  information  about  the  principal
+       when  a  request  has been made to a service.  It is up to
+       the application protocol to get the authenticator from the
+       client  to  the service.  The authenticator is then passed
+       to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq to extract the desired information.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq returns zero (RD_AP_OK) upon successful authen-
+       tication.   If a packet was forged, modified, or replayed,
+       authentication will fail.  If the authentication fails,  a
+       non-zero value is returned indicating the particular prob-
+       lem encountered.  See _\bk_\br_\bb_\b._\bh for the list of error codes.
+
+       If the last argument is the null string  (""),  krb_rd_req
+       will  use  the  file /etc/srvtab to find its keys.  If the
+       last argument is NULL, it will assume  that  the  key  has
+       been  set  by _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by and will not bother looking fur-
+       ther.
+
+       _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn converts a Kerberos name to a local  name.   It
+       takes  a  structure of type AUTH_DAT and uses the name and
+       instance to look in the database /etc/aname  to  find  the
+       corresponding  local name.  The local name is returned and
+       can be used by an application to change uids, directories,
+       or  other  parameters.  It is not an integral part of Ker-
+       beros, but is instead provided to support the use of  Ker-
+       beros in existing utilities.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by  takes as an argument a des key.  It then cre-
+       ates a key schedule from it and saves the original key  to
+       be  used  as  an initialization vector.  It is used to set
+       the server's key which must be used to decrypt tickets.
+
+       If called with a  non-zero  second  argument,  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by
+       will  first  convert  the input from a string of arbitrary
+       length to a DES key by encrypting it with a one-way  func-
+       tion.
+
+       In   most  cases  it  should  not  be  necessary  to  call
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by_\b.  The necessary keys will usually be  obtained
+       and  set  inside  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bk_\be_\by is provided for
+       those applications that do not wish to place the  applica-
+       tion keys on disk.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd  searches  the  caller's  ticket  file  for a
+       ticket for the given service, instance, and realm; and, if
+       a  ticket  is found, fills in the given CREDENTIALS struc-
+       ture with the ticket information.
+
+       If the ticket was found, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd returns  GC_OK.   If
+       the  ticket  file  can't  be found, can't be read, doesn't
+       belong to the user (other  than  root),  isn't  a  regular
+       file,  or  is  in  the  wrong  mode, the error GC_TKFIL is
+       returned.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv creates an  encrypted,  authenticated  message
+       from  any arbitrary application data, pointed to by _\bi_\bn and
+       _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh bytes long.  The private session key, pointed to
+       by _\bk_\be_\by and the key schedule, _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b, are used to encrypt
+       the data and some header information  using  _\bp_\bc_\bb_\bc_\b__\be_\bn_\bc_\br_\by_\bp_\bt_\b.
+       _\bs_\be_\bn_\bd_\be_\br  and  _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the
+       two parties.  In addition to providing privacy, this  pro-
+       tocol  message  protects against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv   decrypts   and   authenticates   a  received
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv message.  _\bi_\bn points to the  beginning  of  the
+       received  message, whose length is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.
+       The private session key, pointed to by _\bk_\be_\by_\b,  and  the  key
+       schedule,  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be_\b,  are  used  to decrypt and verify the
+       received message.  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba is  a  pointer  to  a  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       struct,  defined  in  _\bk_\br_\bb_\b._\bh_\b.   The  routine  fills  in the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the decrypted application
+       data,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,
+       _\bt_\bi_\bm_\be_\b__\bs_\be_\bc and _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs with the timestamps in the  message,
+       and  _\bs_\bw_\ba_\bp  with  a  1 if the byte order of the receiver is
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       different than that of the sender.  (The application  must
+       still determine if it is appropriate to byte-swap applica-
+       tion data; the Kerberos protocol fields are already  taken
+       care  of).  The _\bh_\ba_\bs_\bh field returns a value useful as input
+       to the _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl routine.
+
+       The routine returns zero if ok, or a Kerberos error  code.
+       Modified messages and old messages cause errors, but it is
+       up to the caller to check the time sequence  of  messages,
+       and  to  check  against  recently  replayed messages using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be creates an authenticated, but unencrypted mes-
+       sage from any arbitrary application data, pointed to by _\bi_\bn
+       and  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh  bytes  long.   The  private  session  key,
+       pointed to by _\bk_\be_\by_\b, is used to seed the _\bq_\bu_\ba_\bd_\b__\bc_\bk_\bs_\bu_\bm_\b(_\b) check-
+       sum algorithm used as part of the authentication.   _\bs_\be_\bn_\bd_\be_\br
+       and _\br_\be_\bc_\be_\bi_\bv_\be_\br point to the Internet address of the two par-
+       ties.  This message does not  provide  privacy,  but  does
+       protect  (via detection) against modifications, insertions
+       or replays.   The  encapsulated  message  and  header  are
+       placed  in  the  area  pointed  to  by _\bo_\bu_\bt and the routine
+       returns the length of the  output,  or  -1  indicating  an
+       error.  The authentication provided by this routine is not
+       as strong as that provided by _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv or by  computing
+       the  checksum  using  _\bc_\bb_\bc_\b__\bc_\bk_\bs_\bu_\bm  instead,  both  of  which
+       authenticate via DES.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be authenticates a received _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be  message.
+       _\bi_\bn  points to the beginning of the received message, whose
+       length is specified in  _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.   The  private  session
+       key,  pointed  to by _\bk_\be_\by_\b, is used to seed the quad_cksum()
+       routine as part of  the  authentication.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is  a
+       pointer  to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct, defined in _\bk_\br_\bb_\b._\bh _\b.  The rou-
+       tine fills in these _\bM_\bS_\bG_\b__\bD_\bA_\bT  fields:  the  _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba  field
+       with  a  pointer  to the application data, _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh with
+       the length of the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field,  _\bt_\bi_\bm_\be_\b__\bs_\be_\bc  and  _\bt_\bi_\bm_\be_\b__\b5_\bm_\bs
+       with  the  timestamps in the message, and _\bs_\bw_\ba_\bp with a 1 if
+       the byte order of the receiver is different than  that  of
+       the  sender.   (The application must still determine if it
+       is appropriate to byte-swap application data; the Kerberos
+       protocol  fields  are  already  taken  care of).  The _\bh_\ba_\bs_\bh
+       field returns a value useful as input to  the  _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl
+       routine.
+
+       The  routine returns zero if ok, or a Kerberos error code.
+       Modified messages and old messages cause errors, but it is
+       up  to  the caller to check the time sequence of messages,
+       and to check  against  recently  replayed  messages  using
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl if so desired.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     5
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  constructs  an application level error message
+       that may be used along with  _\bk_\br_\bb_\b__\bm_\bk_\b__\bp_\br_\bi_\bv  or  _\bk_\br_\bb_\b__\bm_\bk_\b__\bs_\ba_\bf_\be_\b.
+       _\bo_\bu_\bt is a pointer to the output buffer, _\bc_\bo_\bd_\be is an applica-
+       tion specific error code, and  _\bs_\bt_\br_\bi_\bn_\bg  is  an  application
+       specific error string.
+
+
+       _\bk_\br_\bb_\b__\br_\bd_\b__\be_\br_\br  unpacks  a  received  _\bk_\br_\bb_\b__\bm_\bk_\b__\be_\br_\br  message.  _\bi_\bn
+       points to the beginning of  the  received  message,  whose
+       length  is specified in _\bi_\bn_\b__\bl_\be_\bn_\bg_\bt_\bh_\b.  _\bc_\bo_\bd_\be is a pointer to a
+       value to be filled in with the error value provided by the
+       application.   _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba  is a pointer to a _\bM_\bS_\bG_\b__\bD_\bA_\bT struct,
+       defined in _\bk_\br_\bb_\b._\bh _\b.  The routine  fills  in  these  _\bM_\bS_\bG_\b__\bD_\bA_\bT
+       fields:  the _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field with a pointer to the applica-
+       tion  error  text,  _\ba_\bp_\bp_\b__\bl_\be_\bn_\bg_\bt_\bh  with  the  length  of  the
+       _\ba_\bp_\bp_\b__\bd_\ba_\bt_\ba field, and _\bs_\bw_\ba_\bp with a 1 if the byte order of the
+       receiver is different  than  that  of  the  sender.   (The
+       application  must  still determine if it is appropriate to
+       byte-swap application data; the Kerberos  protocol  fields
+       are already taken care of).
+
+       The  routine  returns  zero  if the error message has been
+       successfully received, or a Kerberos error code.
+
+       The _\bK_\bT_\bE_\bX_\bT structure is used to pass around text of varying
+       lengths.   It  consists  of  a  buffer for the data, and a
+       length.  krb_rd_req takes an argument of  this  type  con-
+       taining  the  authenticator,  and  krb_mk_req  returns the
+       authenticator in a structure of this type.   KTEXT  itself
+       is  really a pointer to the structure.   The actual struc-
+       ture is of type KTEXT_ST.
+
+       The _\bA_\bU_\bT_\bH_\b__\bD_\bA_\bT structure is filled  in  by  krb_rd_req.   It
+       must be allocated before calling krb_rd_req, and a pointer
+       to it is passed.  The structure is  filled  in  with  data
+       obtained from Kerberos.  _\bM_\bS_\bG_\b__\bD_\bA_\bT structure is filled in by
+       either krb_rd_priv, krb_rd_safe, or krb_rd_err.   It  must
+       be  allocated  before  the  call  and  a  pointer to it is
+       passed.  The structure is filled  in  with  data  obtained
+       from Kerberos.
+
+
+F\bFI\bIL\bLE\bES\bS
+       /usr/include/kerberosIV/krb.h
+       /usr/lib/libkrb.a
+       /usr/include/kerberosIV/des.h
+       /usr/lib/libdes.a
+       /etc/kerberosIV/aname
+       /etc/kerberosIV/srvtab
+       /tmp/tkt[uid]
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     6
+
+
+
+
+
+
+
+
+KERBEROS(3)          BSD Programmer's Manual          KERBEROS(3)
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(1), des_crypt(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+B\bBU\bUG\bGS\bS
+       The  caller  of  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b,  _\bk_\br_\bb_\b__\br_\bd_\b__\bp_\br_\bi_\bv_\b, _\ba_\bn_\bd _\bk_\br_\bb_\b__\br_\bd_\b__\bs_\ba_\bf_\be
+       must  check  time   order   and   for   replay   attempts.
+       _\bk_\br_\bb_\b__\bc_\bk_\b__\br_\be_\bp_\bl is not implemented yet.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Clifford Neuman, MIT Project Athena
+       Steve  Miller, MIT Project Athena/Digital Equipment Corpo-
+       ration
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       COPYRIGHT 1985,1986,1989 Massachusetts Institute of  Tech-
+       nology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     7
+
+
+
+
+
diff --git a/usr/share/man/cat3/krb_set_tkt_string.0 b/usr/share/man/cat3/krb_set_tkt_string.0
new file mode 100644 (file)
index 0000000..3fe3198
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KRB_SET_TKT_STRING(3)BSD Programmer's ManualKRB_SET_TKT_STRING(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_set_tkt_string - set Kerberos ticket cache file name
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       v\bvo\boi\bid\bd k\bkr\brb\bb_\b_s\bse\bet\bt_\b_t\btk\bkt\bt_\b_s\bst\btr\bri\bin\bng\bg(\b(f\bfi\bil\ble\ben\bna\bam\bme\be)\b)
+       c\bch\bha\bar\br *\b*f\bfi\bil\ble\ben\bna\bam\bme\be;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\br_\bb_\b__\bs_\be_\bt_\b__\bt_\bk_\bt_\b__\bs_\bt_\br_\bi_\bn_\bg  sets  the  name of the file that holds
+       the user's cache of Kerberos server tickets and associated
+       session keys.
+
+       The  string  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be passed in is copied into local stor-
+       age.  Only MAXPATHLEN-1 (see <sys/param.h>) characters  of
+       the filename are copied in for use as the cache file name.
+
+       This  routine  should  be  called  during  initialization,
+       before  other  Kerberos routines are called; otherwise the
+       routines which fetch the ticket cache  file  name  may  be
+       called and return an undesired ticket file name until this
+       routine is called.
+
+F\bFI\bIL\bLE\bES\bS
+       /tmp/tkt[uid]       default ticket file name,  unless  the
+                           environment variable KRBTKFILE is set.
+                           [uid] denotes the user's uid, in deci-
+                           mal.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(3), setenv(3)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat3/ksend.0 b/usr/share/man/cat3/ksend.0
new file mode 100644 (file)
index 0000000..881666b
--- /dev/null
@@ -0,0 +1,264 @@
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_sendauth,  krb_recvauth, krb_net_write, krb_net_read -
+       Kerberos routines for sending authentication  via  network
+       stream sockets
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_s\bse\ben\bnd\bda\bau\but\bth\bh(\b(o\bop\bpt\bti\bio\bon\bns\bs,\b, f\bfd\bd,\b, k\bkt\bte\bex\bxt\bt,\b, s\bse\ber\brv\bvi\bic\bce\be,\b, i\bin\bns\bst\bt,\b, r\bre\bea\bal\blm\bm,\b,
+                 c\bch\bhe\bec\bck\bks\bsu\bum\bm,\b,  m\bms\bsg\bg_\b_d\bda\bat\bta\ba,\b,  c\bcr\bre\bed\bd,\b,   s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b,   l\bla\bad\bdd\bdr\br,\b,
+                 f\bfa\bad\bdd\bdr\br,\b, v\bve\ber\brs\bsi\bio\bon\bn)\b)
+       l\blo\bon\bng\bg o\bop\bpt\bti\bio\bon\bns\bs;\b;
+       i\bin\bnt\bt f\bfd\bd;\b;
+       K\bKT\bTE\bEX\bXT\bT k\bkt\bte\bex\bxt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be,\b, *\b*i\bin\bns\bst\bt,\b, *\b*r\bre\bea\bal\blm\bm;\b;
+       u\bu_\b_l\blo\bon\bng\bg c\bch\bhe\bec\bck\bks\bsu\bum\bm;\b;
+       M\bMS\bSG\bG_\b_D\bDA\bAT\bT *\b*m\bms\bsg\bg_\b_d\bda\bat\bta\ba;\b;
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bcr\bre\bed\bd;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*l\bla\bad\bdd\bdr\br,\b, *\b*f\bfa\bad\bdd\bdr\br;\b;
+       c\bch\bha\bar\br *\b*v\bve\ber\brs\bsi\bio\bon\bn;\b;
+
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_r\bre\bec\bcv\bva\bau\but\bth\bh(\b(o\bop\bpt\bti\bio\bon\bns\bs,\b, f\bfd\bd,\b, k\bkt\bte\bex\bxt\bt,\b, s\bse\ber\brv\bvi\bic\bce\be,\b, i\bin\bns\bst\bt,\b, f\bfa\bad\bdd\bdr\br,\b,
+                 l\bla\bad\bdd\bdr\br,\b, a\bau\but\bth\bh_\b_d\bda\bat\bta\ba,\b, f\bfi\bil\ble\ben\bna\bam\bme\be,\b, s\bsc\bch\bhe\bed\bdu\bul\ble\be,\b, v\bve\ber\brs\bsi\bio\bon\bn)\b)
+       l\blo\bon\bng\bg o\bop\bpt\bti\bio\bon\bns\bs;\b;
+       i\bin\bnt\bt f\bfd\bd;\b;
+       K\bKT\bTE\bEX\bXT\bT k\bkt\bte\bex\bxt\bt;\b;
+       c\bch\bha\bar\br *\b*s\bse\ber\brv\bvi\bic\bce\be,\b, *\b*i\bin\bns\bst\bt;\b;
+       s\bst\btr\bru\buc\bct\bt s\bso\boc\bck\bka\bad\bdd\bdr\br_\b_i\bin\bn *\b*f\bfa\bad\bdd\bdr\br,\b, *\b*l\bla\bad\bdd\bdr\br;\b;
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bau\but\bth\bh_\b_d\bda\bat\bta\ba;\b;
+       c\bch\bha\bar\br *\b*f\bfi\bil\ble\ben\bna\bam\bme\be;\b;
+       K\bKe\bey\by_\b_s\bsc\bch\bhe\bed\bdu\bul\ble\be s\bsc\bch\bhe\bed\bdu\bul\ble\be;\b;
+       c\bch\bha\bar\br *\b*v\bve\ber\brs\bsi\bio\bon\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_n\bne\bet\bt_\b_w\bwr\bri\bit\bte\be(\b(f\bfd\bd,\b, b\bbu\buf\bf,\b, l\ble\ben\bn)\b)
+       i\bin\bnt\bt f\bfd\bd;\b;
+       c\bch\bha\bar\br *\b*b\bbu\buf\bf;\b;
+       i\bin\bnt\bt l\ble\ben\bn;\b;
+
+       i\bin\bnt\bt k\bkr\brb\bb_\b_n\bne\bet\bt_\b_r\bre\bea\bad\bd(\b(f\bfd\bd,\b, b\bbu\buf\bf,\b, l\ble\ben\bn)\b)
+       i\bin\bnt\bt f\bfd\bd;\b;
+       c\bch\bha\bar\br *\b*b\bbu\buf\bf;\b;
+       i\bin\bnt\bt l\ble\ben\bn;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       These functions, which are built on top of the  core  Ker-
+       beros  library,  provide a convenient means for client and
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+       server programs to send  authentication  messages  to  one
+       another  through  network  connections.   The _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh
+       function sends an authenticated  ticket  from  the  client
+       program  to  the server program by writing the ticket to a
+       network socket.  The _\bk_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh  function  receives  the
+       ticket from the client by reading from a network socket.
+
+
+K\bKR\bRB\bB_\b_S\bSE\bEN\bND\bDA\bAU\bUT\bTH\bH
+       This  function  writes  the  ticket  to the network socket
+       specified by the file descriptor _\bf_\bd_\b, returning KSUCCESS if
+       the  write  proceeds successfully, and an error code if it
+       does not.
+
+       The _\bk_\bt_\be_\bx_\bt argument should point to an  allocated  KTEXT_ST
+       structure.  The _\bs_\be_\br_\bv_\bi_\bc_\be_\b, _\bi_\bn_\bs_\bt_\b, and _\br_\be_\ba_\bl_\bm arguments specify
+       the server program's Kerberos  principal  name,  instance,
+       and  realm.   If  you  are  writing a client that uses the
+       local realm exclusively, you can set the _\br_\be_\ba_\bl_\bm argument to
+       NULL.
+
+       The  _\bv_\be_\br_\bs_\bi_\bo_\bn argument allows the client program to pass an
+       application-specific version string that the  server  pro-
+       gram  can  then match against its own version string.  The
+       _\bv_\be_\br_\bs_\bi_\bo_\bn string can be up to  KSEND_VNO_LEN  (see  _\b<_\bk_\br_\bb_\b._\bh_\b>)
+       characters in length.
+
+       The  _\bc_\bh_\be_\bc_\bk_\bs_\bu_\bm argument can be used to pass checksum infor-
+       mation to the  server  program.   The  client  program  is
+       responsible  for specifying this information.  This check-
+       sum  information   is   difficult   to   corrupt   because
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh passes it over the network in encrypted form.
+       The _\bc_\bh_\be_\bc_\bk_\bs_\bu_\bm argument is passed as the  checksum  argument
+       to _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq.
+
+       You  can set _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b'_\bs other arguments to NULL unless
+       you want  the  client  and  server  programs  to  mutually
+       authenticate  themselves.  In the case of mutual authenti-
+       cation, the client authenticates itself to the server pro-
+       gram,  and  demands  that  the server in turn authenticate
+       itself to the client.
+
+
+K\bKR\bRB\bB_\b_S\bSE\bEN\bND\bDA\bAU\bUT\bTH\bH A\bAN\bND\bD M\bMU\bUT\bTU\bUA\bAL\bL A\bAU\bUT\bTH\bHE\bEN\bNT\bTI\bIC\bCA\bAT\bTI\bIO\bON\bN
+       If you want mutual authentication, make sure that you read
+       all  pending  data  from  the  local socket before calling
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b.   Set  _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b'_\bs  _\bo_\bp_\bt_\bi_\bo_\bn_\bs  argument  to
+       K\bKO\bOP\bPT\bT_\b_D\bDO\bO_\b_M\bMU\bUT\bTU\bUA\bAL\bL  (this macro is defined in the _\bk_\br_\bb_\b._\bh file);
+       make sure that the _\bl_\ba_\bd_\bd_\br argument points to the address of
+       the  local  socket,  and  that _\bf_\ba_\bd_\bd_\br points to the foreign
+       socket's network address.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+       _\bK_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh fills  in  the  other  arguments--  _\bm_\bs_\bg_\b__\bd_\ba_\bt_\ba,
+       _\bc_\br_\be_\bd,  and  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be--before  sending  the  ticket  to the
+       server program.  You must,  however,  allocate  space  for
+       these arguments before calling the function.
+
+       _\bK_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh supports two other options: K\bKO\bOP\bPT\bT_\b_D\bDO\bON\bNT\bT_\b_M\bMK\bK_\b_R\bRE\bEQ\bQ,\b,
+       and  K\bKO\bOP\bPT\bT_\b_D\bDO\bON\bNT\bT_\b_C\bCA\bAN\bNO\bON\bN.\b.   If  called  with  _\bo_\bp_\bt_\bi_\bo_\bn_\bs  set  as
+       KOPT_DONT_MK_REQ, _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh will not use the _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq
+       function to retrieve the ticket from the Kerberos  server.
+       The  _\bk_\bt_\be_\bx_\bt  argument  must point to an existing ticket and
+       authenticator (such as would be  created  by  _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq),
+       and  the  _\bs_\be_\br_\bv_\bi_\bc_\be_\b, _\bi_\bn_\bs_\bt_\b, and _\br_\be_\ba_\bl_\bm arguments can be set to
+       NULL.
+
+       If   called   with   _\bo_\bp_\bt_\bi_\bo_\bn_\bs   set   as   KOPT_DONT_CANON,
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh  will  not  convert the service's instance to
+       canonical form using _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bp_\bh_\bo_\bs_\bt(3).
+
+       If you want to call _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh with a  multiple  _\bo_\bp_\bt_\bi_\bo_\bn_\bs
+       specification,  construct  _\bo_\bp_\bt_\bi_\bo_\bn_\bs  as a bitwise-OR of the
+       options you want to specify.
+
+
+K\bKR\bRB\bB_\b_R\bRE\bEC\bCV\bVA\bAU\bUT\bTH\bH
+       The _\bk_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh  function  reads  a  ticket/authenticator
+       pair  from  the socket pointed to by the _\bf_\bd argument.  Set
+       the _\bo_\bp_\bt_\bi_\bo_\bn_\bs  argument  as  a  bitwise-OR  of  the  options
+       desired.   Currently  only KOPT_DO_MUTUAL is useful to the
+       receiver.
+
+       The _\bk_\bt_\be_\bx_\bt argument should point to an  allocated  KTEXT_ST
+       structure.     _\bK_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh    fills    _\bk_\bt_\be_\bx_\bt   with   the
+       ticket/authenticator pair read from _\bf_\bd, then passes it  to
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq.
+
+       The  _\bs_\be_\br_\bv_\bi_\bc_\be  and _\bi_\bn_\bs_\bt arguments specify the expected ser-
+       vice and instance for  which  the  ticket  was  generated.
+       They are also passed to _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq_\b.  The _\bi_\bn_\bs_\bt argument may
+       be set to "*" if the caller wishes _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq to  fill  in
+       the  instance  used  (note that there must be space in the
+       _\bi_\bn_\bs_\bt  argument  to  hold  a  full   instance   name,   see
+       _\bk_\br_\bb_\b__\bm_\bk_\b__\br_\be_\bq(3)).
+
+       The _\bf_\ba_\bd_\bd_\br argument should point to the address of the peer
+       which is presenting the ticket.   It  is  also  passed  to
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq.
+
+       If the client and server plan to mutually authenticate one
+       another, the _\bl_\ba_\bd_\bd_\br argument  should  point  to  the  local
+       address  of  the  file  descriptor.  Otherwise you can set
+       this argument to NULL.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
+
+
+
+KRB_SENDAUTH(3)      BSD Programmer's Manual      KRB_SENDAUTH(3)
+
+
+       The  _\ba_\bu_\bt_\bh_\b__\bd_\ba_\bt_\ba  argument  should  point  to  an  allocated
+       AUTH_DAT   area.   It  is  passed  to  and  filled  in  by
+       _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq.  The  checksum  passed  to  the  corresponding
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh   is  available  as  part  of  the  filled-in
+       AUTH_DAT area.
+
+       The _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be argument specifies  the  filename  which  the
+       service  program  should  use  to  obtain its service key.
+       _\bK_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh passes _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be to the  _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq  function.
+       If  you  set this argument to "", _\bk_\br_\bb_\b__\br_\bd_\b__\br_\be_\bq looks for the
+       service key in the file _\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bs_\br_\bv_\bt_\ba_\bb_\b.
+
+       If the client and server are performing mutual authentica-
+       tion,  the  _\bs_\bc_\bh_\be_\bd_\bu_\bl_\be argument should point to an allocated
+       Key_schedule.  Otherwise it is ignored and may be NULL.
+
+       The _\bv_\be_\br_\bs_\bi_\bo_\bn argument should point to a character array  of
+       at  least  KSEND_VNO_LEN characters.  It is filled in with
+       the version string passed by the client to _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b.
+
+
+K\bKR\bRB\bB_\b_N\bNE\bET\bT_\b_W\bWR\bRI\bIT\bTE\bE A\bAN\bND\bD K\bKR\bRB\bB_\b_N\bNE\bET\bT_\b_R\bRE\bEA\bAD\bD
+       The _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\bw_\br_\bi_\bt_\be function emulates  the  write(2)  system
+       call, but guarantees that all data specified is written to
+       _\bf_\bd before returning, unless an error condition occurs.
+
+       The _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\br_\be_\ba_\bd  function  emulates  the  read(2)  system
+       call,  but guarantees that the requested amount of data is
+       read from _\bf_\bd before returning, unless an  error  condition
+       occurs.
+
+
+B\bBU\bUG\bGS\bS
+       _\bk_\br_\bb_\b__\bs_\be_\bn_\bd_\ba_\bu_\bt_\bh_\b,     _\bk_\br_\bb_\b__\br_\be_\bc_\bv_\ba_\bu_\bt_\bh_\b,     _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\bw_\br_\bi_\bt_\be_\b,     and
+       _\bk_\br_\bb_\b__\bn_\be_\bt_\b__\br_\be_\ba_\bd will not work properly on sockets set to non-
+       blocking I/O mode.
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       krb_mk_req(3), krb_rd_req(3), krb_get_phost(3)
+
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+       John T. Kohl, MIT Project Athena
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       Copyright  1988,  Massachusetts Instititute of Technology.
+       For copying and distribution information, please  see  the
+       file <mit-copyright.h>.
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     4
+
+
+
+
+
diff --git a/usr/share/man/cat3/kuserok.0 b/usr/share/man/cat3/kuserok.0
new file mode 100644 (file)
index 0000000..805d9c2
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KUSEROK(3)           BSD Programmer's Manual           KUSEROK(3)
+
+
+N\bNA\bAM\bME\bE
+       kuserok - Kerberos version of ruserok
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       k\bku\bus\bse\ber\bro\bok\bk(\b(k\bkd\bda\bat\bta\ba,\b, l\blo\boc\bca\bal\blu\bus\bse\ber\br)\b)
+       A\bAU\bUT\bTH\bH_\b_D\bDA\bAT\bT *\b*a\bau\but\bth\bh_\b_d\bda\bat\bta\ba;\b;
+       c\bch\bha\bar\br   *\b*l\blo\boc\bca\bal\blu\bus\bse\ber\br;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bu_\bs_\be_\br_\bo_\bk  determines whether a Kerberos principal described
+       by the structure _\ba_\bu_\bt_\bh_\b__\bd_\ba_\bt_\ba is authorized to login as  user
+       _\bl_\bo_\bc_\ba_\bl_\bu_\bs_\be_\br    according    to    the   authorization   file
+       ("~_\bl_\bo_\bc_\ba_\bl_\bu_\bs_\be_\br/.klogin" by default).  It returns 0 (zero) if
+       authorized, 1 (one) if not authorized.
+
+       If there is no account for _\bl_\bo_\bc_\ba_\bl_\bu_\bs_\be_\br on the local machine,
+       authorization is not granted.  If there is  no  authoriza-
+       tion   file,  and  the  Kerberos  principal  described  by
+       _\ba_\bu_\bt_\bh_\b__\bd_\ba_\bt_\ba translates to _\bl_\bo_\bc_\ba_\bl_\bu_\bs_\be_\br  (using  _\bk_\br_\bb_\b__\bk_\bn_\bt_\bo_\bl_\bn(3)),
+       authorization is granted.  If the authorization file can't
+       be accessed, or the file is not owned by _\bl_\bo_\bc_\ba_\bl_\bu_\bs_\be_\br_\b, autho-
+       rization is denied.  Otherwise, the file is searched for a
+       matching principal name, instance, and realm.  If a  match
+       is  found, authorization is granted, else authorization is
+       denied.
+
+       The file entries are in the format:
+                 name.instance@realm
+       with one entry per line.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(3), ruserok(3), krb_kntoln(3)
+
+F\bFI\bIL\bLE\bES\bS
+       ~_\bl_\bo_\bc_\ba_\bl_\bu_\bs_\be_\br/.klogin  authorization list
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat3/realm.0 b/usr/share/man/cat3/realm.0
new file mode 100644 (file)
index 0000000..901419e
--- /dev/null
@@ -0,0 +1,198 @@
+
+
+
+KRB_REALMOFHOST(3)   BSD Programmer's Manual   KRB_REALMOFHOST(3)
+
+
+N\bNA\bAM\bME\bE
+       krb_realmofhost,       krb_get_phost,      krb_get_krbhst,
+       krb_get_admhst, krb_get_lrealm - additional Kerberos util-
+       ity routines
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/d\bde\bes\bs.\b.h\bh>\b>
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<n\bne\bet\bti\bin\bne\bet\bt/\b/i\bin\bn.\b.h\bh>\b>
+
+       c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_r\bre\bea\bal\blm\bmo\bof\bfh\bho\bos\bst\bt(\b(h\bho\bos\bst\bt)\b)
+       c\bch\bha\bar\br *\b*h\bho\bos\bst\bt;\b;
+
+       c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_g\bge\bet\bt_\b_p\bph\bho\bos\bst\bt(\b(a\bal\bli\bia\bas\bs)\b)
+       c\bch\bha\bar\br *\b*a\bal\bli\bia\bas\bs;\b;
+
+       k\bkr\brb\bb_\b_g\bge\bet\bt_\b_k\bkr\brb\bbh\bhs\bst\bt(\b(h\bho\bos\bst\bt,\b,r\bre\bea\bal\blm\bm,\b,n\bn)\b)
+       c\bch\bha\bar\br *\b*h\bho\bos\bst\bt;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       i\bin\bnt\bt n\bn;\b;
+
+       k\bkr\brb\bb_\b_g\bge\bet\bt_\b_a\bad\bdm\bmh\bhs\bst\bt(\b(h\bho\bos\bst\bt,\b,r\bre\bea\bal\blm\bm,\b,n\bn)\b)
+       c\bch\bha\bar\br *\b*h\bho\bos\bst\bt;\b;
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       i\bin\bnt\bt n\bn;\b;
+
+       k\bkr\brb\bb_\b_g\bge\bet\bt_\b_l\blr\bre\bea\bal\blm\bm(\b(r\bre\bea\bal\blm\bm,\b,n\bn)\b)
+       c\bch\bha\bar\br *\b*r\bre\bea\bal\blm\bm;\b;
+       i\bin\bnt\bt n\bn;\b;
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\br_\bb_\b__\br_\be_\ba_\bl_\bm_\bo_\bf_\bh_\bo_\bs_\bt  returns  the  Kerberos  realm of the host
+       _\bh_\bo_\bs_\bt,   as   determined   by   the    translation    table
+       _\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bk_\br_\bb_\b._\br_\be_\ba_\bl_\bm_\bs.   _\bh_\bo_\bs_\bt  should  be  the fully-
+       qualified domain-style primary host name of  the  host  in
+       question.   In  order to prevent certain security attacks,
+       this routine must either have  _\ba  _\bp_\br_\bi_\bo_\br_\bi  knowledge  of  a
+       host's realm, or obtain such information securely.
+
+       The  format  of  the  translation  file  is  described  by
+       _\bk_\br_\bb_\b._\br_\be_\ba_\bl_\bm_\bs(5).  If _\bh_\bo_\bs_\bt exactly matches a host_name  line,
+       the  corresponding  realm  is returned.  Otherwise, if the
+       domain portion of _\bh_\bo_\bs_\bt matches  a  domain_name  line,  the
+       corresponding  realm  is  returned.   If  _\bh_\bo_\bs_\bt  contains a
+       domain, but no translation is found, _\bh_\bo_\bs_\bt's domain is con-
+       verted  to  upper-case  and returned.  If _\bh_\bo_\bs_\bt contains no
+       discernible domain, or an error occurs,  the  local  realm
+       name, as supplied by _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bl_\br_\be_\ba_\bl_\bm(3), is returned.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bp_\bh_\bo_\bs_\bt  converts  the  hostname _\ba_\bl_\bi_\ba_\bs (which can be
+       either an official name or an  alias)  into  the  instance
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KRB_REALMOFHOST(3)   BSD Programmer's Manual   KRB_REALMOFHOST(3)
+
+
+       name  to  be  used  in obtaining Kerberos tickets for most
+       services, including the Berkeley rcmd suite (rlogin,  rcp,
+       rsh).
+       The  current  convention is to return the first segment of
+       the official domain-style name after conversion  to  lower
+       case.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bk_\br_\bb_\bh_\bs_\bt  fills in _\bh_\bo_\bs_\bt with the hostname of the _\bnth
+       host running a Kerberos key distribution center (KDC)  for
+       realm  _\br_\be_\ba_\bl_\bm,  as  specified  in  the  configuration  file
+       (_\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bk_\br_\bb_\b._\bc_\bo_\bn_\bf).   The  configuration  file  is
+       described  by  _\bk_\br_\bb_\b._\bc_\bo_\bn_\bf(5).   If  the host is successfully
+       filled in, the routine returns KSUCCESS.  If the file can-
+       not  be opened, and _\bn equals 1, then the value of KRB_HOST
+       as defined in  _\b<_\bk_\br_\bb_\b._\bh_\b>  is  filled  in,  and  KSUCCESS  is
+       returned.   If there are fewer than _\bn hosts running a Ker-
+       beros KDC for the requested realm,  or  the  configuration
+       file is malformed, the routine returns KFAILURE.
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\ba_\bd_\bm_\bh_\bs_\bt  fills in _\bh_\bo_\bs_\bt with the hostname of the _\bnth
+       host running a Kerberos KDC database administration server
+       for  realm  _\br_\be_\ba_\bl_\bm,  as specified in the configuration file
+       (_\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\bk_\br_\bb_\b._\bc_\bo_\bn_\bf).  If the file cannot be  opened
+       or is malformed, or there are fewer than _\bn hosts running a
+       Kerberos KDC database administration server,  the  routine
+       returns KFAILURE.
+
+       The   character   arrays   used   as   return  values  for
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bk_\br_\bb_\bh_\bs_\bt, _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\ba_\bd_\bm_\bh_\bs_\bt, should be large enough  to
+       hold any hostname (MAXHOSTNAMELEN from <sys/param.h>).
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bl_\br_\be_\ba_\bl_\bm  fills  in  _\br_\be_\ba_\bl_\bm with the _\bnth realm of the
+       local host, as specified in the configuration file.  _\br_\be_\ba_\bl_\bm
+       should  be at least REALM_SZ (from _\b<_\bk_\br_\bb_\b._\bh_\b>_\b)characters_\bl_\bo_\bn_\bg_\b.
+
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kerberos(3), krb.conf(5), krb.realms(5)
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/krb.realms
+                           translation  file  for   host-to-realm
+                           mapping.
+
+       /etc/kerberosIV/krb.conf
+                           local realm-name and realm/server con-
+                           figuration file.
+
+B\bBU\bUG\bGS\bS
+       The current convention for instance names is too  limited;
+       the full domain name should be used.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+KRB_REALMOFHOST(3)   BSD Programmer's Manual   KRB_REALMOFHOST(3)
+
+
+       _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bl_\br_\be_\ba_\bl_\bm  currently  only supports _\bn = 1.  It should
+       really consult the user's ticket cache  to  determine  the
+       user's current realm, rather than consulting a file on the
+       host.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
diff --git a/usr/share/man/cat3/tf_util.0 b/usr/share/man/cat3/tf_util.0
new file mode 100644 (file)
index 0000000..05addc8
--- /dev/null
@@ -0,0 +1,198 @@
+
+
+
+TF_UTIL(3)           BSD Programmer's Manual           TF_UTIL(3)
+
+
+N\bNA\bAM\bME\bE
+       tf_init, tf_get_pname, tf_get_pinst, tf_get_cred, tf_close
+       - routines for manipulating a Kerberos ticket file
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       #\b#i\bin\bnc\bcl\blu\bud\bde\be <\b<k\bke\ber\brb\bbe\ber\bro\bos\bsI\bIV\bV/\b/k\bkr\brb\bb.\b.h\bh>\b>
+
+       e\bex\bxt\bte\ber\brn\bn c\bch\bha\bar\br *\b*k\bkr\brb\bb_\b_e\ber\brr\br_\b_t\btx\bxt\bt[\b[]\b];\b;
+
+       t\btf\bf_\b_i\bin\bni\bit\bt(\b(t\btf\bf_\b_n\bna\bam\bme\be,\b, r\brw\bw)\b)
+       c\bch\bha\bar\br *\b*t\btf\bf_\b_n\bna\bam\bme\be;\b;
+       i\bin\bnt\bt r\brw\bw;\b;
+
+       t\btf\bf_\b_g\bge\bet\bt_\b_p\bpn\bna\bam\bme\be(\b(p\bpn\bna\bam\bme\be)\b)
+       c\bch\bha\bar\br *\b*p\bpn\bna\bam\bme\be;\b;
+
+       t\btf\bf_\b_g\bge\bet\bt_\b_p\bpi\bin\bns\bst\bt(\b(p\bpi\bin\bns\bst\bt)\b)
+       c\bch\bha\bar\br *\b*p\bpi\bin\bns\bst\bt;\b;
+
+       t\btf\bf_\b_g\bge\bet\bt_\b_c\bcr\bre\bed\bd(\b(c\bc)\b)
+       C\bCR\bRE\bED\bDE\bEN\bNT\bTI\bIA\bAL\bLS\bS *\b*c\bc;\b;
+
+       t\btf\bf_\b_c\bcl\blo\bos\bse\be(\b()\b)
+
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This group of routines are provided to manipulate the Ker-
+       beros  tickets file.  A ticket file has the following for-
+       mat:
+
+           principal's name          (null-terminated string)
+           principal's instance      (null-terminated string)
+           CREDENTIAL_1
+           CREDENTIAL_2
+             ...
+           CREDENTIAL_n
+           EOF
+
+
+       Where "CREDENTIAL_x" consists of the following fixed-length
+       fields from the CREDENTIALS structure (defined in <kerberosIV/krb.h>):
+
+                char      service[ANAME_SZ]
+                char      instance[INST_SZ]
+                char      realm[REALM_SZ]
+                des_cblock     session
+                int       lifetime
+                int       kvno
+                KTEXT_ST  ticket_st
+                long      issue_date
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+TF_UTIL(3)           BSD Programmer's Manual           TF_UTIL(3)
+
+
+       _\bt_\bf_\b__\bi_\bn_\bi_\bt must be called before the other ticket  file  rou-
+       tines.  It takes the name of the ticket file to use, and a
+       read/write flag as arguments.  It tries to open the ticket
+       file, checks the mode and if everything is okay, locks the
+       file.  If it's opened for reading, the lock is shared.  If
+       it's  opened for writing, the lock is exclusive.  KSUCCESS
+       is returned if all went well, otherwise one of the follow-
+       ing:
+
+       NO_TKT_FIL     - file wasn't there
+       TKT_FIL_ACC    - file was in wrong mode, etc.
+       TKT_FIL_LCK    - couldn't lock the file, even after a retry
+
+
+       The  _\bt_\bf_\b__\bg_\be_\bt_\b__\bp_\bn_\ba_\bm_\be reads the principal's name from a ticket
+       file.  It should only be called  after  tf_init  has  been
+       called.   The  principal's  name  is filled into the _\bp_\bn_\ba_\bm_\be
+       parameter.  If all goes well, KSUCCESS  is  returned.   If
+       tf_init  wasn't  called,  TKT_FIL_INI is returned.  If the
+       principal's name was null, or EOF was encountered, or  the
+       name was longer than ANAME_SZ, TKT_FIL_FMT is returned.
+
+       The  _\bt_\bf_\b__\bg_\be_\bt_\b__\bp_\bi_\bn_\bs_\bt  reads  the  principal's instance from a
+       ticket file.  It should only be called after  tf_init  and
+       tf_get_pname  have  been called.  The principal's instance
+       is filled into the _\bp_\bi_\bn_\bs_\bt parameter.   If  all  goes  well,
+       KSUCCESS   is   returned.    If   tf_init  wasn't  called,
+       TKT_FIL_INI is returned.  If EOF was encountered,  or  the
+       name  was  longer  than  INST_SZ, TKT_FIL_FMT is returned.
+       Note that, unlike the principal name,  the  instance  name
+       may be null.
+
+       The  _\bt_\bf_\b__\bg_\be_\bt_\b__\bc_\br_\be_\bd routine reads a CREDENTIALS record from a
+       ticket file and fills in the given structure.   It  should
+       only   be   called   after   tf_init,   tf_get_pname,  and
+       tf_get_pinst have been called.  If all goes well, KSUCCESS
+       is returned.  Possible error codes are:
+
+       TKT_FIL_INI    - tf_init wasn't called first
+       TKT_FIL_FMT    - bad format
+       EOF       - end of file encountered
+
+
+       _\bt_\bf_\b__\bc_\bl_\bo_\bs_\be  closes  the ticket file and releases the lock on
+       it.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       krb(3)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
+
+
+
+TF_UTIL(3)           BSD Programmer's Manual           TF_UTIL(3)
+
+
+B\bBU\bUG\bGS\bS
+       The ticket file routines have to be called  in  a  certain
+       order.
+
+A\bAU\bUT\bTH\bHO\bOR\bRS\bS
+       Jennifer Steiner, MIT Project Athena
+       Bill Bryant, MIT Project Athena
+
+R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTI\bIO\bON\bNS\bS
+       Copyright 1987 Massachusetts Institute of Technology
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     3
+
+
+
+
+
diff --git a/usr/share/man/cat5/krb.conf.0 b/usr/share/man/cat5/krb.conf.0
new file mode 100644 (file)
index 0000000..1903aeb
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KRB.CONF(5)          BSD Programmer's Manual          KRB.CONF(5)
+
+
+N\bNA\bAM\bME\bE
+       /etc/kerberosIV/krb.conf - Kerberos configuration file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\br_\bb_\b._\bc_\bo_\bn_\bf contains configuration information describing the
+       Kerberos realm and the Kerberos  key  distribution  center
+       (KDC) servers for known realms.
+
+       _\bk_\br_\bb_\b._\bc_\bo_\bn_\bf contains the name of the local realm in the first
+       line, followed by  lines  indicating  realm/host  entries.
+       The  first  token  is  a realm name, and the second is the
+       hostname of a host running a  KDC  for  that  realm.   The
+       words  "admin server" following the hostname indicate that
+       the host also provides an administrative database  server.
+       For example:
+                 ATHENA.MIT.EDU
+                 ATHENA.MIT.EDU kerberos-1.mit.edu admin server
+                 ATHENA.MIT.EDU kerberos-2.mit.edu
+                 LCS.MIT.EDU kerberos.lcs.mit.edu admin server
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       krb.realms(5), krb_get_krbhst(3), krb_get_lrealm(3)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat5/krb.realms.0 b/usr/share/man/cat5/krb.realms.0
new file mode 100644 (file)
index 0000000..520e83f
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KRB.REALMS(5)        BSD Programmer's Manual        KRB.REALMS(5)
+
+
+N\bNA\bAM\bME\bE
+       /etc/kerberosIV/krb.realms - host to Kerberos realm trans-
+       lation file
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\br_\bb_\b._\br_\be_\ba_\bl_\bm_\bs provides a translation from a hostname  to  the
+       Kerberos  realm  name  for  the  services provided by that
+       host.
+
+       Each line of the translation file is in one of the follow-
+       ing  forms  (domain_name  should  be of the form .XXX.YYY,
+       e.g. .LCS.MIT.EDU):
+            host_name kerberos_realm
+            domain_name kerberos_realm
+       If a hostname exactly matches the  _\bh_\bo_\bs_\bt_\b__\bn_\ba_\bm_\be  field  in  a
+       line  of  the  first  form, the corresponding realm is the
+       realm of the host.  If  a  hostname  does  not  match  any
+       _\bh_\bo_\bs_\bt_\b__\bn_\ba_\bm_\be  in the file, but its domain exactly matches the
+       _\bd_\bo_\bm_\ba_\bi_\bn_\b__\bn_\ba_\bm_\be field in a line of the second form, the corre-
+       sponding realm is the realm of the host.
+
+       If  no translation entry applies, the host's realm is con-
+       sidered to be the hostname's domain portion  converted  to
+       upper case.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       krb_realmofhost(3)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat8/ext_srvtab.0 b/usr/share/man/cat8/ext_srvtab.0
new file mode 100644 (file)
index 0000000..44f5f1f
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+EXT_SRVTAB(8)      BSD System Manager's Manual      EXT_SRVTAB(8)
+
+
+N\bNA\bAM\bME\bE
+       ext_srvtab  -  extract service key files from Kerberos key
+       distribution center database
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       ext_srvtab [ -\b-n\bn ] [ -\b-r\br r\bre\bea\bal\blm\bm ] [ h\bho\bos\bst\btn\bna\bam\bme\be .\b..\b..\b.  ]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\be_\bx_\bt_\b__\bs_\br_\bv_\bt_\ba_\bb extracts service key files  from  the  Kerberos
+       key distribution center (KDC) database.
+
+       Upon  execution,  it  prompts the user to enter the master
+       key string for the database.  If the -\b-n\bn option  is  speci-
+       fied,  the  master  key is instead fetched from the master
+       key cache file.
+
+       For  each  _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be  specified  on   the   command   line,
+       _\be_\bx_\bt_\b__\bs_\br_\bv_\bt_\ba_\bb  creates  the  service  key  file _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be-new-
+       srvtab, containing all the entries in the database with an
+       instance  field  of  _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be_\b.  This new file contains all
+       the keys registered for Kerberos-mediated service  provid-
+       ing  programs which use the _\bk_\br_\bb_\b__\bg_\be_\bt_\b__\bp_\bh_\bo_\bs_\bt(3) principal and
+       instance conventions to run on the host _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be.  If  the
+       -\b-r\br  option is specified, the realm fields in the extracted
+       file will match the given  realm  rather  than  the  local
+       realm.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "verify_master_key: Invalid master key, does not match
+                           database."
+                           The  master  key  string  entered  was
+                           incorrect.
+
+F\bFI\bIL\bLE\bES\bS
+       _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be-new-srvtab Service key file generated  for  _\bh_\bo_\bs_\bt_\b-
+                           _\bn_\ba_\bm_\be
+
+       /etc/kerberosIV/principal.pag,
+                           /etc/kerberosIV/principal.dir
+                           DBM files containing database
+
+       /etc/kerberosIV/master_key
+                           Master key cache file.
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       read_service_key(3), krb_get_phost(3)
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat8/kdb_destroy.0 b/usr/share/man/cat8/kdb_destroy.0
new file mode 100644 (file)
index 0000000..feeeb02
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KDB_DESTROY(8)     BSD System Manager's Manual     KDB_DESTROY(8)
+
+
+N\bNA\bAM\bME\bE
+       kdb_destroy  -  destroy  Kerberos  key distribution center
+       database
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       kdb_destroy
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bd_\bb_\b__\bd_\be_\bs_\bt_\br_\bo_\by deletes a  Kerberos  key  distribution  center
+       database.
+
+       The user is prompted to verify that the database should be
+       destroyed.  A response beginning with `y' or `Y'  confirms
+       deletion.  Any other response aborts deletion.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "Database cannot be deleted at /etc/kerberosIV/principal"
+                           The  attempt  to  delete  the database
+                           failed (probably due to  a  system  or
+                           access permission error).
+
+       "Database not deleted."
+                           The user aborted the deletion.
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/principal.pag,
+                           /etc/kerberosIV/principal.dir
+                           DBM files containing database
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kdb_init(8)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat8/kdb_edit.0 b/usr/share/man/cat8/kdb_edit.0
new file mode 100644 (file)
index 0000000..4c9a9a2
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KDB_EDIT(8)        BSD System Manager's Manual        KDB_EDIT(8)
+
+
+N\bNA\bAM\bME\bE
+       kdb_edit  -   Kerberos  key  distribution  center database
+       editing utility
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       kdb_edit [ -\b-n\bn ]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bd_\bb_\b__\be_\bd_\bi_\bt is used to create or change principals stored  in
+       the Kerberos key distribution center (KDC) database.
+
+       When  executed, _\bk_\bd_\bb_\b__\be_\bd_\bi_\bt prompts for the master key string
+       and verifies that it matches the master key stored in  the
+       database.   If  the -\b-n\bn option is specified, the master key
+       is instead fetched from the master key cache file.
+
+       Once the master key has been verified, _\bk_\bd_\bb_\b__\be_\bd_\bi_\bt  begins  a
+       prompt  loop.   The user is prompted for the principal and
+       instance to be modified.  If the entry is  not  found  the
+       user  may  create  it.  Once an entry is found or created,
+       the user may set the password,  expiration  date,  maximum
+       ticket   lifetime,  and  attributes.   Default  expiration
+       dates, maximum ticket lifetimes, and attributes  are  pre-
+       sented in brackets; if the user presses return the default
+       is selected.  There is no default password.  The  password
+       RANDOM  is  interpreted specially, and if entered the user
+       may have the program select a random DES key for the prin-
+       cipal.
+
+       Upon  successfully  creating or changing the entry, ``Edit
+       O.K.'' is printed.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "verify_master_key: Invalid master key, does not match
+                           database."
+                           The  master  key  string  entered  was
+                           incorrect.
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/principal.pag,
+                           /etc/kerberosIV/principal.dir
+                           DBM files containing database
+
+       /etc/kerberosIV/master_key
+                           Master key cache file.
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat8/kdb_init.0 b/usr/share/man/cat8/kdb_init.0
new file mode 100644 (file)
index 0000000..92da199
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KDB_INIT(8)        BSD System Manager's Manual        KDB_INIT(8)
+
+
+N\bNA\bAM\bME\bE
+       kdb_init  -  initialize  Kerberos  key distribution center
+       database
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       kdb_init [ r\bre\bea\bal\blm\bm ]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bd_\bb_\b__\bi_\bn_\bi_\bt initializes a Kerberos  key  distribution  center
+       database, creating the necessary principals.
+
+       If  the  optional  _\br_\be_\ba_\bl_\bm argument is not present, _\bk_\bd_\bb_\b__\bi_\bn_\bi_\bt
+       prompts for a realm name (defaulting to the definition  in
+       /usr/include/krb.h).   After  determining  the realm to be
+       created, it prompts for a master key password.  The master
+       key  password  is  used  to  encrypt  every encryption key
+       stored in the database.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "/etc/kerberosIV/principal: File exists"
+                           An  attempt  was  made  to  create   a
+                           database  on  a  machine which already
+                           had an existing database.
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/principal.pag,
+                           /etc/kerberosIV/principal.dir
+                           DBM files containing database
+
+       /usr/include/kerberosIV/krb.h
+                           Include file defining default realm
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+       kdb_destroy(8)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat8/kdb_util.0 b/usr/share/man/cat8/kdb_util.0
new file mode 100644 (file)
index 0000000..5215eab
--- /dev/null
@@ -0,0 +1,132 @@
+
+
+
+KDB_UTIL(8)        BSD System Manager's Manual        KDB_UTIL(8)
+
+
+N\bNA\bAM\bME\bE
+       kdb_util  -   Kerberos  key  distribution  center database
+       utility
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       kdb_util o\bop\bpe\ber\bra\bat\bti\bio\bon\bn f\bfi\bil\ble\ben\bna\bam\bme\be
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bd_\bb_\b__\bu_\bt_\bi_\bl allows the Kerberos key distribution center (KDC)
+       database administrator to perform utility functions on the
+       database.
+
+       _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn must be one of the following:
+
+       _\bl_\bo_\ba_\bd      initializes the KDC database  with  the  records
+                 described  by  the  text  contained  in the file
+                 _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  Any existing database is overwritten.
+
+       _\bd_\bu_\bm_\bp      dumps  the  KDC database into a text representa-
+                 tion in the file _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.
+
+       _\bs_\bl_\ba_\bv_\be_\b__\bd_\bu_\bm_\bp
+                 performs a database dump like  the  _\bd_\bu_\bm_\bp  opera-
+                 tion,  and additionally creates a semaphore file
+                 signaling  the  propagation  software  that   an
+                 update  is  available  for distribution to slave
+                 KDC databases.
+
+       _\bn_\be_\bw_\b__\bm_\ba_\bs_\bt_\be_\br_\b__\bk_\be_\by
+                 prompts for the old and new master key  strings,
+                 and then dumps the KDC database into a text rep-
+                 resentation in the file _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.  The  keys  in
+                 the text representation are encrypted in the new
+                 master key.
+
+       _\bc_\bo_\bn_\bv_\be_\br_\bt_\b__\bo_\bl_\bd_\b__\bd_\bb
+                 prompts for the  master  key  string,  and  then
+                 dumps  the  KDC database into a text representa-
+                 tion  in  the  file  _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.    The   existing
+                 database  is  assumed  to be encrypted using the
+                 old format (encrypted by the key schedule of the
+                 master  key);  the  dumped database is encrypted
+                 using the new format  (encrypted  directly  with
+                 master key).
+
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "verify_master_key: Invalid master key, does not match
+                           database."
+                           The  master  key  string  entered  was
+                           incorrect.
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
+
+
+
+KDB_UTIL(8)        BSD System Manager's Manual        KDB_UTIL(8)
+
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/principal.pag,
+                           /etc/kerberosIV/principal.dir
+                           DBM files containing database
+
+       _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be.ok         semaphore  file created by _\bs_\bl_\ba_\bv_\be_\b__\bd_\bu_\bm_\bp_\b.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     2
+
+
+
+
+
diff --git a/usr/share/man/cat8/kstash.0 b/usr/share/man/cat8/kstash.0
new file mode 100644 (file)
index 0000000..a562467
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+
+KSTASH(8)          BSD System Manager's Manual          KSTASH(8)
+
+
+N\bNA\bAM\bME\bE
+       kstash  -  stash Kerberos key distribution center database
+       master key
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       kstash
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       _\bk_\bs_\bt_\ba_\bs_\bh saves the Kerberos key  distribution  center  (KDC)
+       database master key in the master key cache file.
+
+       The  user  is  prompted  to  enter  the key, to verify the
+       authenticity of the key and the authorization to store the
+       key in the file.
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+       "verify_master_key: Invalid master key, does not match
+                           database."
+                           The  master  key  string  entered  was
+                           incorrect.
+
+       "kstash: Unable to open master key file"
+                           The attempt to open the cache file for
+                           writing failed (probably due to a sys-
+                           tem or access permission error).
+
+       "kstash: Write I/O error on master key file"
+                           The w\bwr\bri\bit\bte\be(2) system call  returned  an
+                           error  while  _\bk_\bs_\bt_\ba_\bs_\bh was attempting to
+                           write the key to the file.
+
+F\bFI\bIL\bLE\bES\bS
+       /etc/kerberosIV/principal.pag,
+                           /etc/kerberosIV/principal.dir
+                           DBM files containing database
+
+       /etc/kerberosIV/master_key
+                           Master key cache file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+MIT Project Athena     Kerberos Version 4.0                     1
+
+
+
+
+
diff --git a/usr/share/man/cat8/make_keypair.0 b/usr/share/man/cat8/make_keypair.0
new file mode 100644 (file)
index 0000000..e191926
--- /dev/null
@@ -0,0 +1,31 @@
+MAKE_KEYPAIR(8)           BSD System Manager's Manual          MAKE_KEYPAIR(8)
+
+N\bNA\bAM\bME\bE
+     m\bma\bak\bke\be_\b_k\bke\bey\byp\bpa\bai\bir\br - generate Kerberos host key pair
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     m\bma\bak\bke\be_\b_k\bke\bey\byp\bpa\bai\bir\br _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be [_\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be _\b._\b._\b.]
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     The m\bma\bak\bke\be_\b_k\bke\bey\byp\bpa\bai\bir\br command is used to create pairs of DES keys for each
+     _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be. The keys are used by privileged programs such as register(1) to
+     make remote updates to the Kerberos database without having to have first
+     acquired a Kerberos ticket granting ticket (TGT). The keys created by
+     m\bma\bak\bke\be_\b_k\bke\bey\byp\bpa\bai\bir\br are placed (by hand) in the filesystems of the kerberos
+     server in _\b/_\be_\bt_\bc_\b/_\bk_\be_\br_\bb_\be_\br_\bo_\bs_\bI_\bV_\b/_\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bk_\be_\by_\bs, and in the root directory of the
+     clients.  For example, the file _\b/_\b._\bu_\bp_\bd_\ba_\bt_\be_\b._\bk_\be_\by_\b1_\b2_\b8_\b._\b3_\b2_\b._\b1_\b3_\b0_\b._\b3 would contain a
+     copy of the key of the client with IP address 128.32.130.3.  These keys
+     provide a shared secret which may be used to establish a secure channel
+     between the client hosts and the Kerberos server.
+
+F\bFI\bIL\bLE\bES\bS
+     /.update.keyxx.xx.xx.xx          shared DES key with server
+     /etc/kerberosIV/register_keys    server's key storage directory
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     register(1),  registerd(8),  kerberos(1)
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The m\bma\bak\bke\be_\b_k\bke\bey\byp\bpa\bai\bir\br utility first appeared in 4.4BSD.
+
+4.4BSD                         December 11, 1993                             1
diff --git a/usr/share/man/cat8/registerd.0 b/usr/share/man/cat8/registerd.0
new file mode 100644 (file)
index 0000000..8ca0b0f
--- /dev/null
@@ -0,0 +1,31 @@
+REGISTERD(8)              BSD System Manager's Manual             REGISTERD(8)
+
+N\bNA\bAM\bME\bE
+     r\bre\beg\bgi\bis\bst\bte\ber\brd\bd - Kerberos registration daemon
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     r\bre\beg\bgi\bis\bst\bte\ber\brd\bd
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     Act as a registration agent for a Kerberos domain.
+
+F\bFI\bIL\bLE\bES\bS
+     /.update.keyxx.xx.xx.xx        shared DES key with server
+     /etc/kerberosIV/principal*     Kerberos database
+     /etc/kerberosIV/register_keys  directory containing keys for trusted
+                                    hosts
+
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+     registerd(8),  kerberos(1)
+
+D\bDI\bIA\bAG\bGN\bNO\bOS\bST\bTI\bIC\bCS\bS
+     ``Already exists'', if the user already exists in the Kerberos database.
+
+     ``Permission Denied'', if the host on which register is being run is un-
+     trusted.
+
+H\bHI\bIS\bST\bTO\bOR\bRY\bY
+     The r\bre\beg\bgi\bis\bst\bte\ber\brd\bd utility first appeared in 4.4BSD.
+
+
+4.4BSD                         December 11, 1993                             1