summaryrefslogtreecommitdiffstats
path: root/src/lib/crypto/os
diff options
context:
space:
mode:
authorMarc Horowitz <marc@mit.edu>1998-10-30 02:56:35 +0000
committerMarc Horowitz <marc@mit.edu>1998-10-30 02:56:35 +0000
commit1440ab035ba04550ddbbfbff1ee9b5571e3d95db (patch)
tree9d5e8d2e151a930e044c7d0f7c64053d244577a0 /src/lib/crypto/os
parent61ddbf948ba6ee70c1bc049268c3dfa73bc9983e (diff)
pull up 3des implementation from the marc-3des branch
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11001 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto/os')
-rw-r--r--src/lib/crypto/os/.Sanitize39
-rw-r--r--src/lib/crypto/os/ChangeLog204
-rw-r--r--src/lib/crypto/os/Makefile.in28
-rw-r--r--src/lib/crypto/os/c_localaddr.c348
-rw-r--r--src/lib/crypto/os/c_ustime.c316
-rw-r--r--src/lib/crypto/os/rnd_confoun.c98
6 files changed, 0 insertions, 1033 deletions
diff --git a/src/lib/crypto/os/.Sanitize b/src/lib/crypto/os/.Sanitize
deleted file mode 100644
index 2e24ee69f..000000000
--- a/src/lib/crypto/os/.Sanitize
+++ /dev/null
@@ -1,39 +0,0 @@
-# Sanitize.in for Kerberos V5
-
-# Each directory to survive it's way into a release will need a file
-# like this one called "./.Sanitize". All keyword lines must exist,
-# and must exist in the order specified by this file. Each directory
-# in the tree will be processed, top down, in the following order.
-
-# Hash started lines like this one are comments and will be deleted
-# before anything else is done. Blank lines will also be squashed
-# out.
-
-# The lines between the "Do-first:" line and the "Things-to-keep:"
-# line are executed as a /bin/sh shell script before anything else is
-# done in this
-
-Do-first:
-
-# All files listed between the "Things-to-keep:" line and the
-# "Files-to-sed:" line will be kept. All other files will be removed.
-# Directories listed in this section will have their own Sanitize
-# called. Directories not listed will be removed in their entirety
-# with rm -rf.
-
-Things-to-keep:
-
-.cvsignore
-ChangeLog
-Makefile.in
-configure
-configure.in
-c_localaddr.c
-c_ustime.c
-rnd_confoun.c
-
-Things-to-lose:
-
-Do-last:
-
-# End of file.
diff --git a/src/lib/crypto/os/ChangeLog b/src/lib/crypto/os/ChangeLog
deleted file mode 100644
index ebcb593a1..000000000
--- a/src/lib/crypto/os/ChangeLog
+++ /dev/null
@@ -1,204 +0,0 @@
-Wed Feb 18 16:08:30 1998 Tom Yu <tlyu@mit.edu>
-
- * Makefile.in: Remove trailing slash from thisconfigdir. Fix up
- BUILDTOP for new conventions.
-
-Fri Feb 13 15:20:54 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
-
- * Makefile.in (thisconfigdir), configure.in: Point the
- configuration directory at our parent, and remove our
- local configure.in
-
-Mon Feb 2 17:02:29 1998 Theodore Ts'o <tytso@rsts-11.mit.edu>
-
- * Makefile.in: Define BUILDTOP and thisconfigdir in the Makefile
-
-Fri Nov 28 21:23:42 1997 Tom Yu <tlyu@mit.edu>
-
- * configure.in: Add AC_PROG_LN_S to deal with symlinking in
- memmove.c. This is a kludge, as we really should have a more sane
- way to deal with missing posix functions.
-
-Thu Sep 25 21:53:11 1997 Tom Yu <tlyu@mit.edu>
-
- * c_localaddr.c: Replace KRB5_USE_INET with something more sane.
-
-Tue Aug 12 09:09:14 1997 Ezra Peisach <epeisach@mit.edu>
-
- * Makefile.in (SRCS): Add $(srcdir) as needed.
-
-Fri Jul 4 00:13:02 1997 Theodore Y. Ts'o <tytso@mit.edu>
-
- * c_localaddr.c (local_addr_fallback_kludge): Added Winsock
- kludge for finding your local IP address. May not work
- for all stacks, so we use it as a fallback.
-
-Sat Feb 22 18:54:53 1997 Richard Basch <basch@lehman.com>
-
- * Makefile.in: Use some of the new library list build rules in
- win-post.in
-
-Mon Feb 17 17:24:41 1997 Richard Basch <basch@lehman.com>
-
- * c_ustime.c: Fixed microsecond adjustment code (win32)
-
-Thu Nov 21 00:58:04 EST 1996 Richard Basch <basch@lehman.com>
-
- * Makefile.in: Win32 build
-
- * c_ustime.c: The Win32 time calculation is different from DOS'
- so the DOS version shouldn't be trying to use the same
- part of the ifdef.
-
- * rnd_confoun.c: Fix function declaration (win32)
-
-Sun Dec 29 21:54:42 1996 Tom Yu <tlyu@mit.edu>
-
- * Makefile.in:
- * configure.in: Update to use new library building procedure.
-
-Wed Jun 12 00:12:52 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>
-
- * c_ustime.c: Fix WIN32 to be _WIN32
-
- * c_localaddr.c: Add #ifdef _WIN32 in places where we had #ifdef _MSDOS
-
-
-Sat Feb 24 00:34:15 1996 Theodore Y. Ts'o <tytso@dcl>
-
- * c_ustime.c (krb5_crypto_us_timeofday): Add Windows 95/NT time
- function. (Does this time function work under Windows?
- We'll find out....)
-
-Thu Feb 15 10:57:27 1996 Ezra Peisach <epeisach@kangaroo.mit.edu>
-
- * c_localaddr.c: Set magic number in krb5_address.
-
-Fri Oct 6 22:00:48 1995 Theodore Y. Ts'o <tytso@dcl>
-
- * Makefile.in: Remove ##DOS!include of config/windows.in.
- config/windows.in is now included by wconfig.
-
-Mon Sep 25 16:49:15 1995 Theodore Y. Ts'o <tytso@dcl>
-
- * Makefile.in: Removed "foo:: foo-$(WHAT)" lines from the
- Makefile.
-
-Fri Sep 22 12:00:00 1995 James Mattly <mattly@fusion.com>
-
- * c_localaddr.c: change close on a socket to closesocket, sockets on
- macintosh arn't files
-
-Wed Sep 13 10:33:53 1995 Keith Vetter (keithv@fusion.com)
-
- * Makefile.in: PC builds all C files because of function name changes.
- * c_localtime.c, c_ustime.c: removed INTERFACE keyword.
-
-Wed Sep 13 17:32:36 1995 Theodore Y. Ts'o <tytso@dcl>
-
- * c_localaddr.c (krb5_crypto_os_localaddr): Clear the buffer
- before calling the SIOCGIFCONF ioctl. This makes purify
- happy.
-
-Thu Sep 7 12:00:00 1995 James Mattly <mattly@fusion.com>
-
- * Renamed ustime.c to c_ustime.c
- * Renamed localaddr.c to c_localaddr.c because Mac can't have
- two files with the same name.
- * Makefile.in, .Sanitize updated for the above change.
-
-Thu Aug 24 18:40:48 1995 Theodore Y. Ts'o <tytso@dcl>
-
- * .Sanitize: Update file list
-
-Sat Jul 29 03:17:21 1995 Tom Yu <tlyu@lothlorien.MIT.EDU>
-
- * localaddr.c (krb5_crypto_os_localaddr): Don't bash the return
- from SIOCGIFCONF with the output of a SIOCGIFFLAGS. Duh.
-
-Wed Jul 19 17:17:54 1995 Tom Yu <tlyu@lothlorien.MIT.EDU>
-
- * localaddr.c: also add definition of max if it's not there.
-
- * localaddr.c: fix definition of ifreq_size so it actually works
-
-Mon Jul 17 16:04:00 1995 Sam Hartman <hartmans@tertius.mit.edu>
-
- * localaddr.c (krb5_crypto_os_localaddr): Deal with variable sized
- ifreq structures if sockaddr contains sa_len field.
-
- * configure.in: Check to see if struct sockaddr has sa_len.
-
-Thu Jul 6 17:13:11 1995 Tom Yu <tlyu@lothlorien.MIT.EDU>
-
- * localaddr.c: migrated from lib/krb5/os
-
- * ustime.c: migrated from lib/krb5/os; removed context variable
- from arglist.
-
- * Makefile.in: don't copy or remove localaddr.c and ustime.c;
- they're local now.
-
-Fri Jun 9 19:18:41 1995 <tytso@rsx-11.mit.edu>
-
- * configure.in: Remove standardized set of autoconf macros, which
- are now handled by CONFIG_RULES.
-
-Thu May 25 22:16:35 1995 Theodore Y. Ts'o (tytso@dcl)
-
- * configure.in, Makefile.in: Add support for shared libraries.
-
-Thu Apr 13 15:49:16 1995 Keith Vetter (keithv@fusion.com)
-
- * *.[ch]: removed unneeded INTERFACE from non-api functions.
-
-Sat Mar 25 15:38:23 1995 Mark Eichin <eichin@cygnus.com>
-
- * Makefile.in (memmove.c): memmove.c is in krb5/posix, not krb5/os.
-
-Wed Mar 22 11:44:07 1995 <tytso@rsx-11.mit.edu>
-
- * Makefile.in: Use $(SRCTOP) instead of $(srcdir), since Mac's
- don't like dealing with $(U)$(U).
-
-Fri Mar 17 16:21:46 1995 Theodore Y. Ts'o (tytso@dcl)
-
- * Makefile.in: Fix rules for localdr.c, ustime.c, and memmove.c so
- that they reference $(srcdir) where appropriate.
-
-Thu Mar 16 21:24:43 1995 John Gilmore (gnu at toad.com)
-
- * Makefile.in (LDFLAGS): Eliminate, comes in from pre.in.
- (all-mac): Add.
- (localaddr.c, ustime.c, memmove.c): Fix paths to work on Mac.
-
-Tue Mar 14 17:23:02 1995 Keith Vetter (keithv@fusion.com)
-
- * Makefile.in: no longer need to bring in ustime and localaddr for
- windows since everything's going into one DLL in the end.
-
-Thu Mar 2 17:56:48 1995 Keith Vetter (keithv@fusion.com)
-
- * Makefile.in: changed LIBNAME for the PC, and brought in ustime
- and localaddr from the krb/os directory.
- * rnd_conf.c: added cast to the seed assignment.
-
-Mon Feb 20 16:25:36 1995 Keith Vetter (keithv@fusion.com)
-
- * Makfile.in: made to work for the PC
- * rnd_confoun.c: added windows INTERFACE keyword
-
-Wed Jan 25 20:24:35 1995 John Gilmore (gnu at toad.com)
-
- * rnd_confoun.c: Replace <.../...> includes with "..."s.
-
-Mon Oct 24 14:58:14 1994 (tytso@rsx-11)
-
- * configure.in:
- * rnd_confoun.c (krb5_random_confounder): Use the srand48/lrand48
- functions if available.
-
-Fri Oct 14 00:21:05 1994 Theodore Y. Ts'o (tytso@dcl)
-
- * Makefile.in: Remove symlinked files on make clean.
-
diff --git a/src/lib/crypto/os/Makefile.in b/src/lib/crypto/os/Makefile.in
deleted file mode 100644
index d4c5f4141..000000000
--- a/src/lib/crypto/os/Makefile.in
+++ /dev/null
@@ -1,28 +0,0 @@
-thisconfigdir=./..
-BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
-
-##DOS##BUILDTOP = ..\..\..
-##DOS##PREFIXDIR=os
-##DOS##OBJFILE=..\os.lst
-##WIN16##LIBNAME=..\crypto.lib
-
-STLIBOBJS = rnd_confoun.o c_localaddr.o c_ustime.o @LIBOBJS@
-
-COBJS= rnd_confoun.$(OBJEXT) c_localaddr.$(OBJEXT) c_ustime.$(OBJEXT)
-OBJS= $(COBJS) $(LIBOBJS)
-
-SRCS= $(srcdir)/rnd_confoun.c $(srcdir)/c_localaddr.c $(srcdir)/c_ustime.c
-
-##DOS##LIBOBJS = $(COBJS)
-
-all-unix:: all-libobjs
-
-memmove.c: $(SRCTOP)$(S)lib$(S)krb5$(S)posix$(S)memmove.c
- -$(LN) $(SRCTOP)$(S)lib$(S)krb5$(S)posix$(S)memmove.c $@
-
-memmove.o: memmove.c
-
-clean-unix:: clean-libobjs
-clean::
- $(RM) memmove.c
diff --git a/src/lib/crypto/os/c_localaddr.c b/src/lib/crypto/os/c_localaddr.c
deleted file mode 100644
index 3b3bcb474..000000000
--- a/src/lib/crypto/os/c_localaddr.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * lib/crypto/os/c_localaddr.c
- *
- * Copyright 1990,1991 by the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- *
- *
- * Return the protocol addresses supported by this host.
- *
- * XNS support is untested, but "Should just work".
- */
-
-
-#define NEED_SOCKETS
-#include "k5-int.h"
-
-#if !defined(HAVE_MACSOCK_H) && !defined(_MSDOS) && !defined(_WIN32)
-
-/* needed for solaris, harmless elsewhere... */
-#define BSD_COMP
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <errno.h>
-
-/*
- * The SIOCGIF* ioctls require a socket.
- * It doesn't matter *what* kind of socket they use, but it has to be
- * a socket.
- *
- * Of course, you can't just ask the kernel for a socket of arbitrary
- * type; you have to ask for one with a valid type.
- *
- */
-#ifdef HAVE_NETINET_IN_H
-
-#include <netinet/in.h>
-
-#ifndef USE_AF
-#define USE_AF AF_INET
-#define USE_TYPE SOCK_DGRAM
-#define USE_PROTO 0
-#endif
-
-#endif
-
-#ifdef KRB5_USE_NS
-
-#include <netns/ns.h>
-
-#ifndef USE_AF
-#define USE_AF AF_NS
-#define USE_TYPE SOCK_DGRAM
-#define USE_PROTO 0 /* guess */
-#endif
-
-#endif
-/*
- * Add more address families here.
- */
-
-/*
- * BSD 4.4 defines the size of an ifreq to be
- * max(sizeof(ifreq), sizeof(ifreq.ifr_name)+ifreq.ifr_addr.sa_len
- * However, under earlier systems, sa_len isn't present, so the size is
- * just sizeof(struct ifreq)
- */
-#ifdef HAVE_SA_LEN
-#ifndef max
-#define max(a,b) ((a) > (b) ? (a) : (b))
-#endif
-#define ifreq_size(i) max(sizeof(struct ifreq),\
- sizeof((i).ifr_name)+(i).ifr_addr.sa_len)
-#else
-#define ifreq_size(i) sizeof(struct ifreq)
-#endif /* HAVE_SA_LEN*/
-
-
-
-extern int errno;
-
-/*
- * Return all the protocol addresses of this host.
- *
- * We could kludge up something to return all addresses, assuming that
- * they're valid kerberos protocol addresses, but we wouldn't know the
- * real size of the sockaddr or know which part of it was actually the
- * host part.
- *
- * This uses the SIOCGIFCONF, SIOCGIFFLAGS, and SIOCGIFADDR ioctl's.
- */
-
-krb5_error_code
-krb5_crypto_os_localaddr(addr)
- krb5_address ***addr;
-{
- struct ifreq *ifr, ifreq;
- struct ifconf ifc;
- int s, code, n, i;
- char buf[1024];
- krb5_address *addr_temp [ 1024/sizeof(struct ifreq) ];
- int n_found;
- int mem_err = 0;
-
- memset(buf, 0, sizeof(buf));
- ifc.ifc_len = sizeof(buf);
- ifc.ifc_buf = buf;
-
- s = socket (USE_AF, USE_TYPE, USE_PROTO);
- if (s < 0)
- return errno;
-
- code = ioctl (s, SIOCGIFCONF, (char *)&ifc);
- if (code < 0) {
- int retval = errno;
- closesocket (s);
- return retval;
- }
- n = ifc.ifc_len;
-
-n_found = 0;
- for (i = 0; i < n; i+= ifreq_size(*ifr) ) {
- krb5_address *address;
- ifr = (struct ifreq *)((caddr_t) ifc.ifc_buf+i);
-
- strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof (ifreq.ifr_name));
- if (ioctl (s, SIOCGIFFLAGS, (char *)&ifreq) < 0)
- continue;
-
-#ifdef IFF_LOOPBACK
- if (ifreq.ifr_flags & IFF_LOOPBACK)
- continue;
-#endif
-
- if (!(ifreq.ifr_flags & IFF_UP))
- /* interface is down; skip */
- continue;
-
- /* ifr->ifr_addr has what we want! */
- switch (ifr->ifr_addr.sa_family) {
-#ifdef HAVE_NETINET_IN_H
- case AF_INET:
- {
- struct sockaddr_in *in =
- (struct sockaddr_in *)&ifr->ifr_addr;
-
- address = (krb5_address *)
- malloc (sizeof(krb5_address));
- if (address) {
- address->magic = KV5M_ADDRESS;
- address->addrtype = ADDRTYPE_INET;
- address->length = sizeof(struct in_addr);
- address->contents = (unsigned char *)malloc(address->length);
- if (!address->contents) {
- krb5_xfree(address);
- address = 0;
- mem_err++;
- } else {
- memcpy ((char *)address->contents,
- (char *)&in->sin_addr,
- address->length);
- break;
- }
- } else mem_err++;
- }
-#endif
-#ifdef KRB5_USE_NS
- case AF_XNS:
- {
- struct sockaddr_ns *ns =
- (struct sockaddr_ns *)&ifr->ifr_addr;
- address = (krb5_address *)
- malloc (sizeof (krb5_address) + sizeof (struct ns_addr));
- if (address) {
- address->magic = KV5M_ADDRESS;
- address->addrtype = ADDRTYPE_XNS;
-
- /* XXX should we perhaps use ns_host instead? */
-
- address->length = sizeof(struct ns_addr);
- address->contents = (unsigned char *)malloc(address->length);
- if (!address->contents) {
- krb5_xfree(address);
- address = 0;
- mem_err++;
- } else {
- memcpy ((char *)address->contents,
- (char *)&ns->sns_addr,
- address->length);
- break;
- }
- } else mem_err++;
- break;
- }
-#endif
- /*
- * Add more address families here..
- */
- default:
- continue;
- }
- if (address)
- addr_temp[n_found++] = address;
- address = 0;
- }
- closesocket(s);
-
- *addr = (krb5_address **)malloc (sizeof (krb5_address *) * (n_found+1));
- if (*addr == 0)
- mem_err++;
-
- if (mem_err) {
- for (i=0; i<n_found; i++) {
- krb5_xfree(addr_temp[i]);
- addr_temp[i] = 0;
- }
- return ENOMEM;
- }
-
- for (i=0; i<n_found; i++) {
- (*addr)[i] = addr_temp[i];
- }
- (*addr)[n_found] = 0;
- return 0;
-}
-
-#else /* Windows/Mac version */
-
-/*
- * Hold on to your lunch! Backup kludge method of obtaining your
- * local IP address, courtesy of Windows Socket Network Programming,
- * by Robert Quinn
- */
-#if defined(_MSDOS) || defined(_WIN32)
-static struct hostent *local_addr_fallback_kludge()
-{
- static struct hostent host;
- static SOCKADDR_IN addr;
- static char * ip_ptrs[2];
- SOCKET sock;
- int size = sizeof(SOCKADDR);
- int err;
-
- sock = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock == INVALID_SOCKET)
- return NULL;
-
- /* connect to arbitrary port and address (NOT loopback) */
- addr.sin_family = AF_INET;
- addr.sin_port = htons(IPPORT_ECHO);
- addr.sin_addr.s_addr = inet_addr("204.137.220.51");
-
- err = connect(sock, (LPSOCKADDR) &addr, sizeof(SOCKADDR));
- if (err == SOCKET_ERROR)
- return NULL;
-
- err = getsockname(sock, (LPSOCKADDR) &addr, (int FAR *) size);
- if (err == SOCKET_ERROR)
- return NULL;
-
- closesocket(sock);
-
- host.h_name = 0;
- host.h_aliases = 0;
- host.h_addrtype = AF_INET;
- host.h_length = 4;
- host.h_addr_list = ip_ptrs;
- ip_ptrs[0] = (char *) &addr.sin_addr.s_addr;
- ip_ptrs[1] = NULL;
-
- return &host;
-}
-#endif
-
-/* No ioctls in winsock so we just assume there is only one networking
- * card per machine, so gethostent is good enough.
- */
-krb5_error_code
-krb5_crypto_os_localaddr (krb5_address ***addr) {
- char host[64]; /* Name of local machine */
- struct hostent *hostrec;
- int err;
-
- *addr = calloc (2, sizeof (krb5_address *));
- if (*addr == NULL)
- return ENOMEM;
-
-#ifdef HAVE_MACSOCK_H
- hostrec = getmyipaddr();
-#else /* HAVE_MACSOCK_H */
- err = 0;
-
- if (gethostname (host, sizeof(host))) {
- err = WSAGetLastError();
- }
-
- if (!err) {
- hostrec = gethostbyname (host);
- if (hostrec == NULL) {
- err = WSAGetLastError();
- }
- }
-
- if (err) {
- hostrec = local_addr_fallback_kludge();
- if (!hostrec)
- return err;
- }
-#endif /* HAVE_MACSOCK_H */
-
- (*addr)[0] = calloc (1, sizeof(krb5_address));
- if ((*addr)[0] == NULL) {
- free (*addr);
- return ENOMEM;
- }
- (*addr)[0]->magic = KV5M_ADDRESS;
- (*addr)[0]->addrtype = hostrec->h_addrtype;
- (*addr)[0]->length = hostrec->h_length;
- (*addr)[0]->contents = (unsigned char *)malloc((*addr)[0]->length);
- if (!(*addr)[0]->contents) {
- free((*addr)[0]);
- free(*addr);
- return ENOMEM;
- } else {
- memcpy ((*addr)[0]->contents,
- hostrec->h_addr,
- (*addr)[0]->length);
- }
- /* FIXME, deal with the case where gethostent returns multiple addrs */
-
- return(0);
-}
-#endif
diff --git a/src/lib/crypto/os/c_ustime.c b/src/lib/crypto/os/c_ustime.c
deleted file mode 100644
index e790acc95..000000000
--- a/src/lib/crypto/os/c_ustime.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * lib/crypto/os/c_ustime.c
- *
- * Copyright 1990,1991 by the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- *
- *
- * krb5_mstimeofday for BSD 4.3
- */
-
-#define NEED_SOCKETS
-#include "k5-int.h"
-
-#ifdef macintosh
-
-/* We're a Macintosh -- do Mac time things. */
-
-/*
- * This code is derived from kerberos/src/lib/des/mac_time.c from
- * the Cygnus Support release of Kerberos V4:
- *
- * mac_time.c
- * (Originally time_stuff.c)
- * Copyright 1989 by the Massachusetts Institute of Technology.
- * Macintosh ooperating system interface for Kerberos.
- */
-
-#include "AddressXlation.h" /* for ip_addr, for #if 0'd net-time stuff */
-
-#include <script.h> /* Defines MachineLocation, used by getTimeZoneOffset */
-#include <ToolUtils.h> /* Defines BitTst(), called by getTimeZoneOffset() */
-#include <OSUtils.h> /* Defines GetDateTime */
-
-/* Mac Cincludes */
-#include <string.h>
-#include <stddef.h>
-
-static krb5_int32 last_sec = 0, last_usec = 0;
-
-/*
- * The Unix epoch is 1/1/70, the Mac epoch is 1/1/04.
- *
- * 70 - 4 = 66 year differential
- *
- * Thus the offset is:
- *
- * (66 yrs) * (365 days/yr) * (24 hours/day) * (60 mins/hour) * (60 secs/min)
- * plus
- * (17 leap days) * (24 hours/day) * (60 mins/hour) * (60 secs/min)
- *
- * Don't forget the offset from GMT.
- */
-
-/* returns the offset in hours between the mac local time and the GMT */
-/* unsigned krb5_int32 */
-krb5_int32
-getTimeZoneOffset()
-{
- MachineLocation macLocation;
- long gmtDelta;
-
- macLocation.u.gmtDelta=0L;
- ReadLocation(&macLocation);
- gmtDelta=macLocation.u.gmtDelta & 0x00FFFFFF;
- if (BitTst((void *)&gmtDelta,23L))
- gmtDelta |= 0xFF000000;
- gmtDelta /= 3600L;
- return(gmtDelta);
-}
-
-/* Returns the GMT in seconds (and fake microseconds) using the Unix epoch */
-
-krb5_error_code
-krb5_crypto_us_timeofday(seconds, microseconds)
- krb5_int32 *seconds, *microseconds;
-{
- krb5_int32 sec, usec;
- time_t the_time;
-
- GetDateTime (&the_time);
-
- sec = the_time -
- ((66 * 365 * 24 * 60 * 60) + (17 * 24 * 60 * 60) +
- (getTimeZoneOffset() * 60 * 60));
-
- usec = 0; /* Mac is too slow to count faster than once a second */
-
- if ((sec == last_sec) && (usec == last_usec)) {
- if (++last_usec >= 1000000) {
- last_usec = 0;
- last_sec++;
- }
- sec = last_sec;
- usec = last_usec;
- }
- else {
- last_sec = sec;
- last_usec = usec;
- }
-
- *seconds = sec;
- *microseconds = usec;
-
- return 0;
-}
-
-
-#elif defined(_WIN32)
-
- /* Microsoft Windows NT and 95 (32bit) */
- /* This one works for WOW (Windows on Windows, ntvdm on Win-NT) */
-
-#include <time.h>
-#include <sys/timeb.h>
-#include <string.h>
-
-krb5_error_code
-krb5_crypto_us_timeofday(seconds, microseconds)
-register krb5_int32 *seconds, *microseconds;
-{
- struct _timeb timeptr;
- krb5_int32 sec, usec;
- static krb5_int32 last_sec = 0;
- static krb5_int32 last_usec = 0;
-
- _ftime(&timeptr); /* Get the current time */
- sec = timeptr.time;
- usec = timeptr.millitm * 1000;
-
- if ((sec == last_sec) && (usec <= last_usec)) { /* Same as last time??? */
- usec = ++last_usec;
- if (usec >= 1000000) {
- ++sec;
- usec = 0;
- }
- }
- last_sec = sec; /* Remember for next time */
- last_usec = usec;
-
- *seconds = sec; /* Return the values */
- *microseconds = usec;
-
- return 0;
-}
-
-#elif defined (_MSDOS)
-
-
-/*
- * Originally written by John Gilmore, Cygnus Support, May '94.
- * Public Domain.
- */
-
-#include <time.h>
-#include <sys/timeb.h>
-#include <dos.h>
-#include <string.h>
-
-/*
- * Time handling. Translate Unix time calls into Kerberos internal
- * procedure calls.
- *
- * Due to the fact that DOS time can be unreliable we have reverted
- * to using the AT hardware clock and converting it to Unix time.
- */
-
-static time_t win_gettime ();
-static long win_time_get_epoch(); /* Adjust for MSC 7.00 bug */
-
-krb5_error_code
-krb5_crypto_us_timeofday(seconds, microseconds)
-register krb5_int32 *seconds, *microseconds;
-{
- krb5_int32 sec, usec;
- static krb5_int32 last_sec = 0;
- static krb5_int32 last_usec = 0;
-
- sec = win_gettime (); /* Get the current time */
- usec = 0; /* Can't do microseconds */
-
- if (sec == last_sec) { /* Same as last time??? */
- usec = ++last_usec; /* Yep, so do microseconds */
- if (usec >= 1000000) {
- ++sec;
- usec = 0;
- }
- }
- last_sec = sec; /* Remember for next time */
- last_usec = usec;
-
- *seconds = sec; /* Return the values */
- *microseconds = usec;
-
- return 0;
-}
-
-
-static time_t
-win_gettime () {
- struct tm tm;
- union _REGS inregs; /* For calling BIOS */
- union _REGS outregs;
- struct _timeb now;
- time_t time;
- long convert; /* MSC 7.00 bug work around */
-
- _ftime(&now); /* Daylight savings time */
-
- /* Get time from AT hardware clock INT 0x1A, AH=2 */
- memset(&inregs, 0, sizeof(inregs));
- inregs.h.ah = 2;
- _int86(0x1a, &inregs, &outregs);
-
- /* 0x13 = decimal 13, hence the decoding below */
- tm.tm_sec = 10 * ((outregs.h.dh & 0xF0) >> 4) + (outregs.h.dh & 0x0F);
- tm.tm_min = 10 * ((outregs.h.cl & 0xF0) >> 4) + (outregs.h.cl & 0x0F);
- tm.tm_hour = 10 * ((outregs.h.ch & 0xF0) >> 4) + (outregs.h.ch & 0x0F);
-
- /* Get date from AT hardware clock INT 0x1A, AH=4 */
- memset(&inregs, 0, sizeof(inregs));
- inregs.h.ah = 4;
- _int86(0x1a, &inregs, &outregs);
-
- tm.tm_mday = 10 * ((outregs.h.dl & 0xF0) >> 4) + (outregs.h.dl & 0x0F);
- tm.tm_mon = 10 * ((outregs.h.dh & 0xF0) >> 4) + (outregs.h.dh & 0x0F) - 1;
- tm.tm_year = 10 * ((outregs.h.cl & 0xF0) >> 4) + (outregs.h.cl & 0x0F);
- tm.tm_year += 100 * ((10 * (outregs.h.ch & 0xF0) >> 4)
- + (outregs.h.ch & 0x0F) - 19);
-
- tm.tm_wday = 0;
- tm.tm_yday = 0;
- tm.tm_isdst = now.dstflag;
-
- time = mktime(&tm);
-
- convert = win_time_get_epoch();
- return time + convert;
-
-}
-
-
-/*
- * This routine figures out the current time epoch and returns the
- * conversion factor. It exists because
- * Microloss screwed the pooch on the time() and _ftime() calls in
- * its release 7.0 libraries. They changed the epoch to Dec 31, 1899!
- * Idiots... We try to cope.
- */
-
-static struct tm jan_1_70 = {0, 0, 0, 1, 0, 70};
-static long epoch = 0;
-static int epoch_set = 0;
-
-long
-win_time_get_epoch()
-{
-
- if (!epoch_set) {
- epoch = 0 - mktime (&jan_1_70); /* Seconds til 1970 localtime */
- epoch += _timezone; /* Seconds til 1970 GMT */
- epoch_set = 1;
- }
- return epoch;
-}
-
-
-#else
-
-
-/* We're a Unix machine -- do Unix time things. */
-
-extern int errno;
-
-static struct timeval last_tv = {0, 0};
-
-krb5_error_code
-krb5_crypto_us_timeofday(seconds, microseconds)
- register krb5_int32 *seconds, *microseconds;
-{
- struct timeval tv;
-
- if (gettimeofday(&tv, (struct timezone *)0) == -1) {
- /* failed, return errno */
- return (krb5_error_code) errno;
- }
- if ((tv.tv_sec == last_tv.tv_sec) && (tv.tv_usec == last_tv.tv_usec)) {
- if (++last_tv.tv_usec >= 1000000) {
- last_tv.tv_usec = 0;
- last_tv.tv_sec++;
- }
- tv = last_tv;
- } else
- last_tv = tv;
-
- *seconds = tv.tv_sec;
- *microseconds = tv.tv_usec;
- return 0;
-}
-
-#endif
diff --git a/src/lib/crypto/os/rnd_confoun.c b/src/lib/crypto/os/rnd_confoun.c
deleted file mode 100644
index e904cb5c7..000000000
--- a/src/lib/crypto/os/rnd_confoun.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * lib/crypto/os/rnd_confoun.c
- *
- * Copyright 1990 by the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * Export of this software from the United States of America may
- * require a specific license from the United States Government.
- * It is the responsibility of any person or organization contemplating
- * export to obtain such a license before exporting.
- *
- * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
- * distribute this software and its documentation for any purpose and
- * without fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright notice and
- * this permission notice appear in supporting documentation, and that
- * the name of M.I.T. not be used in advertising or publicity pertaining
- * to distribution of the software without specific, written prior
- * permission. M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is" without express
- * or implied warranty.
- *
- *
- * krb5_random_confounder()
- */
-
-#include "k5-int.h"
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <time.h>
-#endif
-#else
-#include <time.h>
-#endif
-
-#ifdef HAVE_SRAND48
-#define SRAND srand48
-#define RAND lrand48
-#define RAND_TYPE long
-#endif
-
-#if !defined(RAND_TYPE) && defined(HAVE_SRAND)
-#define SRAND srand
-#define RAND rand
-#define RAND_TYPE int
-#endif
-
-#if !defined(RAND_TYPE) && defined(HAVE_SRANDOM)
-#define SRAND srandom
-#define RAND random
-#define RAND_TYPE long
-#endif
-
-#if !defined(RAND_TYPE)
-You need a random number generator!
-#endif
-
-/*
- * Generate a random confounder
- */
-KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
-krb5_random_confounder(size, fillin)
-size_t size;
-krb5_pointer fillin;
-{
- static int seeded = 0;
- register krb5_octet *real_fill;
- RAND_TYPE rval;
-
- if (!seeded) {
- /* time() defined in 4.12.2.4, but returns a time_t, which is an
- "arithmetic type" (4.12.1) */
- rval = (RAND_TYPE) time(0);
- SRAND(rval);
-#ifdef HAVE_GETPID
- rval = RAND();
- rval ^= getpid();
- SRAND(rval);
-#endif
- seeded = 1;
- }
-
- real_fill = (krb5_octet *)fillin;
- while (size > 0) {
- rval = RAND();
- *real_fill = rval & 0xff;
- real_fill++;
- size--;
- if (size) {
- *real_fill = (rval >> 8) & 0xff;
- real_fill++;
- size--;
- }
- }
- return 0;
-}