Added 3 new files and changed the makefile in lib to be able to make a DLL
authorKeith Vetter <keithv@fusion.com>
Thu, 16 Mar 1995 05:05:34 +0000 (05:05 +0000)
committerKeith Vetter <keithv@fusion.com>
Thu, 16 Mar 1995 05:05:34 +0000 (05:05 +0000)
on the PC out of the source in crypto, krb5 and util\et.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5130 dc483132-0cff-0310-8789-dd5450dbe970

15 files changed:
src/lib/ChangeLog
src/lib/Makefile.in
src/lib/crypto/ChangeLog
src/lib/crypto/Makefile.in
src/lib/gssapi/ChangeLog
src/lib/gssapi/Makefile.in
src/lib/krb5/ChangeLog
src/lib/krb5/Makefile.in
src/lib/krb5/ccache/ChangeLog
src/lib/krb5/ccache/Makefile.in
src/lib/krb5/keytab/ChangeLog
src/lib/krb5/keytab/Makefile.in
src/lib/libkrb5.def [new file with mode: 0644]
src/lib/win_glue.c [new file with mode: 0644]
src/lib/winsock.def [new file with mode: 0644]

index e84f31e914b922396e63629aba95ebd20badcc9a..81546d0117eb686b5312c5b6aae8661ce38785f0 100644 (file)
@@ -1,3 +1,9 @@
+Wed Mar 15 20:45:33 1995 Keith Vetter (keithv@fusion.com)
+
+       * libkrb5.def, winsock.def, win_glue.c: new files for making DLL.
+        * Makefile.in: On the PC it recurses into all subdirs and builds
+           libkrb5.dll.
+
 Tue Feb 28 01:33:52 1995  John Gilmore  (gnu at toad.com)
 
        * glue4.c:  Avoid <krb5/...> includes.
index 06a2a7bb5e848da0e7162ce9ea7dd8d7f07079f1..075710f9c14d8818715104d5649b1251f0a33c4a 100644 (file)
@@ -1,7 +1,93 @@
 CFLAGS = $(CCOPTS) $(DEFS)
 LDFLAGS = -g
 
-all::
+##DOSBUILDTOP = ..
+##DOS!include $(BUILDTOP)\config\windows.in
+
+all:: all-$(WHAT)
+
+all-unix::
+
+clean:: clean-$(WHAT)
+
+clean-unix::
+       $(RM) libkrb5.a libkdb5.a libcrypto.a 
+       $(RM) libgssapi_krb5.a libdes425.a libkrb425.a
+
+clean-windows::
+       $(RM) libkrb5.dll libkrb5.lib libkrb5.bak winsock.lib
+#
+# Windows stuff to make libkrb5.dll and libkrb5.lib. Currently it
+# combines crypto, krb5 and the util/et directories.
+#
+CLIB = crypto\crypto.lib
+KLIB = krb5\krb5.lib
+ETLIB = $(BUILDTOP)\util\et\comerr.lib
+WLIB = .\winsock.lib
+LIBS = $(CLIB) $(KLIB) $(ETLIB) $(WLIB)
+
+#
+# Fast: is a faster way to make things on the PC. Unfortunately it requires
+# the unix utility sed so it can't be part of the final production release.
+#
+fast:
+       $(RM) libkrb5.lib libkrb5.dll
+       cd crypto
+       $(MAKE) -$(MFLAGS) LIBCMD=rem
+       libdir crypto.lib
+       cd ..\krb5
+       $(MAKE) -$(MFLAGS) LIBCMD=rem
+       libdir krb5.lib
+       cd ..
+       cd $(BUILDTOP)\util\et
+       $(MAKE) -$(MFLAGS)
+       cd ..\..\lib
+       link /co /seg:400 /noe /nologo win_glue, libkrb5.dll,nul, \
+          $(LIBS) ldllcew libw,libkrb5.def
+       rc /nologo /p /k libkrb5.dll
+       implib /nologo libkrb5.lib libkrb5.dll
+               
+libkrb5.lib:: libkrb5.dll
+       implib /nologo librkb5.lib libkrb5.dll
+       
+libkrb5.dll:: $(LIBS) libkrb5.def win_glue.obj
+       link /co /seg:400 /noe /nol win_glue, libkrb5.dll,nul, \
+          $(LIBS) ldllcew libw,libkrb5.def
+       rc /nologo /p /k libkrb5.dll
+
+winsock.lib:  winsock.def
+       implib /nologo winsock.lib winsock.def
+
+all-windows:: 
+       cd crypto
+       @echo Making in lib\crypto
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
+       cd ..\krb5
+       @echo Making in lib\krb5
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
+       cd ..\gssapi
+       @echo Making in lib\gssapi
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
+       cd ..\des425
+       @echo Making in lib\des425
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
+       cd ..
+
+all-windows:: libkrb5.lib
+
+clean-windows::
+       cd crypto
+       @echo Making clean in lib\crypto
+       -$(MAKE) -$(MFLAGS) clean
+       cd ..\krb5
+       @echo Making clean in lib\krb5
+       -$(MAKE) -$(MFLAGS) clean
+       cd ..\gssapi
+       @echo Making clean in lib\gssapi
+       -$(MAKE) -$(MFLAGS) clean
+       cd ..\des425
+       @echo Making clean in lib\des425
+       -$(MAKE) -$(MFLAGS) clean
+       cd ..
+       @echo Making clean locally
 
