always include kaserver support
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10215 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -19,19 +19,21 @@ kstash_SOURCES = kstash.c headers.h
|
|||||||
|
|
||||||
string2key_SOURCES = string2key.c headers.h
|
string2key_SOURCES = string2key.c headers.h
|
||||||
|
|
||||||
|
if KRB4
|
||||||
|
krb4_sources = 524.c kerberos4.c kaserver.c rx.h
|
||||||
|
else
|
||||||
|
krb4_sources =
|
||||||
|
endif
|
||||||
|
|
||||||
kdc_SOURCES = \
|
kdc_SOURCES = \
|
||||||
524.c \
|
|
||||||
config.c \
|
config.c \
|
||||||
connect.c \
|
connect.c \
|
||||||
kaserver.c \
|
|
||||||
kdc_locl.h \
|
kdc_locl.h \
|
||||||
kerberos4.c \
|
|
||||||
kerberos4.h \
|
|
||||||
kerberos5.c \
|
kerberos5.c \
|
||||||
log.c \
|
log.c \
|
||||||
main.c \
|
main.c \
|
||||||
misc.c \
|
misc.c \
|
||||||
rx.h
|
$(krb4_sources)
|
||||||
|
|
||||||
|
|
||||||
hprop_LDADD = \
|
hprop_LDADD = \
|
||||||
|
16
kdc/config.c
16
kdc/config.c
@@ -67,9 +67,7 @@ krb5_addresses explicit_addresses;
|
|||||||
char *v4_realm;
|
char *v4_realm;
|
||||||
int enable_v4 = -1;
|
int enable_v4 = -1;
|
||||||
int enable_524 = -1;
|
int enable_524 = -1;
|
||||||
#endif
|
int enable_kaserver = -1;
|
||||||
#ifdef KASERVER
|
|
||||||
krb5_boolean enable_kaserver = -1;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int help_flag;
|
static int help_flag;
|
||||||
@@ -106,15 +104,13 @@ static struct getargs args[] = {
|
|||||||
"v4-realm", 'r', arg_string, &v4_realm,
|
"v4-realm", 'r', arg_string, &v4_realm,
|
||||||
"realm to serve v4-requests for"
|
"realm to serve v4-requests for"
|
||||||
},
|
},
|
||||||
#endif
|
|
||||||
#ifdef KASERVER
|
|
||||||
{
|
{
|
||||||
"kaserver", 'K', arg_negative_flag, &enable_kaserver,
|
"kaserver", 'K', arg_flag, &enable_kaserver,
|
||||||
"turn off kaserver support"
|
"enable kaserver support"
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
{ "ports", 'P', arg_string, &port_str,
|
{ "ports", 'P', arg_string, &port_str,
|
||||||
"ports to listen to"
|
"ports to listen to", "portspec"
|
||||||
},
|
},
|
||||||
{ "addresses", 0, arg_strings, &addresses_str,
|
{ "addresses", 0, arg_strings, &addresses_str,
|
||||||
"addresses to listen on", "list of addresses" },
|
"addresses to listen on", "list of addresses" },
|
||||||
@@ -329,10 +325,8 @@ configure(int argc, char **argv)
|
|||||||
if(p)
|
if(p)
|
||||||
v4_realm = strdup(p);
|
v4_realm = strdup(p);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#ifdef KASERVER
|
|
||||||
if (enable_kaserver == -1)
|
if (enable_kaserver == -1)
|
||||||
enable_kaserver = krb5_config_get_bool_default(context, cf, TRUE,
|
enable_kaserver = krb5_config_get_bool_default(context, cf, FALSE,
|
||||||
"kdc",
|
"kdc",
|
||||||
"enable-kaserver",
|
"enable-kaserver",
|
||||||
NULL);
|
NULL);
|
||||||
|
@@ -140,8 +140,6 @@ add_standard_ports (int family)
|
|||||||
add_port_service(family, "krb524", 4444, "udp");
|
add_port_service(family, "krb524", 4444, "udp");
|
||||||
add_port_service(family, "krb524", 4444, "tcp");
|
add_port_service(family, "krb524", 4444, "tcp");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#ifdef KASERVER
|
|
||||||
if (enable_kaserver)
|
if (enable_kaserver)
|
||||||
add_port_service(family, "afs3-kaserver", 7004, "udp");
|
add_port_service(family, "afs3-kaserver", 7004, "udp");
|
||||||
#endif
|
#endif
|
||||||
@@ -385,10 +383,7 @@ process_request(unsigned char *buf,
|
|||||||
ret = do_524(&ticket, reply, from, addr);
|
ret = do_524(&ticket, reply, from, addr);
|
||||||
free_Ticket(&ticket);
|
free_Ticket(&ticket);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
} else if (enable_kaserver) {
|
||||||
#endif
|
|
||||||
#ifdef KASERVER
|
|
||||||
else if (enable_kaserver) {
|
|
||||||
ret = do_kaserver (buf, len, reply, from, (struct sockaddr_in*)addr);
|
ret = do_kaserver (buf, len, reply, from, (struct sockaddr_in*)addr);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
96
kdc/hprop.c
96
kdc/hprop.c
@@ -49,7 +49,7 @@ static hdb_master_key mkey5;
|
|||||||
static char *source_type;
|
static char *source_type;
|
||||||
|
|
||||||
static char *afs_cell;
|
static char *afs_cell;
|
||||||
static char *realm;
|
static char *v4_realm;
|
||||||
|
|
||||||
#ifdef KRB4
|
#ifdef KRB4
|
||||||
static int v4_db;
|
static int v4_db;
|
||||||
@@ -57,12 +57,10 @@ static int v4_db;
|
|||||||
static des_cblock mkey4;
|
static des_cblock mkey4;
|
||||||
static des_key_schedule msched4;
|
static des_key_schedule msched4;
|
||||||
|
|
||||||
#ifdef KASERVER_DB
|
#endif
|
||||||
static int kaspecials_flag;
|
static int kaspecials_flag;
|
||||||
static int ka_db;
|
static int ka_db;
|
||||||
static int ka_use_null_salt;
|
static int ka_use_null_salt;
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static char *local_realm=NULL;
|
static char *local_realm=NULL;
|
||||||
|
|
||||||
@@ -220,12 +218,12 @@ v4_prop(void *arg, struct v4_principal *p)
|
|||||||
|
|
||||||
memset(&ent, 0, sizeof(ent));
|
memset(&ent, 0, sizeof(ent));
|
||||||
|
|
||||||
ret = krb5_425_conv_principal(pd->context, p->name, p->instance, realm,
|
ret = krb5_425_conv_principal(pd->context, p->name, p->instance, v4_realm,
|
||||||
&ent.principal);
|
&ent.principal);
|
||||||
if(ret) {
|
if(ret) {
|
||||||
krb5_warn(pd->context, ret,
|
krb5_warn(pd->context, ret,
|
||||||
"krb5_425_conv_principal %s.%s@%s",
|
"krb5_425_conv_principal %s.%s@%s",
|
||||||
p->name, p->instance, realm);
|
p->name, p->instance, v4_realm);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,7 +276,7 @@ v4_prop(void *arg, struct v4_principal *p)
|
|||||||
*ent.valid_end = p->exp_date;
|
*ent.valid_end = p->exp_date;
|
||||||
|
|
||||||
ret = krb5_make_principal(pd->context, &ent.created_by.principal,
|
ret = krb5_make_principal(pd->context, &ent.created_by.principal,
|
||||||
realm,
|
v4_realm,
|
||||||
"kadmin",
|
"kadmin",
|
||||||
"hprop",
|
"hprop",
|
||||||
NULL);
|
NULL);
|
||||||
@@ -290,9 +288,9 @@ v4_prop(void *arg, struct v4_principal *p)
|
|||||||
ent.created_by.time = time(NULL);
|
ent.created_by.time = time(NULL);
|
||||||
ALLOC(ent.modified_by);
|
ALLOC(ent.modified_by);
|
||||||
ret = krb5_425_conv_principal(pd->context, p->mod_name, p->mod_instance,
|
ret = krb5_425_conv_principal(pd->context, p->mod_name, p->mod_instance,
|
||||||
realm, &ent.modified_by->principal);
|
v4_realm, &ent.modified_by->principal);
|
||||||
if(ret){
|
if(ret){
|
||||||
krb5_warn(pd->context, ret, "%s.%s@%s", p->name, p->instance, realm);
|
krb5_warn(pd->context, ret, "%s.%s@%s", p->name, p->instance, v4_realm);
|
||||||
ent.modified_by->principal = NULL;
|
ent.modified_by->principal = NULL;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
goto out;
|
goto out;
|
||||||
@@ -320,10 +318,10 @@ v4_prop(void *arg, struct v4_principal *p)
|
|||||||
ret = v5_prop(pd->context, NULL, &ent, pd);
|
ret = v5_prop(pd->context, NULL, &ent, pd);
|
||||||
|
|
||||||
if (strcmp (p->name, "krbtgt") == 0
|
if (strcmp (p->name, "krbtgt") == 0
|
||||||
&& strcmp (realm, p->instance) != 0) {
|
&& strcmp (v4_realm, p->instance) != 0) {
|
||||||
krb5_free_principal (pd->context, ent.principal);
|
krb5_free_principal (pd->context, ent.principal);
|
||||||
ret = krb5_425_conv_principal (pd->context, p->name,
|
ret = krb5_425_conv_principal (pd->context, p->name,
|
||||||
realm, p->instance,
|
v4_realm, p->instance,
|
||||||
&ent.principal);
|
&ent.principal);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
ret = v5_prop (pd->context, NULL, &ent, pd);
|
ret = v5_prop (pd->context, NULL, &ent, pd);
|
||||||
@@ -334,9 +332,6 @@ v4_prop(void *arg, struct v4_principal *p)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef KRB4
|
|
||||||
#ifdef KASERVER_DB
|
|
||||||
|
|
||||||
#include "kadb.h"
|
#include "kadb.h"
|
||||||
|
|
||||||
/* read a `ka_entry' from `fd' at offset `pos' */
|
/* read a `ka_entry' from `fd' at offset `pos' */
|
||||||
@@ -344,18 +339,22 @@ static void
|
|||||||
read_block(krb5_context context, int fd, int32_t pos, void *buf, size_t len)
|
read_block(krb5_context context, int fd, int32_t pos, void *buf, size_t len)
|
||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
|
#ifdef HAVE_PREAD
|
||||||
|
if((ret = pread(fd, buf, len, 64 + pos)) < 0)
|
||||||
|
krb5_err(context, 1, errno, "pread(%u)", 64 + pos);
|
||||||
|
#else
|
||||||
if(lseek(fd, 64 + pos, SEEK_SET) == (off_t)-1)
|
if(lseek(fd, 64 + pos, SEEK_SET) == (off_t)-1)
|
||||||
krb5_err(context, 1, errno, "lseek(%u)", 64 + pos);
|
krb5_err(context, 1, errno, "lseek(%u)", 64 + pos);
|
||||||
ret = read(fd, buf, len);
|
ret = read(fd, buf, len);
|
||||||
if(ret < 0)
|
if(ret < 0)
|
||||||
krb5_err(context, 1, errno, "read(%u)", len);
|
krb5_err(context, 1, errno, "read(%u)", len);
|
||||||
|
#endif
|
||||||
if(ret != len)
|
if(ret != len)
|
||||||
krb5_errx(context, 1, "read(%u) = %u", len, ret);
|
krb5_errx(context, 1, "read(%u) = %u", len, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
ka_convert(struct prop_data *pd, int fd, struct ka_entry *ent,
|
ka_convert(struct prop_data *pd, int fd, struct ka_entry *ent)
|
||||||
const char *cell)
|
|
||||||
{
|
{
|
||||||
int32_t flags = ntohl(ent->flags);
|
int32_t flags = ntohl(ent->flags);
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
@@ -365,12 +364,12 @@ ka_convert(struct prop_data *pd, int fd, struct ka_entry *ent,
|
|||||||
&& (flags & KAFNORMAL) == 0) /* remove special entries */
|
&& (flags & KAFNORMAL) == 0) /* remove special entries */
|
||||||
return 0;
|
return 0;
|
||||||
memset(&hdb, 0, sizeof(hdb));
|
memset(&hdb, 0, sizeof(hdb));
|
||||||
ret = krb5_425_conv_principal(pd->context, ent->name, ent->instance, realm,
|
ret = krb5_425_conv_principal(pd->context, ent->name, ent->instance,
|
||||||
&hdb.principal);
|
v4_realm, &hdb.principal);
|
||||||
if(ret) {
|
if(ret) {
|
||||||
krb5_warn(pd->context, ret,
|
krb5_warn(pd->context, ret,
|
||||||
"krb5_425_conv_principal (%s.%s@%s)",
|
"krb5_425_conv_principal (%s.%s@%s)",
|
||||||
ent->name, ent->instance, realm);
|
ent->name, ent->instance, v4_realm);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
hdb.kvno = ntohl(ent->kvno);
|
hdb.kvno = ntohl(ent->kvno);
|
||||||
@@ -384,8 +383,8 @@ ka_convert(struct prop_data *pd, int fd, struct ka_entry *ent,
|
|||||||
hdb.keys.val[0].salt->salt.length = 0;
|
hdb.keys.val[0].salt->salt.length = 0;
|
||||||
} else {
|
} else {
|
||||||
hdb.keys.val[0].salt->type = hdb_afs3_salt;
|
hdb.keys.val[0].salt->type = hdb_afs3_salt;
|
||||||
hdb.keys.val[0].salt->salt.data = strdup(cell);
|
hdb.keys.val[0].salt->salt.data = strdup(afs_cell);
|
||||||
hdb.keys.val[0].salt->salt.length = strlen(cell);
|
hdb.keys.val[0].salt->salt.length = strlen(afs_cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
hdb.keys.val[0].key.keytype = ETYPE_DES_CBC_MD5;
|
hdb.keys.val[0].key.keytype = ETYPE_DES_CBC_MD5;
|
||||||
@@ -412,7 +411,7 @@ ka_convert(struct prop_data *pd, int fd, struct ka_entry *ent,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = krb5_make_principal(pd->context, &hdb.created_by.principal,
|
ret = krb5_make_principal(pd->context, &hdb.created_by.principal,
|
||||||
realm,
|
v4_realm,
|
||||||
"kadmin",
|
"kadmin",
|
||||||
"hprop",
|
"hprop",
|
||||||
NULL);
|
NULL);
|
||||||
@@ -423,7 +422,7 @@ ka_convert(struct prop_data *pd, int fd, struct ka_entry *ent,
|
|||||||
ALLOC(hdb.modified_by);
|
ALLOC(hdb.modified_by);
|
||||||
read_block(pd->context, fd, ntohl(ent->mod_ptr), &mod, sizeof(mod));
|
read_block(pd->context, fd, ntohl(ent->mod_ptr), &mod, sizeof(mod));
|
||||||
|
|
||||||
krb5_425_conv_principal(pd->context, mod.name, mod.instance, realm,
|
krb5_425_conv_principal(pd->context, mod.name, mod.instance, v4_realm,
|
||||||
&hdb.modified_by->principal);
|
&hdb.modified_by->principal);
|
||||||
hdb.modified_by->time = ntohl(ent->mod_time);
|
hdb.modified_by->time = ntohl(ent->mod_time);
|
||||||
memset(&mod, 0, sizeof(mod));
|
memset(&mod, 0, sizeof(mod));
|
||||||
@@ -447,7 +446,7 @@ ka_convert(struct prop_data *pd, int fd, struct ka_entry *ent,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
ka_dump(struct prop_data *pd, const char *file, const char *cell)
|
ka_dump(struct prop_data *pd, const char *file)
|
||||||
{
|
{
|
||||||
struct ka_header header;
|
struct ka_header header;
|
||||||
int i;
|
int i;
|
||||||
@@ -467,16 +466,13 @@ ka_dump(struct prop_data *pd, const char *file, const char *cell)
|
|||||||
while(pos){
|
while(pos){
|
||||||
struct ka_entry ent;
|
struct ka_entry ent;
|
||||||
read_block(pd->context, fd, pos, &ent, sizeof(ent));
|
read_block(pd->context, fd, pos, &ent, sizeof(ent));
|
||||||
ka_convert(pd, fd, &ent, cell);
|
ka_convert(pd, fd, &ent);
|
||||||
pos = ntohl(ent.next);
|
pos = ntohl(ent.next);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* KASERVER_DB */
|
|
||||||
|
|
||||||
#endif /* KRB4 */
|
|
||||||
|
|
||||||
|
|
||||||
struct getargs args[] = {
|
struct getargs args[] = {
|
||||||
@@ -488,21 +484,17 @@ struct getargs args[] = {
|
|||||||
"|krb4-dump"
|
"|krb4-dump"
|
||||||
#ifdef KRB4
|
#ifdef KRB4
|
||||||
"|krb4-db"
|
"|krb4-db"
|
||||||
#ifdef KASERVER_DB
|
#endif
|
||||||
"|kaserver"
|
"|kaserver"
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
},
|
},
|
||||||
|
|
||||||
#ifdef KRB4
|
#ifdef KRB4
|
||||||
{ "v4-db", '4', arg_flag, &v4_db },
|
{ "v4-db", '4', arg_flag, &v4_db },
|
||||||
#endif
|
|
||||||
{ "v4-realm", 'r', arg_string, &realm, "v4 realm to use" },
|
{ "v4-realm", 'r', arg_string, &realm, "v4 realm to use" },
|
||||||
#ifdef KASERVER_DB
|
#endif
|
||||||
{ "ka-db", 'K', arg_flag, &ka_db },
|
{ "ka-db", 'K', arg_flag, &ka_db },
|
||||||
{ "cell", 'c', arg_string, &afs_cell, "name of AFS cell" },
|
{ "cell", 'c', arg_string, &afs_cell, "name of AFS cell" },
|
||||||
{ "kaspecials", 'S', arg_flag, &kaspecials_flag, "dump KASPECIAL keys"},
|
{ "kaspecials", 'S', arg_flag, &kaspecials_flag, "dump KASPECIAL keys"},
|
||||||
#endif
|
|
||||||
{ "keytab", 'k', arg_string, &ktname, "keytab to use for authentication", "keytab" },
|
{ "keytab", 'k', arg_string, &ktname, "keytab to use for authentication", "keytab" },
|
||||||
{ "v5-realm", 'R', arg_string, &local_realm, "v5 realm to use" },
|
{ "v5-realm", 'R', arg_string, &local_realm, "v5 realm to use" },
|
||||||
{ "decrypt", 'D', arg_flag, &decrypt_flag, "decrypt keys" },
|
{ "decrypt", 'D', arg_flag, &decrypt_flag, "decrypt keys" },
|
||||||
@@ -579,10 +571,8 @@ struct {
|
|||||||
{ HPROP_KRB4_DUMP, "krb4-dump" },
|
{ HPROP_KRB4_DUMP, "krb4-dump" },
|
||||||
#ifdef KRB4
|
#ifdef KRB4
|
||||||
{ HPROP_KRB4_DB, "krb4-db" },
|
{ HPROP_KRB4_DB, "krb4-db" },
|
||||||
#ifdef KASERVER_DB
|
#endif
|
||||||
{ HPROP_KASERVER, "kaserver" },
|
{ HPROP_KASERVER, "kaserver" },
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
{ HPROP_MIT_DUMP, "mit-dump" }
|
{ HPROP_MIT_DUMP, "mit-dump" }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -600,7 +590,6 @@ parse_source_type(const char *s)
|
|||||||
static void
|
static void
|
||||||
iterate (krb5_context context,
|
iterate (krb5_context context,
|
||||||
const char *database,
|
const char *database,
|
||||||
const char *afs_cell,
|
|
||||||
HDB *db,
|
HDB *db,
|
||||||
int type,
|
int type,
|
||||||
struct prop_data *pd)
|
struct prop_data *pd)
|
||||||
@@ -618,14 +607,12 @@ iterate (krb5_context context,
|
|||||||
krb5_errx(context, 1, "kerb_db_iterate: %s",
|
krb5_errx(context, 1, "kerb_db_iterate: %s",
|
||||||
krb_get_err_text(ret));
|
krb_get_err_text(ret));
|
||||||
break;
|
break;
|
||||||
#ifdef KASERVER_DB
|
|
||||||
case HPROP_KASERVER:
|
|
||||||
ret = ka_dump(pd, database, afs_cell);
|
|
||||||
if(ret)
|
|
||||||
krb5_errx(context, 1, "ka_dump: %s", krb_get_err_text(ret));
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
#endif /* KRB4 */
|
#endif /* KRB4 */
|
||||||
|
case HPROP_KASERVER:
|
||||||
|
ret = ka_dump(pd, database);
|
||||||
|
if(ret)
|
||||||
|
krb5_err(context, 1, ret, "ka_dump");
|
||||||
|
break;
|
||||||
case HPROP_MIT_DUMP:
|
case HPROP_MIT_DUMP:
|
||||||
ret = mit_prop_dump(pd, database);
|
ret = mit_prop_dump(pd, database);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -642,8 +629,7 @@ iterate (krb5_context context,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
dump_database (krb5_context context, int type,
|
dump_database (krb5_context context, int type,
|
||||||
const char *database, const char *afs_cell,
|
const char *database, HDB *db)
|
||||||
HDB *db)
|
|
||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
struct prop_data pd;
|
struct prop_data pd;
|
||||||
@@ -653,7 +639,7 @@ dump_database (krb5_context context, int type,
|
|||||||
pd.auth_context = NULL;
|
pd.auth_context = NULL;
|
||||||
pd.sock = STDOUT_FILENO;
|
pd.sock = STDOUT_FILENO;
|
||||||
|
|
||||||
iterate (context, database, afs_cell, db, type, &pd);
|
iterate (context, database, db, type, &pd);
|
||||||
krb5_data_zero (&data);
|
krb5_data_zero (&data);
|
||||||
ret = krb5_write_message (context, &pd.sock, &data);
|
ret = krb5_write_message (context, &pd.sock, &data);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -664,7 +650,7 @@ dump_database (krb5_context context, int type,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
propagate_database (krb5_context context, int type,
|
propagate_database (krb5_context context, int type,
|
||||||
const char *database, const char *afs_cell,
|
const char *database,
|
||||||
HDB *db, krb5_ccache ccache,
|
HDB *db, krb5_ccache ccache,
|
||||||
int optind, int argc, char **argv)
|
int optind, int argc, char **argv)
|
||||||
{
|
{
|
||||||
@@ -735,7 +721,7 @@ propagate_database (krb5_context context, int type,
|
|||||||
pd.auth_context = auth_context;
|
pd.auth_context = auth_context;
|
||||||
pd.sock = fd;
|
pd.sock = fd;
|
||||||
|
|
||||||
iterate (context, database, afs_cell, db, type, &pd);
|
iterate (context, database, db, type, &pd);
|
||||||
|
|
||||||
krb5_data_zero (&data);
|
krb5_data_zero (&data);
|
||||||
ret = krb5_write_priv_message(context, auth_context, &fd, &data);
|
ret = krb5_write_priv_message(context, auth_context, &fd, &data);
|
||||||
@@ -818,14 +804,12 @@ main(int argc, char **argv)
|
|||||||
krb5_errx(context, 1, "more than one database type specified");
|
krb5_errx(context, 1, "more than one database type specified");
|
||||||
type = HPROP_KRB4_DB;
|
type = HPROP_KRB4_DB;
|
||||||
}
|
}
|
||||||
#ifdef KASERVER_DB
|
#endif
|
||||||
if(ka_db) {
|
if(ka_db) {
|
||||||
if(type != 0)
|
if(type != 0)
|
||||||
krb5_errx(context, 1, "more than one database type specified");
|
krb5_errx(context, 1, "more than one database type specified");
|
||||||
type = HPROP_KASERVER;
|
type = HPROP_KASERVER;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(source_type != NULL) {
|
if(source_type != NULL) {
|
||||||
if(type != 0)
|
if(type != 0)
|
||||||
@@ -868,7 +852,6 @@ main(int argc, char **argv)
|
|||||||
krb5_errx(context, 1, "no database specified");
|
krb5_errx(context, 1, "no database specified");
|
||||||
v4_get_masterkey (context, database);
|
v4_get_masterkey (context, database);
|
||||||
break;
|
break;
|
||||||
#ifdef KASERVER_DB
|
|
||||||
case HPROP_KASERVER:
|
case HPROP_KASERVER:
|
||||||
if (database == NULL)
|
if (database == NULL)
|
||||||
database = DEFAULT_DATABASE;
|
database = DEFAULT_DATABASE;
|
||||||
@@ -878,7 +861,6 @@ main(int argc, char **argv)
|
|||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
#endif /* KRB4 */
|
#endif /* KRB4 */
|
||||||
case HPROP_KRB4_DUMP:
|
case HPROP_KRB4_DUMP:
|
||||||
if (database == NULL)
|
if (database == NULL)
|
||||||
@@ -905,9 +887,9 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (to_stdout)
|
if (to_stdout)
|
||||||
dump_database (context, type, database, afs_cell, db);
|
dump_database (context, type, database, db);
|
||||||
else
|
else
|
||||||
propagate_database (context, type, database, afs_cell,
|
propagate_database (context, type, database,
|
||||||
db, ccache, optind, argc, argv);
|
db, ccache, optind, argc, argv);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,6 @@
|
|||||||
|
|
||||||
RCSID("$Id$");
|
RCSID("$Id$");
|
||||||
|
|
||||||
#ifdef KASERVER
|
|
||||||
|
|
||||||
#include <rx.h>
|
#include <rx.h>
|
||||||
|
|
||||||
@@ -311,8 +310,8 @@ create_reply_ticket (struct rx_header *hdr,
|
|||||||
|
|
||||||
/* encrypt it */
|
/* encrypt it */
|
||||||
des_set_key (key, schedule);
|
des_set_key (key, schedule);
|
||||||
des_pcbc_encrypt ((des_cblock *)enc_data.data,
|
des_pcbc_encrypt (enc_data.data,
|
||||||
(des_cblock *)enc_data.data,
|
enc_data.data,
|
||||||
enc_data.length,
|
enc_data.length,
|
||||||
schedule,
|
schedule,
|
||||||
key,
|
key,
|
||||||
@@ -451,8 +450,8 @@ do_authenticate (struct rx_header *hdr,
|
|||||||
/* try to decode the `request' */
|
/* try to decode the `request' */
|
||||||
memcpy (&key, ckey->key.keyvalue.data, sizeof(key));
|
memcpy (&key, ckey->key.keyvalue.data, sizeof(key));
|
||||||
des_set_key (&key, schedule);
|
des_set_key (&key, schedule);
|
||||||
des_pcbc_encrypt ((des_cblock *)request.data,
|
des_pcbc_encrypt (request.data,
|
||||||
(des_cblock *)request.data,
|
request.data,
|
||||||
request.length,
|
request.length,
|
||||||
schedule,
|
schedule,
|
||||||
&key,
|
&key,
|
||||||
@@ -819,5 +818,3 @@ out:
|
|||||||
krb5_storage_free (sp);
|
krb5_storage_free (sp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* KASERVER */
|
|
||||||
|
@@ -67,8 +67,6 @@ extern krb5_boolean allow_anonymous;
|
|||||||
extern char *v4_realm;
|
extern char *v4_realm;
|
||||||
extern int enable_v4;
|
extern int enable_v4;
|
||||||
extern int enable_524;
|
extern int enable_524;
|
||||||
#endif
|
|
||||||
#ifdef KASERVER
|
|
||||||
extern krb5_boolean enable_kaserver;
|
extern krb5_boolean enable_kaserver;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -110,7 +108,7 @@ krb5_error_code get_des_key(hdb_entry*, krb5_boolean, Key**);
|
|||||||
int maybe_version4 (unsigned char*, int);
|
int maybe_version4 (unsigned char*, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef KASERVER
|
#ifdef KRB4
|
||||||
krb5_error_code do_kaserver (unsigned char*, size_t, krb5_data*, const char*,
|
krb5_error_code do_kaserver (unsigned char*, size_t, krb5_data*, const char*,
|
||||||
struct sockaddr_in*);
|
struct sockaddr_in*);
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user