The first step in this process is starting with a clean build machine of each platform. Currently supported platforms are:
Note: building the DOS libraries requires access to the Novell LAN WorkPlace Programmer's toolkit, and the libraries and executables produced are only compatible with Novell LAN WorkPlace for DOS.
all for the Win32 i386 platform.
The first step to the process is the creation of an install target
directory \ATHENA
with the following structure:
ATHENA
BIN
WIN16
WIN32
I386
ALPHA
OS2
LIB
WIN16
WIN32
I386
ALPHA
OS2
INCLUDE
The platform-specific leaves are only necessary when building for the
specified platform, but this is the structure assumed by the
installation procedure below, so the paths to leaves in use should not
change. The root of the tree can be placed anywhere you like,
ATHENA
is just a suggestion.
The new version of the library uses a configuration include file
that allows a single MAKEFILE
to be used for builds on
all platforms for all libraries and clients, theoretically. The
variables that need to be set for proper operation of this
MAKEFILE
scheme are:
PLATFORM
DOS16
, WIN16
, WIN32
,
or OS2
, as denoted in parentheses above in the list of
available target libraries and clients.
CPU
WIN32
target platform. Currently supported values
for this value are i386
and ALPHA
.
ATHENA
NMAKE INSTALL
to
copy the libraries and binaries to the correct location. It should be
set to the directory name of the athena distribution root directory,
e.g. d:\ATHENA
.
INCLUDE
CONFIGUR.MAK
, most likely
d:\ATHENA\INCLUDE
. For WIN16
compiling, it
must also have an entry containing DOSWIN16.MAK
(provided
with the distribution.) For WIN32
compiling, the
variable must also have an entry containing NTWIN32.MAK
(provided with MS VC++ 2.0 in the \MSVC20\INCLUDE
directory.)
The INCLUDE
environment variable should be purged of
all links to old include directories, such as LOCALH
.
The include files were updated quite a bit this summer, and the
current makefiles and source files are incompatible with the old
includes.
Under DOS, the INCLUDE
variable also needs to have a
pointer to the Novell LAN WorkPlace programmer's toolkit include
directory.
LIB
\ATHENA\LIB
for the platform
being developed for. This directory is used as a repository for the
static libraries and import libraries for the specified platforms.
The source code distribution should be unzipped with paths preserved
(using PKUNZIP -d
or InfoZip's unzip
) into
any directory. This directory is referred to below as the "build
directory."
The "standard build sequence" referred to below is the process undergone for most of the libraries and applications in the Kerberos release. The sequence consists of two steps:
NMAKE
- type this to build the default target in
the approriate subdirectory. Use NMAKE /a
to force
a complete recompilation of all default targets.
NMAKE INSTALL
- type this after the completed build
of a target to copy the output files to the appropriate install target
directory (pointed to by the ATHENA
environment variable
at the time of this writing.)
Another NMAKE
target available in most directories is
NMAKE clean
, a command that clears out the output
directory for the current platform, allowing a complete recompilation
of the targets.
ATHENA\LIB
.More information on com_err is given below in the com_err Programmer's Guide.
ATHENA\LIB\DOS16
.
ATHENA\LIB\DOS16
, while under other platforms
it's a DLL with exports for the Kerberos API as well as the DES API.
If you use the lsh_* APIs in this library, you must also have the
Leash UI library compiled, since the Kerberos library now simply
searches the Leash UI library for the new versions of these APIs.
KRBV4WIN
in preparation for the future possibility
of inserting code to call Kerberos v5 APIs in the future, making one
integrated interface for the two Security libraries in the future.This library is currently only available under Win16 and Win32.
KINIT
, KLIST
,
KDESTROY
, and KEXPIRE
. These ticket
handling programs get tickets, list them, destroy them, and check
for valid ones, respectively.These utilities are available on systems with command-line interfaces, namely DOS, Win32, and OS/2.
COM_ERR
subdirectory of
the build directory. This library is optional, and
is not used in or required for any currently existent DOS
applications.
KRB\LIB\CNSDES
subdirectory of the build
directory. This library is required for almost all Kerberos DOS
utilities.
KRB\LIB\KRB
. The DOS static
Kerberos library is the only version of the Kerberos library built out
of this directory.
NMAKE /f krblib.mak
.
NMAKE install
nor NMAKE clean
are availble in this directory. The former should be replaced by an
explicit copy command from KRBLIB.LIB
to the
LIB\DOS16
subdirectory of the ATHENA
directory. NMAKE clean
can be simulated by deleting
the files *.OBJ
and *.LIB
from the
directory.
KRB\KUSER
subdirectory of
the build directory.
COM_ERR
subdirectory of
the build directory. This library is required if you plan to compile
any applications that use the Leash user interface dynamic link
library, including the Leash application included in this
distribution.
KRB\LIB\CNSDES
subdirectory of the build directory. It
is not necessary to install this in the install target directory,
since it is simply linked into the Kerberos DLL, and is available by
export from there. The Kerberos DLL build procedure expects this
library to be in the appropriate subdirectory of
KRB\LIB\CNSDES
.
KRB\LIB\KRBDLL
subdirectory of the build directory.
LEASH
subdirectory of the build directory.
COM_ERR
subdirectory of
the build directory. This library is required if you plan to compile
any applications that use the Leash user interface dynamic link
library, including the Leash application included in this
distribution.
KRB\LIB\CNSDES
subdirectory of the build directory. It
is not necessary to install this in the install target directory,
since it is simply linked into the Kerberos DLL, and is available by
export from there. The Kerberos DLL build procedure expects this
library to be in the appropriate subdirectory of
KRB\LIB\CNSDES
.
KRB\LIB\KRBDLL
subdirectory of the build directory.
KRB\LIB\LEASHDLL
subdirectory of the build directory.
LEASH
subdirectory of the build directory.
KRB\KUSER
subdirectory of
the build directory.
COM_ERR
subdirectory of
the build directory. This library is required if you plan to compile
any applications that use the Leash user interface dynamic link
library, including the Leash application included in this
distribution.
KRB\LIB\CNSDES
subdirectory of the build directory. It
is not necessary to install this in the install target directory,
since it is simply linked into the Kerberos DLL, and is available by
export from there. The Kerberos DLL build procedure expects this
library to be in the appropriate subdirectory of
KRB\LIB\CNSDES
.
KRB\LIB\KRBDLL
subdirectory of the build directory.
LEASH
subdirectory of the build directory.
KRB\KUSER
subdirectory of
the build directory.
ATHENA
BIN
DOS16
WIN16
WIN32
I386
ALPHA
OS2
LIB
DOS16
WIN16
WIN32
I386
ALPHA
OS2
INCLUDE
(_/ is supposed to be a stylized ASCII checkmark symbol) (Left two columns blank indicate untested feature) (** indicate a known bug) Leash API _/Leash_changepwd_dlg leash _/Leash_kinit_dlg leash _/Leash_kdestroy leash _/Leash_klist leash Leash_get_lsh_errno _/Leash_kinit krbtest (via compatibility) _/Leash_changepwd krbtest (via compatibility) _/Leash com_err items leash _/proper function of error TechMail messages (see known bugs) Backwards compatibility of old Lsh API _/Lsh_Enter_Password_Dialog TechMail, TechNotify _/Lsh_Change_Password_Dialog krbtest _/lsh_kinit krbtest _/lsh_kdestroy krbtest _/lsh_klist TechMail _/lsh_checkpwd krbtest _/lsh_changepwd krbtest _/proper loading and TechMail unloading of library _/proper function of error TechMail messages (see known bugs) New DES and string_to_key code _/MIT password recognized leash (shabby@ATHENA.MIT.EDU) _/MIT password changed properly leash (shabby@ATHENA.MIT.EDU) _/CMU password recognized leash (pbh@UMICH.EDU) _/CMU password changed properly leash (pbh@UMICH.EDU) (used debugger to verify correct string_to_key used) Migration from CMU to MIT umich_string_to_key Win32 port of Kerberos _/kinit _/klist _/kdestroy _/kexpire _/Leash _/com_err stuff
_/Incorrect password (krb error 62) _/Cleartext password did not match key (kadm error 33) _/Leash-specific error - tickets about to expire, with %b MessageBox attributes passed along
_/Incorrect password (krb error 62) _/Insecure password (kadm error 32)
See known bugs #2.