-clean::
-       $(RM) libkrb5.a libkdb5.a libcrypto.a libgssapi_krb5.a libdes425.a libkrb425.a
index fc069cdb460be484a8f0f0adf89d0228801a47fd..b845419186ea1cd8f9e47c3ba1c793a2044d4618 100644 (file)
@@ -1,3 +1,7 @@
+Wed Mar 15 20:23:17 1995 Keith Vetter (keithv@fusion.com)
+
+       * Makefile.in: cleaned up for the PC
+
 Tue Mar 14 17:31:01 1995 Keith Vetter (keithv@fusion.com)
 
        * Makefile.in: removed all DLL stuff--it now happens up a directory.
index 63968b12fa330830a69db8e3686238d97eb9a73c..78191b1d88b88aaeeac3288bda74933eca466d78 100644 (file)
@@ -54,55 +54,56 @@ check-unix::
 
 all-windows::
        cd crc32
-       @echo Making in ..\crc32
+       @echo Making in crypto\crc32
        -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\des
-       @echo Making in des
+       @echo Making in crypto\des
        -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\md4
-       @echo Making in ..\md4
+       @echo Making in crypto\md4
        -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\md5
-       @echo Making in ..\md5
+       @echo Making in crypto\md5
        -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\os
-       @echo Making in ..\os
+       @echo Making in crypto\os
        -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..
 
 clean-windows::
        cd crc32
-       @echo Making clean in ..\crc32
+       @echo Making clean in crypto\crc32
        -$(MAKE) -$(MFLAGS) clean
        cd ..\des
-       @echo Making clean in des
+       @echo Making clean in crypto\des
        -$(MAKE) -$(MFLAGS) clean
        cd ..\md4
-       @echo Making clean in ..\md4
+       @echo Making clean in crypto\md4
        -$(MAKE) -$(MFLAGS) clean
        cd ..\md5
-       @echo Making clean in ..\md5
+       @echo Making clean in crypto\md5
        -$(MAKE) -$(MFLAGS) clean
        cd ..\os
-       @echo Making clean in ..\os
+       @echo Making clean in crypto\os
        -$(MAKE) -$(MFLAGS) clean
        cd ..
-
+       @echo Making clean locally
 
 check-windows::
        cd crc32
-       @echo Making check in ..\crc32
+       @echo Making check in crypto\crc32
        -$(MAKE) -$(MFLAGS) check
        cd ..\des
-       @echo Making check in des
+       @echo Making check in crypto\des
        -$(MAKE) -$(MFLAGS) check
        cd ..\md4
-       @echo Making check in ..\md4
+       @echo Making check in crypto\md4
        -$(MAKE) -$(MFLAGS) check
        cd ..\md5
-       @echo Making check in ..\md5
+       @echo Making check in crypto\md5
        -$(MAKE) -$(MFLAGS) check
        cd ..\os
-       @echo Making check in ..\os
+       @echo Making check in crypto\os
        -$(MAKE) -$(MFLAGS) check
        cd ..
+
index 2bd94d756f8a9eb2b23b9363dad3397e39e62921..4f010d12ae3e271ca7a3f7bdb8d8e02d1b4e178a 100644 (file)
@@ -1,3 +1,7 @@
+Wed Mar 15 20:23:17 1995 Keith Vetter (keithv@fusion.com)
+
+       * Makefile.in: cleaned up for the PC
+
 Mon Feb 20 21:38:20 1995 Keith Vetter (keithv@fusion.com)
 
        * Makefile.in: made to work on the PC
index 06c4091136f8686fbf9fd13e79c74446d004a7fd..17b1612ed760761fd0dde1143760b4c33ea09954 100644 (file)
@@ -24,20 +24,20 @@ clean-unix::
 
 all-windows::
        cd generic
-       @echo Making in ..\generic
+       @echo Making in gssapi\generic
        -$(MAKE) -$(MFLAGS) LIB=$(LIB)
        cd ..\krb5
-       @echo Making in krb5
+       @echo Making in gssapi\krb5
        -$(MAKE) -$(MFLAGS) LIB=$(LIB)
        cd ..
 
 clean-windows::
        cd generic
-       @echo Making clean in ..\generic
+       @echo Making clean in gssapi\generic
        -$(MAKE) -$(MFLAGS) clean
        cd ..\krb5
-       @echo Making clean in krb5
+       @echo Making clean in gssapi\krb5
        -$(MAKE) -$(MFLAGS) clean
        cd ..
-
+       @echo Making clean locally
 
index 5854c130e64a4b9087836bc1d6518f6b872524ec..2f3e0b6284d6fd048199bc2765149e7f0295921e 100644 (file)
@@ -1,3 +1,7 @@
+Wed Mar 15 20:23:17 1995 Keith Vetter (keithv@fusion.com)
+
+       * Makefile.in: cleaned up for the PC
+
 Wed Mar 15 12:26:21 1995 Keith Vetter (keithv@fusion.com)
 
        * Makefile.in: made so it recurses into the subdirs for the PC.
index a9d85fb3546bd7aad5622699cedb64b07ba9d1de..bd8358753bf65ca9b0b6021a1676dfe1df387ca9 100644 (file)
@@ -47,61 +47,61 @@ clean-windows::
 
 all-windows::
        cd ASN.1
