merge new-crypto branch
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5332 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -4,6 +4,18 @@ Mon Feb 1 04:08:36 1999 Assar Westerlund <assar@sics.se>
|
||||
if we actually have IPv6. From "Brandon S. Allbery KF8NH"
|
||||
<allbery@kf8nh.apk.net>
|
||||
|
||||
Sat Nov 21 16:51:00 1998 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* telnetd/sys_term.c (cleanup): don't call vhangup() on sgi:s
|
||||
|
||||
Fri Aug 14 16:29:18 1998 Johan Danielsson <joda@emma.pdc.kth.se>
|
||||
|
||||
* libtelnet/kerberos.c: krb_put_int -> KRB_PUT_INT
|
||||
|
||||
Thu Jul 23 20:29:05 1998 Johan Danielsson <joda@emma.pdc.kth.se>
|
||||
|
||||
* libtelnet/kerberos5.c: use krb5_verify_authenticator_checksum
|
||||
|
||||
Wed May 27 04:19:17 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* telnet/sys_bsd.c (process_rings): correct call to `stilloob'
|
||||
|
@@ -620,13 +620,13 @@ pack_cred(CREDENTIALS *cred, unsigned char *buf)
|
||||
p += REALM_SZ;
|
||||
memcpy(p, cred->session, 8);
|
||||
p += 8;
|
||||
p += krb_put_int(cred->lifetime, p, 4, 4);
|
||||
p += krb_put_int(cred->kvno, p, 4, 4);
|
||||
p += krb_put_int(cred->ticket_st.length, p, 4, 4);
|
||||
p += KRB_PUT_INT(cred->lifetime, p, 4, 4);
|
||||
p += KRB_PUT_INT(cred->kvno, p, 4, 4);
|
||||
p += KRB_PUT_INT(cred->ticket_st.length, p, 4, 4);
|
||||
memcpy(p, cred->ticket_st.dat, cred->ticket_st.length);
|
||||
p += cred->ticket_st.length;
|
||||
p += krb_put_int(0, p, 4, 4);
|
||||
p += krb_put_int(cred->issue_date, p, 4, 4);
|
||||
p += KRB_PUT_INT(0, p, 4, 4);
|
||||
p += KRB_PUT_INT(cred->issue_date, p, 4, 4);
|
||||
memcpy (p, cred->pname, ANAME_SZ);
|
||||
p += ANAME_SZ;
|
||||
memcpy (p, cred->pinst, INST_SZ);
|
||||
|
@@ -256,7 +256,6 @@ kerberos5_is(Authenticator *ap, unsigned char *data, int cnt)
|
||||
krb5_keyblock *key_block;
|
||||
char *name;
|
||||
krb5_principal server;
|
||||
krb5_authenticator authenticator;
|
||||
int zero = 0;
|
||||
|
||||
if (cnt-- < 1)
|
||||
@@ -327,55 +326,29 @@ kerberos5_is(Authenticator *ap, unsigned char *data, int cnt)
|
||||
free (errbuf);
|
||||
return;
|
||||
}
|
||||
|
||||
ret = krb5_auth_con_getkey(context, auth_context, &key_block);
|
||||
if (ret) {
|
||||
Data(ap, KRB_REJECT, "krb5_auth_con_getkey failed", -1);
|
||||
auth_finished(ap, AUTH_REJECT);
|
||||
if (auth_debug_mode)
|
||||
printf("Kerberos V5: "
|
||||
"krb5_auth_con_getkey failed (%s)\r\n",
|
||||
krb5_get_err_text(context, ret));
|
||||
return;
|
||||
}
|
||||
|
||||
ret = krb5_auth_getauthenticator (context,
|
||||
auth_context,
|
||||
&authenticator);
|
||||
if (ret) {
|
||||
Data(ap, KRB_REJECT, "krb5_auth_getauthenticator failed", -1);
|
||||
auth_finished(ap, AUTH_REJECT);
|
||||
if (auth_debug_mode)
|
||||
printf("Kerberos V5: "
|
||||
"krb5_auth_getauthenticator failed (%s)\r\n",
|
||||
krb5_get_err_text(context, ret));
|
||||
return;
|
||||
}
|
||||
|
||||
if (authenticator->cksum) {
|
||||
{
|
||||
char foo[2];
|
||||
|
||||
|
||||
foo[0] = ap->type;
|
||||
foo[1] = ap->way;
|
||||
|
||||
ret = krb5_verify_authenticator_checksum(context,
|
||||
auth_context,
|
||||
foo,
|
||||
sizeof(foo));
|
||||
|
||||
ret = krb5_verify_checksum (context,
|
||||
foo,
|
||||
sizeof(foo),
|
||||
key_block,
|
||||
authenticator->cksum);
|
||||
if (ret) {
|
||||
Data(ap, KRB_REJECT, "No checksum", -1);
|
||||
char *errbuf;
|
||||
asprintf(&errbuf, "Bad checksum: %s",
|
||||
krb5_get_err_text(context, ret));
|
||||
Data(ap, KRB_REJECT, errbuf, -1);
|
||||
if (auth_debug_mode)
|
||||
printf ("No checksum\r\n");
|
||||
krb5_free_authenticator (context,
|
||||
&authenticator);
|
||||
|
||||
printf ("%s\r\n", errbuf);
|
||||
free(errbuf);
|
||||
return;
|
||||
}
|
||||
}
|
||||
krb5_free_authenticator (context,
|
||||
&authenticator);
|
||||
|
||||
ret = krb5_auth_con_getremotesubkey (context,
|
||||
auth_context,
|
||||
&key_block);
|
||||
@@ -416,7 +389,9 @@ kerberos5_is(Authenticator *ap, unsigned char *data, int cnt)
|
||||
name ? name : "");
|
||||
}
|
||||
|
||||
if(key_block->keytype == KEYTYPE_DES) {
|
||||
if(key_block->keytype == ETYPE_DES_CBC_MD5 ||
|
||||
key_block->keytype == ETYPE_DES_CBC_MD4 ||
|
||||
key_block->keytype == ETYPE_DES_CBC_CRC) {
|
||||
Session_Key skey;
|
||||
|
||||
skey.type = SK_DES;
|
||||
|
@@ -1602,8 +1602,10 @@ cleanup(int sig)
|
||||
#if defined(HAVE_UTMPX_H) || !defined(HAVE_LOGWTMP)
|
||||
rmut();
|
||||
#ifdef HAVE_VHANGUP
|
||||
#ifndef __sgi
|
||||
vhangup(); /* XXX */
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
char *p;
|
||||
|
||||
|
Reference in New Issue
Block a user