summaryrefslogtreecommitdiffstats
path: root/src/lib/crypto
diff options
context:
space:
mode:
authorKeith Vetter <keithv@fusion.com>1995-09-11 19:06:45 +0000
committerKeith Vetter <keithv@fusion.com>1995-09-11 19:06:45 +0000
commitcdd6c33b9ae48076999e33ffa70e2365ecc5eb8c (patch)
tree84682f14e77a844dfab2174318ebccb9067c829f /src/lib/crypto
parenta66029e852781fa0333dc92bd88bd8184f6feeb1 (diff)
downloadkrb5-cdd6c33b9ae48076999e33ffa70e2365ecc5eb8c.tar.gz
krb5-cdd6c33b9ae48076999e33ffa70e2365ecc5eb8c.tar.xz
krb5-cdd6c33b9ae48076999e33ffa70e2365ecc5eb8c.zip
Mac Beta 1 submission
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6749 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto')
-rw-r--r--src/lib/crypto/ChangeLog11
-rw-r--r--src/lib/crypto/cryptoconf.c25
-rw-r--r--src/lib/crypto/des/ChangeLog12
-rw-r--r--src/lib/crypto/des/des_int.h2
-rw-r--r--src/lib/crypto/des/destest.c5
-rw-r--r--src/lib/crypto/des/f_pcbc.c1
-rw-r--r--src/lib/crypto/des/init_rkey.c7
-rw-r--r--src/lib/crypto/des/random_key.c3
-rw-r--r--src/lib/crypto/des/string2key.c16
-rw-r--r--src/lib/crypto/des/verify.c6
-rw-r--r--src/lib/crypto/des_crc.c3
-rw-r--r--src/lib/crypto/des_md5.c3
-rw-r--r--src/lib/crypto/md4/ChangeLog7
-rw-r--r--src/lib/crypto/md4/md4crypto.c8
-rw-r--r--src/lib/crypto/md5/ChangeLog11
-rw-r--r--src/lib/crypto/md5/md5crypto.c8
-rw-r--r--src/lib/crypto/md5/t_cksum.c4
-rw-r--r--src/lib/crypto/os/ChangeLog6
-rw-r--r--src/lib/crypto/os/Makefile.in4
-rw-r--r--src/lib/crypto/os/c_localaddr.c2
-rw-r--r--src/lib/crypto/os/c_ustime.c (renamed from src/lib/crypto/os/ustime.c)197
-rw-r--r--src/lib/crypto/raw_des.c3
22 files changed, 134 insertions, 210 deletions
diff --git a/src/lib/crypto/ChangeLog b/src/lib/crypto/ChangeLog
index 55adaf2d5..ad0195ad6 100644
--- a/src/lib/crypto/ChangeLog
+++ b/src/lib/crypto/ChangeLog
@@ -1,14 +1,3 @@
-Wed Sep 06 14:20:57 1995 Chris Provenzano (proven@mit.edu)
-
- * cryptoconf.c, des_crc.c, des_md5.c raw_des.c
- s/keytype/enctype/g, s/KEYTYPE/ENCTYPE/g
-
-Tue Sep 05 22:10:34 1995 Chris Provenzano (proven@mit.edu)
-
- * cryptoconf.c : Remove krb5_csarray.
- * cryptoconf.c, des_crc.c, des_md5.c, raw_des.c : Remove krb5_enctype
- references, and replace with krb5_keytype where appropriate.
-
Thu Aug 24 17:55:47 1995 Ezra Peisach <epeisach@kangaroo.mit.edu>
* des_crc.c, des_md5.c, raw_des.c: Remove casting in call to
diff --git a/src/lib/crypto/cryptoconf.c b/src/lib/crypto/cryptoconf.c
index 53747efa9..a5ac202bc 100644
--- a/src/lib/crypto/cryptoconf.c
+++ b/src/lib/crypto/cryptoconf.c
@@ -101,15 +101,28 @@
"krb5/encryption.h"
*/
-krb5_cs_table_entry * NEAR krb5_enctype_array[] = {
- 0, /* ENCTYPE_NULL */
- DES_CBC_CRC_CSENTRY, /* ENCTYPE_DES_CBC_CRC */
- 0, /* ENCTYPE_DES_CBC_MD4 */
- DES_CBC_MD5_CSENTRY, /* ENCTYPE_DES_CBC_MD5 */
+krb5_cs_table_entry * NEAR krb5_csarray[] = {
+ 0, /* ETYPE_NULL */
+ DES_CBC_CRC_CSENTRY, /* ETYPE_DES_CBC_CRC */
+ 0, /* ETYPE_DES_CBC_MD4 */
+ DES_CBC_MD5_CSENTRY, /* ETYPE_DES_CBC_MD5 */
RAW_DES_CBC_CSENTRY, /* ETYPE_RAW_DES_CBC */
};
-int krb5_max_enctype = sizeof(krb5_enctype_array)/sizeof(krb5_enctype_array[0]) - 1;
+int krb5_max_cryptosystem = sizeof(krb5_csarray)/sizeof(krb5_csarray[0]) - 1;
+
+krb5_cs_table_entry * NEAR krb5_keytype_array[] = {
+ 0, /* KEYTYPE_NULL */
+#if defined(PROVIDE_DES_CBC_MD5)
+ DES_CBC_MD5_CSENTRY /* KEYTYPE_DES */
+#elif defined(PROVIDE_DES_CBC_CRC)
+ DES_CBC_CRC_CSENTRY /* KEYTYPE_DES */
+#else /* !PROVIDE_DES_CBC_MD5 && !PROVIDE_DES_CBC_CRC */
+ 0
+#endif /* !PROVIDE_DES_CBC_MD5 && !PROVIDE_DES_CBC_CRC */
+};
+
+int krb5_max_keytype = sizeof(krb5_keytype_array)/sizeof(krb5_keytype_array[0]) - 1;
krb5_checksum_entry * NEAR krb5_cksumarray[] = {
0,
diff --git a/src/lib/crypto/des/ChangeLog b/src/lib/crypto/des/ChangeLog
index ba2beec6a..d2d40e81e 100644
--- a/src/lib/crypto/des/ChangeLog
+++ b/src/lib/crypto/des/ChangeLog
@@ -1,15 +1,3 @@
-Wed Sep 06 14:20:57 1995 Chris Provenzano (proven@mit.edu)
-
- * des_int.h, destest.c, init_rkey.c, random_key.c, string2key.c
- * verify.c : s/keytype/enctype/g, s/KEYTYPE/ENCTYPE/g
-
-Tue Sep 05 22:10:34 1995 Chris Provenzano (proven@mit.edu)
-
- * destest.c, random_key.c, string2key.c, verify.c : Remove krb5_enctype
- references, and replace with krb5_keytype where appropriate.
- * init_rkey.c (mit_des_init_random_key()),
- * string2key.c (mit_des_string_to_key()) : Allow for any DES keytype.
-
Tue Aug 29 13:29:19 EDT 1995 Paul Park (pjpark@mit.edu)
* process_key.c, finish_key.c - Set and use priv_size in the krb5_
diff --git a/src/lib/crypto/des/des_int.h b/src/lib/crypto/des/des_int.h
index 97ca9883e..cd242a361 100644
--- a/src/lib/crypto/des/des_int.h
+++ b/src/lib/crypto/des/des_int.h
@@ -145,7 +145,7 @@ extern krb5_error_code mit_des_random_key
/* string2key.c */
extern krb5_error_code mit_des_string_to_key
- PROTOTYPE(( const krb5_encrypt_block FAR *, const krb5_enctype,
+ PROTOTYPE(( const krb5_encrypt_block FAR *, const krb5_keytype,
krb5_keyblock FAR *, const krb5_data FAR *, const krb5_data FAR *));
/* weak_key.c */
diff --git a/src/lib/crypto/des/destest.c b/src/lib/crypto/des/destest.c
index a1f9daf09..0132fa2fe 100644
--- a/src/lib/crypto/des/destest.c
+++ b/src/lib/crypto/des/destest.c
@@ -58,9 +58,10 @@ char *argv[];
/* do some initialisation */
initialize_krb5_error_table();
- krb5_use_enctype(context, &eblock, ENCTYPE_DES_CBC_CRC);
+ krb5_use_cstype(context, &eblock, ETYPE_DES_CBC_CRC);
keyblock.magic = KV5M_KEYBLOCK;
- keyblock.enctype = ENCTYPE_DES_CBC_CRC;
+ keyblock.etype = ETYPE_DES_CBC_CRC;
+ keyblock.keytype = KEYTYPE_DES;
keyblock.length = sizeof (mit_des_cblock);
keyblock.contents = (krb5_octet *)key;
diff --git a/src/lib/crypto/des/f_pcbc.c b/src/lib/crypto/des/f_pcbc.c
index c69dac360..aae4a4a3a 100644
--- a/src/lib/crypto/des/f_pcbc.c
+++ b/src/lib/crypto/des/f_pcbc.c
@@ -11,6 +11,7 @@
* des_pcbc_encrypt.c - encrypt a string of characters in error propagation mode
*/
#include "des.h"
+#include "des_int.h"
#include "f_tables.h"
/*
diff --git a/src/lib/crypto/des/init_rkey.c b/src/lib/crypto/des/init_rkey.c
index ca9483a5c..c240b9dce 100644
--- a/src/lib/crypto/des/init_rkey.c
+++ b/src/lib/crypto/des/init_rkey.c
@@ -38,11 +38,8 @@ mit_des_init_random_key (seedblock, seed)
krb5_pointer * seed;
{
mit_des_random_key_seed * p_seed;
- if ((seedblock->enctype != ENCTYPE_DES_CBC_CRC) &&
- (seedblock->enctype != ENCTYPE_DES_CBC_MD4) &&
- (seedblock->enctype != ENCTYPE_DES_CBC_MD5) &&
- (seedblock->enctype != ENCTYPE_DES_CBC_RAW))
- return KRB5_BAD_ENCTYPE;
+ if (seedblock->keytype != KEYTYPE_DES)
+ return KRB5_BAD_KEYTYPE;
if ( !(p_seed = (mit_des_random_key_seed *)
malloc(sizeof(mit_des_random_key_seed))) )
return ENOMEM;
diff --git a/src/lib/crypto/des/random_key.c b/src/lib/crypto/des/random_key.c
index 3a8758f2b..bf5f60a6d 100644
--- a/src/lib/crypto/des/random_key.c
+++ b/src/lib/crypto/des/random_key.c
@@ -44,8 +44,9 @@ mit_des_random_key (eblock, seed, keyblock)
return ENOMEM;
}
randkey->magic = KV5M_KEYBLOCK;
+ randkey->etype = eblock->crypto_entry->proto_enctype;
randkey->length = sizeof(mit_des_cblock);
- randkey->enctype = eblock->crypto_entry->proto_enctype;
+ randkey->keytype = KEYTYPE_DES;
mit_des_new_random_key(randkey->contents, (mit_des_random_key_seed *) seed);
*keyblock = randkey;
return 0;
diff --git a/src/lib/crypto/des/string2key.c b/src/lib/crypto/des/string2key.c
index e5cddf02f..166db5f48 100644
--- a/src/lib/crypto/des/string2key.c
+++ b/src/lib/crypto/des/string2key.c
@@ -26,7 +26,7 @@
/*
converts the string pointed to by "data" into an encryption key
- of type "enctype". *keyblock is filled in with the key info;
+ of type "keytype". *keyblock is filled in with the key info;
in particular, keyblock->contents is to be set to allocated storage.
It is the responsibility of the caller to release this storage
when the generated key no longer needed.
@@ -35,15 +35,15 @@
algorithm.
If the particular function called does not know how to make a
- key of type "enctype", an error may be returned.
+ key of type "keytype", an error may be returned.
returns: errors
*/
krb5_error_code
-mit_des_string_to_key (eblock, enctype, keyblock, data, salt)
+mit_des_string_to_key (eblock, keytype, keyblock, data, salt)
const krb5_encrypt_block FAR * eblock;
-const krb5_enctype enctype;
+const krb5_keytype keytype;
krb5_keyblock FAR * keyblock;
const krb5_data FAR * data;
const krb5_data FAR * salt;
@@ -65,16 +65,16 @@ const krb5_data FAR * salt;
#define min(A, B) ((A) < (B) ? (A): (B))
#endif
- if ((enctype != ENCTYPE_DES_CBC_CRC) && (enctype != ENCTYPE_DES_CBC_MD4) &&
- (enctype != ENCTYPE_DES_CBC_MD5) && (enctype != ENCTYPE_DES_CBC_RAW))
- return (KRB5_PROG_ETYPE_NOSUPP);
+ if ( keytype != KEYTYPE_DES )
+ return (KRB5_PROG_KEYTYPE_NOSUPP);
if ( !(keyblock->contents = (krb5_octet *)malloc(sizeof(mit_des_cblock))) )
return(ENOMEM);
keyblock->magic = KV5M_KEYBLOCK;
+ keyblock->etype = eblock->crypto_entry->proto_enctype;
+ keyblock->keytype = KEYTYPE_DES;
keyblock->length = sizeof(mit_des_cblock);
- keyblock->enctype = eblock->crypto_entry->proto_enctype;
key = keyblock->contents;
if (salt)
diff --git a/src/lib/crypto/des/verify.c b/src/lib/crypto/des/verify.c
index 7ae08c763..117d18804 100644
--- a/src/lib/crypto/des/verify.c
+++ b/src/lib/crypto/des/verify.c
@@ -148,9 +148,9 @@ main(argc,argv)
/* do some initialisation */
initialize_krb5_error_table();
- krb5_use_enctype(context, &eblock, ENCTYPE_DES_CBC_CRC);
- keyblock.enctype = ENCTYPE_DES_CBC_CRC;
- keyblock.length = sizeof(mit_des_cblock);
+ krb5_use_cstype(context, &eblock, ETYPE_DES_CBC_CRC);
+ keyblock.keytype = KEYTYPE_DES;
+ keyblock.length = sizeof (mit_des_cblock);
/* use known input and key */
diff --git a/src/lib/crypto/des_crc.c b/src/lib/crypto/des_crc.c
index 02dfb34cb..f6c5d2250 100644
--- a/src/lib/crypto/des_crc.c
+++ b/src/lib/crypto/des_crc.c
@@ -47,7 +47,8 @@ static krb5_cryptosystem_entry mit_des_crc_cryptosystem_entry = {
sizeof(mit_des_cblock),
CRC32_CKSUM_LENGTH+sizeof(mit_des_cblock),
sizeof(mit_des_cblock),
- ENCTYPE_DES_CBC_CRC
+ ETYPE_DES_CBC_CRC,
+ KEYTYPE_DES
};
krb5_cs_table_entry krb5_des_crc_cst_entry = {
diff --git a/src/lib/crypto/des_md5.c b/src/lib/crypto/des_md5.c
index d365c2b6c..c84d958ca 100644
--- a/src/lib/crypto/des_md5.c
+++ b/src/lib/crypto/des_md5.c
@@ -48,7 +48,8 @@ static krb5_cryptosystem_entry mit_des_md5_cryptosystem_entry = {
sizeof(mit_des_cblock),
RSA_MD5_CKSUM_LENGTH+sizeof(mit_des_cblock),
sizeof(mit_des_cblock),
- ENCTYPE_DES_CBC_MD5
+ ETYPE_DES_CBC_MD5,
+ KEYTYPE_DES
};
krb5_cs_table_entry krb5_des_md5_cst_entry = {
diff --git a/src/lib/crypto/md4/ChangeLog b/src/lib/crypto/md4/ChangeLog
index 9fdbe6905..ddabf8381 100644
--- a/src/lib/crypto/md4/ChangeLog
+++ b/src/lib/crypto/md4/ChangeLog
@@ -1,10 +1,3 @@
-Wed Sep 06 14:20:57 1995 Chris Provenzano (proven@mit.edu)
-
- * md4crypto.c : s/keytype/enctype/g, s/KEYTYPE/ENCTYPE/g
-
-Tue Sep 05 22:10:34 1995 Chris Provenzano (proven@mit.edu)
-
- * md4crypto.c : Replace KEYTYPE_DES_CBC_MD4 for KEYTYPE_DES.
Thu Jul 27 15:22:17 EDT 1995 Paul Park (pjpark@mit.edu)
* rsa-md4.h - Don't include k5-config.h. No longer present or needed.
diff --git a/src/lib/crypto/md4/md4crypto.c b/src/lib/crypto/md4/md4crypto.c
index 5b349a024..248f17683 100644
--- a/src/lib/crypto/md4/md4crypto.c
+++ b/src/lib/crypto/md4/md4crypto.c
@@ -91,7 +91,7 @@ krb5_checksum FAR *outcksum;
keyblock.length = seed_length;
keyblock.contents = (krb5_octet *)seed;
- keyblock.enctype = ENCTYPE_DES_CBC_MD4;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
@@ -162,7 +162,7 @@ krb5_checksum FAR *outcksum;
keyblock.length = sizeof(mit_des_cblock);
keyblock.contents = (krb5_octet *) tmpkey;
- keyblock.enctype = ENCTYPE_DES_CBC_MD4;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
@@ -229,7 +229,7 @@ size_t seed_length;
/* Use the key "as-is" */
keyblock.length = seed_length;
keyblock.contents = (krb5_octet *) seed;
- keyblock.enctype = ENCTYPE_DES_CBC_MD4;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
@@ -272,7 +272,7 @@ size_t seed_length;
keyblock.length = sizeof(mit_des_cblock);
keyblock.contents = (krb5_octet *) tmpkey;
- keyblock.enctype = ENCTYPE_DES_CBC_MD4;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
diff --git a/src/lib/crypto/md5/ChangeLog b/src/lib/crypto/md5/ChangeLog
index 383ac7c89..68868023c 100644
--- a/src/lib/crypto/md5/ChangeLog
+++ b/src/lib/crypto/md5/ChangeLog
@@ -1,14 +1,3 @@
-Wed Sep 06 14:20:57 1995 Chris Provenzano (proven@mit.edu)
-
- * md5crypto.c, t_cksum.c : s/keytype/enctype/g, s/KEYTYPE/ENCTYPE/g
-
-Tue Sep 05 22:10:34 1995 Chris Provenzano (proven@mit.edu)
-
- * md5crypto.c : Replace KEYTYPE_DES_CBC_MD5 for KEYTYPE_DES.
-
- * t_cksum.c : Remove krb5_enctype references, and replace with
- krb5_keytype where appropriate.
-
Thu Aug 24 18:40:48 1995 Theodore Y. Ts'o <tytso@dcl>
* .Sanitize: Update file list
diff --git a/src/lib/crypto/md5/md5crypto.c b/src/lib/crypto/md5/md5crypto.c
index 0c2c49c0d..1254fd82f 100644
--- a/src/lib/crypto/md5/md5crypto.c
+++ b/src/lib/crypto/md5/md5crypto.c
@@ -61,7 +61,7 @@ krb5_checksum FAR *outcksum;
keyblock.length = seed_length;
keyblock.contents = (krb5_octet *)seed;
- keyblock.enctype = ENCTYPE_DES_CBC_MD5;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
@@ -129,7 +129,7 @@ krb5_checksum FAR *outcksum;
keyblock.length = sizeof(mit_des_cblock);
keyblock.contents = (krb5_octet *) tmpkey;
- keyblock.enctype = ENCTYPE_DES_CBC_MD5;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
@@ -196,7 +196,7 @@ size_t seed_length;
/* Use the key "as-is" */
keyblock.length = seed_length;
keyblock.contents = (krb5_octet *) seed;
- keyblock.enctype = ENCTYPE_DES_CBC_MD5;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
@@ -239,7 +239,7 @@ size_t seed_length;
keyblock.length = sizeof(mit_des_cblock);
keyblock.contents = (krb5_octet *) tmpkey;
- keyblock.enctype = ENCTYPE_DES_CBC_MD5;
+ keyblock.keytype = KEYTYPE_DES;
if ((retval = mit_des_process_key(&eblock, &keyblock)))
return retval;
diff --git a/src/lib/crypto/md5/t_cksum.c b/src/lib/crypto/md5/t_cksum.c
index dabf92545..6b0814440 100644
--- a/src/lib/crypto/md5/t_cksum.c
+++ b/src/lib/crypto/md5/t_cksum.c
@@ -104,9 +104,9 @@ main(int argc, char *argv[])
pwd = "test password";
pwdata.length = strlen(pwd);
pwdata.data = pwd;
- krb5_use_enctype(kcontext, &encblock, DEFAULT_KDC_ENCTYPE);
+ krb5_use_cstype(kcontext, &encblock, DEFAULT_KDC_ETYPE);
if (kret = mit_des_string_to_key(&encblock,
- DEFAULT_KDC_ENCTYPE,
+ KEYTYPE_DES,
&keyblock,
&pwdata,
(krb5_data *) NULL)) {
diff --git a/src/lib/crypto/os/ChangeLog b/src/lib/crypto/os/ChangeLog
index 15e412805..e459406bf 100644
--- a/src/lib/crypto/os/ChangeLog
+++ b/src/lib/crypto/os/ChangeLog
@@ -1,8 +1,6 @@
-Thu Sep 7 12:00:00 1995 James Mattly <mattly@fusion.com>
+Sun Sep 10 12:00:00 1995 James Mattly <mattly@fusion.com>
- * 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.
+ * renamed ustime.c to c_ustime.c
Thu Aug 24 18:40:48 1995 Theodore Y. Ts'o <tytso@dcl>
diff --git a/src/lib/crypto/os/Makefile.in b/src/lib/crypto/os/Makefile.in
index 5b8894f74..12d5ad807 100644
--- a/src/lib/crypto/os/Makefile.in
+++ b/src/lib/crypto/os/Makefile.in
@@ -10,9 +10,9 @@ LIBOBJS = @LIBOBJS@
$(CC) $(CFLAGS) -c $(srcdir)/$*.c
@SHARED_RULE@
-OBJS= rnd_confoun.$(OBJEXT) c_localaddr.$(OBJEXT) ustime.$(OBJEXT) $(LIBOBJS)
+OBJS= rnd_confoun.$(OBJEXT) c_localaddr.$(OBJEXT) c_ustime.$(OBJEXT) $(LIBOBJS)
-SRCS= rnd_confoun.c c_localaddr.c ustime.c
+SRCS= rnd_confoun.c c_localaddr.c c_ustime.c
all:: all-$(WHAT)
diff --git a/src/lib/crypto/os/c_localaddr.c b/src/lib/crypto/os/c_localaddr.c
index be8a98b8c..7ab153a8a 100644
--- a/src/lib/crypto/os/c_localaddr.c
+++ b/src/lib/crypto/os/c_localaddr.c
@@ -1,5 +1,5 @@
/*
- * lib/crypto/os/c_localaddr.c
+ * lib/crypto/os/localaddr.c
*
* Copyright 1990,1991 by the Massachusetts Institute of Technology.
* All Rights Reserved.
diff --git a/src/lib/crypto/os/ustime.c b/src/lib/crypto/os/c_ustime.c
index 0cd3844ef..3ab6b944c 100644
--- a/src/lib/crypto/os/ustime.c
+++ b/src/lib/crypto/os/c_ustime.c
@@ -28,6 +28,7 @@
#include "k5-int.h"
#ifdef _MACINTOSH
+
/* We're a Macintosh -- do Mac time things. */
/*
@@ -50,38 +51,39 @@
#include <string.h>
#include <stddef.h>
- /*******************************
- 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)
+static krb5_int32 last_sec = 0, last_usec = 0;
- Don't forget the offset from GMT.
- *******************************/
+/*
+ * 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);
+ 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);
}
-static krb5_int32 last_sec = 0, last_usec = 0;
-
/* Returns the GMT in seconds (and fake microseconds) using the Unix epoch */
krb5_error_code INTERFACE
@@ -90,16 +92,13 @@ krb5_crypto_us_timeofday(seconds, microseconds)
{
krb5_int32 sec, usec;
time_t the_time;
- struct tm *gtime, *ltime;
-// GetDateTime (&the_time);
- time(&the_time);
-// gtime = gmtime(&the_time);
-// ltime = localtime(&the_time);
+ GetDateTime (&the_time);
+
sec = the_time -
- ((66 * 365 * 24 * 60 * 60) +
- (17 * 24 * 60 * 60) +
- (getTimeZoneOffset() * 60 * 60));
+ ((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)) {
@@ -109,107 +108,22 @@ krb5_crypto_us_timeofday(seconds, microseconds)
}
sec = last_sec;
usec = last_usec;
- } else
+ }
+ else {
last_sec = sec;
last_usec = usec;
-
+ }
+
*seconds = sec;
*microseconds = usec;
return 0;
}
-#if 0
-
-int
-gettimeofdaynet (struct timeval *tp, struct timezone *tz)
-{
- tp->tv_sec = gettimeofdaynet_no_offset();
- return 0;
-}
-
-
-#define TIME_PORT 37
-#define TM_OFFSET 2208988800
-
-/*
- *
- * get_net_offset () -- Use UDP time protocol to figure out the
- * offset between what the Mac thinks the time is an what
- * the network thinks.
- *
- */
-int
-get_net_offset()
-{
- time_t tv;
- char buf[512],ts[256];
- long *nettime;
- int attempts, cc, time_port;
- long unixtime;
- char realm[REALM_SZ];
- ip_addr fromaddr;
- unsigned short fromport;
- int result;
-
- nettime = (long *)buf;
- time_port = TIME_PORT;
-
- cc = sizeof(buf);
- result = hosts_send_recv(ts, 1, buf, &cc, "", time_port);
- time (&tv);
-
- if (result!=KSUCCESS || cc<4) {
- net_offset = 0;
- if (!result) result = 100;
- return result;
- }
-
- unixtime = (long) ntohl(*nettime) - TM_OFFSET;
-
- tv -= 66 * 365 * 24 * 60 * 60
- + 17 * 60 * 60 * 24; /* Convert to unix time w/o offset */
- net_offset = unixtime - tv;
- net_got_offset = 1;
-
- return 0;
-}
-
-#endif /* 0 */
-
-#else /* HAVE_MACSOCK_H */
-#ifndef _MSDOS
-/* We're a Unix machine -- do Unix time things. */
-
-extern int errno;
-
-static struct timeval last_tv = {0, 0};
-krb5_error_code INTERFACE
-krb5_crypto_us_timeofday(seconds, microseconds)
- register krb5_int32 *seconds, *microseconds;
-{
- struct timeval tv;
+#elif defined (_MSDOS)
- 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;
-}
-#else /* DOS version */
/*
* Originally written by John Gilmore, Cygnus Support, May '94.
* Public Domain.
@@ -257,6 +171,8 @@ register krb5_int32 *seconds, *microseconds;
return 0;
}
+
+
static time_t
win_gettime () {
struct tm tm;
@@ -299,6 +215,8 @@ win_gettime () {
return time + convert;
}
+
+
/*
* This routine figures out the current time epoch and returns the
* conversion factor. It exists because
@@ -323,5 +241,38 @@ win_time_get_epoch()
return epoch;
}
-#endif /* MSDOS */
-#endif /* HAVE_MACSOCK_H */
+
+#else
+
+
+/* We're a Unix machine -- do Unix time things. */
+
+extern int errno;
+
+static struct timeval last_tv = {0, 0};
+
+krb5_error_code INTERFACE
+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/raw_des.c b/src/lib/crypto/raw_des.c
index 7948ba601..9922dbf28 100644
--- a/src/lib/crypto/raw_des.c
+++ b/src/lib/crypto/raw_des.c
@@ -45,7 +45,8 @@ static krb5_cryptosystem_entry mit_raw_des_cryptosystem_entry = {
sizeof(mit_des_cblock),
0,
sizeof(mit_des_cblock),
- ENCTYPE_DES_CBC_RAW
+ ETYPE_RAW_DES_CBC,
+ KEYTYPE_DES
};
krb5_cs_table_entry krb5_raw_des_cst_entry = {