-       @echo Making in ASN.1
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\asn.1
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\CCACHE
-       @echo Making in CCACHE
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\ccache
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\ERROR_TA
-       @echo Making in ERROR_TA
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\error_ta
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\FREE
-       @echo Making in FREE
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\free
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\KEYTAB
-       @echo Making in KEYTAB
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\keytab
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\KRB
-       @echo Making in KRB
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\krb
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\OS
-       @echo Making in OS
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\os
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\POSIX
-       @echo Making in POSIX
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\posix
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..\RCACHE
-       @echo Making in RCACHE
-       -$(MAKE) -$(MFLAGS) LIBCMD="$(LIBCMD)"
+       @echo Making in lib\rcache
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..
 
 clean-windows::
        cd ASN.1
-       @echo Making clean in ASN.1
+       @echo Making clean in lib\asn.1
        -$(MAKE) -$(MFLAGS) clean
        cd ..\CCACHE
-       @echo Making clean in CCACHE
+       @echo Making clean in lib\ccache
        -$(MAKE) -$(MFLAGS) clean
        cd ..\ERROR_TA
-       @echo Making clean in ERROR_TA
+       @echo Making clean in lib\error_ta
        -$(MAKE) -$(MFLAGS) clean
        cd ..\FREE
-       @echo Making clean in FREE
+       @echo Making clean in lib\free
        -$(MAKE) -$(MFLAGS) clean
        cd ..\KEYTAB
-       @echo Making clean in KEYTAB
+       @echo Making clean in lib\keytab
        -$(MAKE) -$(MFLAGS) clean
        cd ..\KRB
-       @echo Making clean in KRB
+       @echo Making clean in lib\krb
        -$(MAKE) -$(MFLAGS) clean
        cd ..\OS
-       @echo Making clean in OS
+       @echo Making clean in lib\os
        -$(MAKE) -$(MFLAGS) clean
        cd ..\POSIX
-       @echo Making clean in POSIX
+       @echo Making clean in lib\posix
        -$(MAKE) -$(MFLAGS) clean
        cd ..\RCACHE
-       @echo Making clean in RCACHE
+       @echo Making clean in lib\rcache
        -$(MAKE) -$(MFLAGS) clean
        cd ..
        @echo Making clean locally
index 1738c1f01f0d0550f4e10436f419dc22338162a1..6c836f48f3b06341353d568203d39a6921e35a39 100644 (file)
@@ -1,3 +1,7 @@
+Wed Mar 15 20:23:17 1995 Keith Vetter (keithv@fusion.com)
+
+       * Makefile.in: cleaned up for the PC
+
 Tue Mar  7 19:53:05 1995  Mark Eichin  <eichin@cygnus.com>
 
        * configure.in: take out ISODE_DEFS.
index 8567261929a9defc12ac9b3fd8d7444ebd66fe46..8ecc63f7a92ff96ea86df9e7dc9d96f9f7fd827a 100644 (file)
@@ -19,7 +19,7 @@ all-unix::
 
 all-windows::
        cd FILE
-       @echo Making in CCACHE\FILE
+       @echo Making in ccache\file
        -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..
 
@@ -29,7 +29,8 @@ clean-unix::
 
 clean-windows::
        cd FILE
-       @echo Making clean in CCACHE\FILE
+       @echo Making clean in ccache\file
        -$(MAKE) -$(MFLAGS) clean
        cd ..
-        
+       @echo Making clean locally
+
index fd024cc2e60ba7ed6415378b820c792604113fd6..68a83b9f2ffd0f21e0450c47c5aef887e8abd43a 100644 (file)
@@ -1,3 +1,7 @@
+Wed Mar 15 20:23:17 1995 Keith Vetter (keithv@fusion.com)
+
+       * Makefile.in: cleaned up for the PC
+
 Tue Mar 7 21:40:18 1995 Keith Vetter (keithv@fusion.com)
 
        * Makefile.in: changed library name for the PC.
index 52312bfc30042c8002198041f15d7fa41ef107dd..659d94fcc7549287dfffdddbbc0a64bd08e527b8 100644 (file)
@@ -27,7 +27,7 @@ all-unix::
 
 all-windows::
        cd file
-       @echo Making in .\file
+       @echo Making in keytab\file
        -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
        cd ..
 
@@ -37,6 +37,8 @@ clean-unix::
 
 clean-windows::
        cd file
-       @echo Making clean in .\file
+       @echo Making clean in keytab\file
        -$(MAKE) -$(MFLAGS) clean
        cd ..
+       @echo Making clean locally
+
diff --git a/src/lib/libkrb5.def b/src/lib/libkrb5.def
new file mode 100644 (file)
index 0000000..74368ea
--- /dev/null
@@ -0,0 +1,391 @@
+;-----------------------------
+;   LIBKRB5.DEF - module definition file
+;-----------------------------
+
+LIBRARY   LIBKRB5
+DESCRIPTION 'DLL for Kerberos 5'
+EXETYPE   WINDOWS
+CODE      PRELOAD MOVEABLE DISCARDABLE
+DATA      PRELOAD MOVEABLE SINGLE
+HEAPSIZE  8192
+
+EXPORTS
+       WEP                                     @1 RESIDENTNAME
+       LIBMAIN                                 @2
+       ASN12KRB5_BUF                           @3
+       ASN1BUF_CREATE                          @4
+       ASN1BUF_DESTROY                         @5
+       ASN1BUF_ENSURE_SPACE                    @6
+       ASN1BUF_EXPAND                          @7
+       ASN1BUF_FREE                            @8
+       ASN1BUF_HEX_UNPARSE                     @9
+       ASN1BUF_IMBED                           @10
+       ASN1BUF_INSERT_CHARSTRING               @11
+       ASN1BUF_INSERT_OCTET                    @12
+       ASN1BUF_INSERT_OCTETSTRING              @13
+       ASN1BUF_LEN                             @14
+       ASN1BUF_REMAINS                         @15
+       ASN1BUF_REMOVE_CHARSTRING               @16
+       ASN1BUF_REMOVE_OCTET                    @17
+       ASN1BUF_REMOVE_OCTETSTRING              @18
+       ASN1BUF_SIZE                            @19
+       ASN1BUF_SYNC                            @20
+       ASN1BUF_UNPARSE                         @21
+       ASN1BUF_WRAP_DATA                       @22
+       ASN1_DECODE_ADDRTYPE                    @23
+       ASN1_DECODE_AP_OPTIONS                  @24
+       ASN1_DECODE_AUTHDATATYPE                @25
+       ASN1_DECODE_AUTHDATA_ELT                @26
+       ASN1_DECODE_AUTHORIZATION_DATA          @27
+       ASN1_DECODE_CHARSTRING                  @28
+       ASN1_DECODE_CHECKSUM                    @29
+       ASN1_DECODE_CKSUMTYPE                   @30
+       ASN1_DECODE_ENCRYPTED_DATA              @31
+       ASN1_DECODE_ENCRYPTION_KEY              @32
+       ASN1_DECODE_ENCTYPE                     @33
+       ASN1_DECODE_ENC_KDC_REP_PART            @34
+       ASN1_DECODE_GENERALSTRING               @35
+       ASN1_DECODE_GENERALTIME                 @36
+       ASN1_DECODE_HOST_ADDRESS                @37
+       ASN1_DECODE_HOST_ADDRESSES              @38
+       ASN1_DECODE_IA5STRING                   @39
+       ASN1_DECODE_INT                         @40
+       ASN1_DECODE_INT32                       @41
+       ASN1_DECODE_INTEGER                     @42
+       ASN1_DECODE_KDC_OPTIONS                 @43
+       ASN1_DECODE_KDC_REP                     @44
+       ASN1_DECODE_KDC_REQ                     @45
+       ASN1_DECODE_KDC_REQ_BODY                @46
+       ASN1_DECODE_KERBEROS_TIME               @47
+       ASN1_DECODE_KEYTYPE                     @48
+       ASN1_DECODE_KRB5_FLAGS                  @49
+       ASN1_DECODE_KRB_CRED_INFO               @50
+       ASN1_DECODE_KRB_SAFE_BODY               @51
+       ASN1_DECODE_KVNO                        @52
+       ASN1_DECODE_LAST_REQ                    @53
+       ASN1_DECODE_LAST_REQ_ENTRY              @54
+       ASN1_DECODE_MSGTYPE                     @55
+       ASN1_DECODE_NULL                        @56
+       ASN1_DECODE_OCTET                       @57
+       ASN1_DECODE_OCTETSTRING                 @58
+       ASN1_DECODE_PASSWDSEQUENCE              @59
+       ASN1_DECODE_PA_DATA                     @60
+       ASN1_DECODE_PRINCIPAL_NAME              @61
+       ASN1_DECODE_PRINTABLESTRING             @62
+       ASN1_DECODE_REALM                       @63
+       ASN1_DECODE_SEQUENCE_OF_ENCTYPE         @64
+       ASN1_DECODE_SEQUENCE_OF_KRB_CRED_INFO   @65
+       ASN1_DECODE_SEQUENCE_OF_PASSWDSEQUENCE  @66
+       ASN1_DECODE_SEQUENCE_OF_PA_DATA         @67
+       ASN1_DECODE_SEQUENCE_OF_TICKET          @68
+       ASN1_DECODE_TICKET                      @69
+       ASN1_DECODE_TICKET_FLAGS                @70
+       ASN1_DECODE_TRANSITED_ENCODING          @71
+       ASN1_DECODE_UI_2                        @72
+       ASN1_DECODE_UI_4                        @73
+       ASN1_DECODE_UNSIGNED_INTEGER            @74
+       ASN1_ENCODE_AP_OPTIONS                  @75
+       ASN1_ENCODE_AUTHORIZATION_DATA          @76
+       ASN1_ENCODE_CHARSTRING                  @77
+       ASN1_ENCODE_CHECKSUM                    @78
+       ASN1_ENCODE_ENCRYPTED_DATA              @79
+       ASN1_ENCODE_ENCRYPTION_KEY              @80
+       ASN1_ENCODE_ENC_KDC_REP_PART            @81
+       ASN1_ENCODE_GENERALSTRING               @82
+       ASN1_ENCODE_GENERALTIME                 @83
+       ASN1_ENCODE_HOST_ADDRESS                @84
+       ASN1_ENCODE_HOST_ADDRESSES              @85
+       ASN1_ENCODE_IA5STRING                   @86
+       ASN1_ENCODE_INTEGER                     @87
+       ASN1_ENCODE_KDC_OPTIONS                 @88
+       ASN1_ENCODE_KDC_REP                     @89
+       ASN1_ENCODE_KDC_REQ                     @90
+       ASN1_ENCODE_KDC_REQ_BODY                @91
+       ASN1_ENCODE_KERBEROS_TIME               @92
+       ASN1_ENCODE_KRB5_AUTHDATA_ELT           @93
+       ASN1_ENCODE_KRB5_FLAGS                  @94
+       ASN1_ENCODE_KRB_CRED_INFO               @95
+       ASN1_ENCODE_KRB_SAFE_BODY               @96
+       ASN1_ENCODE_LAST_REQ                    @97
+       ASN1_ENCODE_LAST_REQ_ENTRY              @98
+       ASN1_ENCODE_NULL                        @99
+       ASN1_ENCODE_OCTETSTRING                 @100
+       ASN1_ENCODE_PASSWDSEQUENCE              @101
+       ASN1_ENCODE_PA_DATA                     @102
+       ASN1_ENCODE_PRINCIPAL_NAME              @103
+       ASN1_ENCODE_PRINTABLESTRING             @104
+       ASN1_ENCODE_REALM                       @105
+       ASN1_ENCODE_SEQUENCE_OF_ENCTYPE         @106
+       ASN1_ENCODE_SEQUENCE_OF_KRB_CRED_INFO   @107
+       ASN1_ENCODE_SEQUENCE_OF_PASSWDSEQUENCE  @108
+       ASN1_ENCODE_SEQUENCE_OF_PA_DATA         @109
+       ASN1_ENCODE_SEQUENCE_OF_TICKET          @110
+       ASN1_ENCODE_TICKET                      @111
+       ASN1_ENCODE_TICKET_FLAGS                @112
+       ASN1_ENCODE_TRANSITED_ENCODING          @113
+       ASN1_ENCODE_UI_4                        @114
+       ASN1_ENCODE_UNSIGNED_INTEGER            @115
+       ASN1_GET_ID                             @116
+       ASN1_GET_LENGTH                         @117
+       ASN1_GET_SEQUENCE                       @118
+       ASN1_GET_TAG                            @119
+       ASN1_KRB5_REALM_COPY                    @120
+       ASN1_MAKE_ETAG                          @121
+       ASN1_MAKE_ID                            @122
+       ASN1_MAKE_LENGTH                        @123
+       ASN1_MAKE_SEQUENCE                      @124
+       ASN1_MAKE_SET                           @125
+       ASN1_MAKE_STRING                        @126
+       ASN1_MAKE_TAG                           @127
+       DECODE_KRB5_AP_REP                      @128
+       DECODE_KRB5_AP_REP_ENC_PART             @129
+       DECODE_KRB5_AP_REQ                      @130
+       DECODE_KRB5_AS_REP                      @131
+       DECODE_KRB5_AS_REQ                      @132
+       DECODE_KRB5_AUTHDATA                    @133
+       DECODE_KRB5_AUTHENTICATOR               @134
+       DECODE_KRB5_CRED                        @135
+       DECODE_KRB5_ENCRYPTION_KEY              @136
+       DECODE_KRB5_ENC_CRED_PART               @137
+       DECODE_KRB5_ENC_KDC_REP_PART            @138
+       DECODE_KRB5_ENC_PRIV_PART               @139
+       DECODE_KRB5_ENC_TKT_PART                @140
+       DECODE_KRB5_ERROR                       @141
+       DECODE_KRB5_KDC_REQ_BODY                @142
+       DECODE_KRB5_PRIV                        @143
+       DECODE_KRB5_PWD_DATA                    @144
+       DECODE_KRB5_PWD_SEQUENCE                @145
+       DECODE_KRB5_SAFE                        @146
+       DECODE_KRB5_TGS_REP                     @147
+       DECODE_KRB5_TGS_REQ                     @148
+       DECODE_KRB5_TICKET                      @149
+       ENCODE_KRB5_AP_REP                      @150
+       ENCODE_KRB5_AP_REP_ENC_PART             @151
+       ENCODE_KRB5_AP_REQ                      @152
+       ENCODE_KRB5_AS_REP                      @153
+       ENCODE_KRB5_AS_REQ                      @154
+       ENCODE_KRB5_AUTHDATA                    @155
+       ENCODE_KRB5_AUTHENTICATOR               @156
+       ENCODE_KRB5_CRED                        @157
+       ENCODE_KRB5_ENCRYPTION_KEY              @158
+       ENCODE_KRB5_ENC_CRED_PART               @159
+       ENCODE_KRB5_ENC_KDC_REP_PART            @160
+       ENCODE_KRB5_ENC_PRIV_PART               @161
+       ENCODE_KRB5_ENC_TKT_PART                @162
+       ENCODE_KRB5_ERROR                       @163
+       ENCODE_KRB5_KDC_REQ_BODY                @164
+       ENCODE_KRB5_PRIV                        @165
+       ENCODE_KRB5_PWD_DATA                    @166
+       ENCODE_KRB5_PWD_SEQUENCE                @167
+       ENCODE_KRB5_SAFE                        @168
+       ENCODE_KRB5_TGS_REP                     @169
+       ENCODE_KRB5_TGS_REQ                     @170
+       ENCODE_KRB5_TICKET                      @171
+       GET_SECURID_PADATA                      @172
+       GET_UNIXTIME_PADATA                     @173
+       KEYTAB_KEYPROC                          @174
+       KRB5_425_CONV_PRINCIPAL                 @175
+       KRB5_524_CONV_PRINCIPAL                 @176
+       KRB5_ADDRESS_COMPARE                    @177
+       KRB5_ADDRESS_ORDER                      @178
+       KRB5_ADDRESS_SEARCH                     @179
+       KRB5_APPEND_ADDRESSES                   @180
+       KRB5_AUTH_TO_REP                        @181
+       KRB5_CHECK_TRANSITED_LIST               @182
+       KRB5_COPY_ADDRESSES                     @183
+       KRB5_COPY_AUTHDATA                      @184
+       KRB5_COPY_AUTHENTICATOR                 @185
+       KRB5_COPY_CHECKSUM                      @186
+       KRB5_COPY_CREDS                         @187
+       KRB5_COPY_DATA                          @188
+       KRB5_COPY_KEYBLOCK                      @189
+       KRB5_COPY_KEYBLOCK_CONTENTS             @190
+       KRB5_COPY_PRINCIPAL                     @191
+       KRB5_COPY_TICKET                        @192
+       KRB5_DECODE_KDC_REP                     @193
+       KRB5_DECRYPT_TKT_PART                   @194
+       KRB5_ENCODE_KDC_REP                     @195
+       KRB5_ENCRYPT_TKT_PART                   @196
+       KRB5_FREE_ADDRESS                       @197
+       KRB5_FREE_ADDRESSES                     @198
+       KRB5_FREE_AP_REP                        @199
+       KRB5_FREE_AP_REP_ENC_PART               @200
+       KRB5_FREE_AP_REQ                        @201
+       KRB5_FREE_AUTHDATA                      @202
+       KRB5_FREE_AUTHENTICATOR                 @203
+       KRB5_FREE_AUTHENTICATOR_CONTENTS        @204
+       KRB5_FREE_CHECKSUM                      @205
+       KRB5_FREE_CONTEXT                       @206
+       KRB5_FREE_CRED                          @207
+       KRB5_FREE_CREDS                         @208
+       KRB5_FREE_CRED_CONTENTS                 @209
+       KRB5_FREE_CRED_ENC_PART                 @210
+       KRB5_FREE_ENC_KDC_REP_PART              @211
+       KRB5_FREE_ENC_TKT_PART                  @212
+       KRB5_FREE_ERROR                         @213
+       KRB5_FREE_KDC_REP                       @214
+       KRB5_FREE_KDC_REQ                       @215
+       KRB5_FREE_KEYBLOCK                      @216
+       KRB5_FREE_LAST_REQ                      @217
+       KRB5_FREE_PA_DATA                       @218
+       KRB5_FREE_PRINCIPAL                     @219
+       KRB5_FREE_PRIV                          @220
+       KRB5_FREE_PRIV_ENC_PART                 @221
+       KRB5_FREE_PWD_DATA                      @222
+       KRB5_FREE_PWD_SEQUENCES                 @223
+       KRB5_FREE_REALM_TREE                    @224
+       KRB5_FREE_SAFE                          @225
+       KRB5_FREE_TGT_CREDS                     @226
+       KRB5_FREE_TICKET                        @227
+       KRB5_FREE_TICKETS                       @228
+       KRB5_FREE_TKT_AUTHENT                   @229
+       KRB5_FULLADDR_ORDER                     @230
+       KRB5_GENERATE_SEQ_NUMBER                @231
+       KRB5_GENERATE_SUBKEY                    @232
+       KRB5_GET_CREDENTIALS                    @233
+       KRB5_GET_CRED_FROM_KDC                  @234
+       KRB5_GET_CRED_VIA_2TGT                  @235
+       KRB5_GET_CRED_VIA_TGT                   @236
+       KRB5_GET_DEFAULT_IN_TKT_ETYPES          @237
+       KRB5_GET_FOR_CREDS                      @238
+       KRB5_GET_IN_TKT                         @239
+       KRB5_GET_IN_TKT_WITH_KEYTAB             @240
+       KRB5_GET_IN_TKT_WITH_PASSWORD           @241
+       KRB5_GET_IN_TKT_WITH_SKEY               @242
+       KRB5_GET_SERVER_RCACHE                  @243
+       KRB5_INIT_CONTEXT                       @244
+       KRB5_INIT_ETS                           @245
+       KRB5_KDC_REP_DECRYPT_PROC               @246
+       KRB5_KTFILEINT_CLOSE                    @247
+       KRB5_KTFILEINT_DELETE_ENTRY             @248
+       KRB5_KTFILEINT_FIND_SLOT                @249
+       KRB5_KTFILEINT_INTERNAL_READ_ENTRY      @250
+       KRB5_KTFILEINT_OPENR                    @251
+       KRB5_KTFILEINT_OPENW                    @252
+       KRB5_KTFILEINT_READ_ENTRY               @253
+       KRB5_KTFILEINT_SIZE_ENTRY               @254
+       KRB5_KTFILEINT_WRITE_ENTRY              @255
+       KRB5_KTFILE_ADD                         @256
+       KRB5_KTFILE_CLOSE                       @257
+       KRB5_KTFILE_END_GET                     @258
+       KRB5_KTFILE_GET_ENTRY                   @259
+       KRB5_KTFILE_GET_NAME                    @260
+       KRB5_KTFILE_GET_NEXT                    @261
+       KRB5_KTFILE_REMOVE                      @262
+       KRB5_KTFILE_RESOLVE                     @263
+       KRB5_KTFILE_START_SEQ_GET               @264
+       KRB5_KTFILE_WRESOLVE                    @265
+       KRB5_KT_ADD_ENTRY                       @266
+       KRB5_KT_DEFAULT                         @267
+       KRB5_KT_FREE_ENTRY                      @268
+       KRB5_KT_READ_SERVICE_KEY                @269
+       KRB5_KT_REGISTER                        @270
+       KRB5_KT_REMOVE_ENTRY                    @271
+       KRB5_KT_RESOLVE                         @272
+       KRB5_MK_CRED                            @273
+       KRB5_MK_ERROR                           @274
+       KRB5_MK_PRIV                            @275
+       KRB5_MK_REP                             @276
+       KRB5_MK_REQ                             @277
+       KRB5_MK_REQ_EXTENDED                    @278
+       KRB5_MK_SAFE                            @279
+       KRB5_OBTAIN_PADATA                      @280
+       KRB5_PARSE_NAME                         @281
+       KRB5_PRINCIPAL2SALT                     @282
+       KRB5_PRINCIPAL2SALT_INTERNAL            @283
+       KRB5_PRINCIPAL2SALT_NOREALM             @284
+       KRB5_PRINCIPAL_COMPARE                  @285
+       KRB5_RC_DEFAULT                         @286
+       KRB5_RC_DEFAULT_NAME                    @287
+       KRB5_RC_DEFAULT_TYPE                    @288
+       KRB5_RC_DFL_CLOSE                       @289
+       KRB5_RC_DFL_CLOSE_NO_FREE               @290
+       KRB5_RC_DFL_DESTROY                     @291
+       KRB5_RC_DFL_EXPUNGE                     @292
+       KRB5_RC_DFL_GET_NAME                    @293
+       KRB5_RC_DFL_GET_SPAN                    @294
+       KRB5_RC_DFL_INIT                        @295
+       KRB5_RC_DFL_RECOVER                     @296
+       KRB5_RC_DFL_RESOLVE                     @297
+       KRB5_RC_DFL_STORE                       @298
+       KRB5_RC_FREE_ENTRY                      @299
+       KRB5_RC_GET_TYPE                        @300
+       KRB5_RC_IO_CLOSE                        @301
+       KRB5_RC_IO_CREAT                        @302
+       KRB5_RC_IO_DESTROY                      @303
+       KRB5_RC_IO_MARK                         @304
+       KRB5_RC_IO_MOVE                         @305
+       KRB5_RC_IO_OPEN                         @306
+       KRB5_RC_IO_READ                         @307
+       KRB5_RC_IO_SIZE                         @308
+       KRB5_RC_IO_SYNC                         @309
+       KRB5_RC_IO_UNMARK                       @310
+       KRB5_RC_IO_WRITE                        @311
+       KRB5_RC_REGISTER_TYPE                   @312
+       KRB5_RC_RESOLVE_FULL                    @313
+       KRB5_RC_RESOLVE_TYPE                    @314
+       KRB5_RD_CRED                            @315
+       KRB5_RD_ERROR                           @316
+       KRB5_RD_PRIV                            @317
+       KRB5_RD_REP                             @318
+       KRB5_RD_REQ                             @319
+       KRB5_RD_REQ_DECODED                     @320
+       KRB5_RD_REQ_SIMPLE                      @321
+       KRB5_RD_SAFE                            @322
+       KRB5_REALM_COMPARE                      @323
+       KRB5_RECVAUTH                           @324
+       KRB5_SENDAUTH                           @325
+       KRB5_SEND_TGS                           @326
+       KRB5_SET_DEFAULT_IN_TKT_ETYPES          @327
+       KRB5_TGTNAME                            @328
+       KRB5_UNPARSE_NAME                       @329
+       KRB5_UNPARSE_NAME_EXT                   @330
+       KRB5_VERIFY_PADATA                      @331
+       KRB5_WALK_REALM_TREE                    @332
+       PWD_KEYPROC                             @333
+       SKEY_KEYPROC                            @334
+       VERIFY_SECURID_PADATA                   @335
+       VERIFY_UNIXTIME_PADATA                  @336
+        KRB5_SNAME_TO_PRINCIPAL                 @337
+;Crypto routines
+       CRC32_SUM_FUNC                          @338
+       KRB5_RANDOM_CONFOUNDER                  @339
+       MAKE_KEY_SCHED                          @340
+       MD4_CRYPTO_SUM_FUNC                     @341
+       MD4_SUM_FUNC                            @342
+       MD4FINAL                                @343
+       MD4INIT                                 @344
+       MD4UPDATE                               @345
+       MD5_CRYPTO_SUM_FUNC                     @346
+       MD5_SUM_FUNC                            @347
+       MD5FINAL                                @348
+       MD5INIT                                 @349
+       MD5UPDATE                               @350
+       MIT_DES_CBC_CHECKSUM                    @351
+       MIT_DES_CBC_CKSUM                       @352
+       MIT_DES_CBC_ENCRYPT                     @353
+       MIT_DES_CHECK_KEY_PARITY                @354
+       MIT_DES_CRC_DECRYPT_FUNC                @355
+       MIT_DES_CRC_ENCRYPT_FUNC                @356
+       MIT_DES_ECB_ENCRYPT                     @357
+       MIT_DES_FINISH_KEY                      @358
+       MIT_DES_FINISH_RANDOM_KEY               @359
+       MIT_DES_FIXUP_KEY_PARITY                @360
+       MIT_DES_GENERATE_RANDOM_BLOCK           @361
+       MIT_DES_INIT_RANDOM_KEY                 @362
+       MIT_DES_INIT_RANDOM_NUMBER_GENERATOR    @363
+       MIT_DES_IS_WEAK_KEY                     @364
+       MIT_DES_KEY_SCHED                       @365
+       MIT_DES_MD5_DECRYPT_FUNC                @366
+       MIT_DES_MD5_ENCRYPT_FUNC                @367
+       MIT_DES_NEW_RANDOM_KEY                  @368
+       MIT_DES_PROCESS_KEY                     @369
+       MIT_DES_RANDOM_KEY                      @370
+       MIT_DES_SET_RANDOM_GENERATOR_SEED       @371
+       MIT_DES_SET_SEQUENCE_NUMBER             @372
+       MIT_DES_STRING_TO_KEY                   @373
+       MIT_RAW_DES_DECRYPT_FUNC                @374
+       MIT_RAW_DES_ENCRYPT_FUNC                @375
+;Com_err routines
+        ERROR_MESSAGE                           @379
+        _com_err                                @380
diff --git a/src/lib/win_glue.c b/src/lib/win_glue.c
new file mode 100644 (file)
index 0000000..ae49472
--- /dev/null
@@ -0,0 +1,54 @@
+/* 
+ * WinSock support.
+ *
+ * Do the WinSock initialization call, keeping all the hair here.
+ *
+ * This routine is called by SOCKET_INITIALIZE in include/c-windows.h.
+ * The code is pretty much copied from winsock.txt from winsock-1.1,
+ * available from:
+ * ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock/winsock-1.1
+ */
+
+/* We can't include winsock.h directly because of /Za (stdc) options */
+#define NEED_SOCKETS
+#include "krb5.h"
+
+int
+win_socket_initialize()
+{
+    WORD wVersionRequested;
+    WSADATA wsaData;
+    int err;
+
+    wVersionRequested = 0x0101;                 /* We need version 1.1 */
+
+    err = WSAStartup (wVersionRequested, &wsaData);
+    if (err != 0)
+        return err;                             /* Library can't initialize */
+
+    if (wVersionRequested != wsaData.wVersion) {
+       /* DLL couldn't support our version of the spec */
+        WSACleanup ();
+        return -104;                            /* FIXME -- better error? */
+    }
+
+    return 0;
+}
+
+BOOL CALLBACK
+LibMain (hInst, wDataSeg, cbHeap, CmdLine)
+HINSTANCE hInst;
+WORD wDataSeg;
+WORD cbHeap;
+LPSTR CmdLine;
+{
+    win_socket_initialize ();
+    return 1;
+}
+
+int CALLBACK __export
+WEP(nParam)
+       int nParam;
+{
+    return 1;
+}
diff --git a/src/lib/winsock.def b/src/lib/winsock.def
new file mode 100644 (file)
index 0000000..cada779
--- /dev/null
@@ -0,0 +1,90 @@
+;  
+;         File: winsock.def 
+;       System: MS-Windows 3.x 
+;      Summary: Module definition file for Windows Sockets DLL.  
+;  
+;      This file is from
+;  ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock/winsock-1.1
+;      except that we made all the routine names uppercase, to match what
+;      MicroSoft C does when you declare an interface routine PASCAL
+;      (the way all these routines are declared in .../include/winsock.h).
+;
+
+LIBRARY         WINSOCK         ; Application's module name 
+
+DESCRIPTION     'BSD Socket API for Windows' 
+
+EXETYPE         WINDOWS         ; required for all windows applications 
+
+STUB            'WINSTUB.EXE'   ; generates error message if application 
+                                ; is run without Windows 
+
+;CODE can be FIXED in memory because of potential upcalls 
+CODE            PRELOAD         FIXED 
+
+;DATA must be SINGLE and at a FIXED location since this is a DLL 
+DATA            PRELOAD         FIXED           SINGLE
+
+HEAPSIZE        1024 
+STACKSIZE       16384 
+
+; All functions that will be called by any Windows routine 
+; must be exported.  Any additional exports beyond those defined
+; here must have ordinal numbers 1000 or above. 
+
+EXPORTS 
+        ACCEPT                         @1 
+        BIND                           @2 
+        CLOSESOCKET                    @3 
+        CONNECT                        @4 
+        GETPEERNAME                    @5 
+        GETSOCKNAME                    @6 
+        GETSOCKOPT                     @7 
+        HTONL                          @8 
+        HTONS                          @9 
+        INET_ADDR                      @10 
+        INET_NTOA                      @11 
+        IOCTLSOCKET                    @12 
+        LISTEN                         @13 
+        NTOHL                          @14 
+        NTOHS                          @15 
+        RECV                           @16 
+        RECVFROM                       @17 
+        SELECT                         @18 
+        SEND                           @19 
+        SENDTO                         @20 
+        SETSOCKOPT                     @21 
+        SHUTDOWN                       @22 
+        SOCKET                         @23 
+
+        GETHOSTBYADDR                  @51 
+        GETHOSTBYNAME                  @52 
+        GETPROTOBYNAME                 @53 
+        GETPROTOBYNUMBER               @54 
+        GETSERVBYNAME                  @55 
+        GETSERVBYPORT                  @56 
+        GETHOSTNAME                    @57
+
+        WSAASYNCSELECT                 @101 
+        WSAASYNCGETHOSTBYADDR          @102 
+        WSAASYNCGETHOSTBYNAME          @103 
+        WSAASYNCGETPROTOBYNUMBER       @104 
+        WSAASYNCGETPROTOBYNAME         @105 
+        WSAASYNCGETSERVBYPORT          @106 
+        WSAASYNCGETSERVBYNAME          @107 
+        WSACANCELASYNCREQUEST          @108 
+        WSASETBLOCKINGHOOK             @109 
+        WSAUNHOOKBLOCKINGHOOK          @110 
+        WSAGETLASTERROR                @111 
+        WSASETLASTERROR                @112 
+        WSACANCELBLOCKINGCALL          @113 
+        WSAISBLOCKING                  @114 
+        WSASTARTUP                     @115 
+        WSACLEANUP                     @116 
+
+        __WSAFDISSET                   @151 
+
+        WEP                            @500    RESIDENTNAME 
+
+;eof 
+