summaryrefslogtreecommitdiffstats
path: root/src/kadmin/client/kadmin.c
diff options
context:
space:
mode:
authorChris Provenzano <proven@mit.edu>1995-03-10 17:27:20 +0000
committerChris Provenzano <proven@mit.edu>1995-03-10 17:27:20 +0000
commit2e91e7c2b5f969fd689082910471e3d6c0584b72 (patch)
treeca9fb685c32362aa7c24830bfa7ebe83d3e7ef00 /src/kadmin/client/kadmin.c
parentb2f49b74f53d6deafc39fc0069de3e249a383b13 (diff)
downloadkrb5-2e91e7c2b5f969fd689082910471e3d6c0584b72.tar.gz
krb5-2e91e7c2b5f969fd689082910471e3d6c0584b72.tar.xz
krb5-2e91e7c2b5f969fd689082910471e3d6c0584b72.zip
* kadmin.c, kadmin_adr.c, kadmin_cpw.c, kadmin_done.c, kadmin_mod.c
* kadmin_add.c, kadmin_cpr.c, kadmin_del.c, kadmin_inq.c, kadmin_msnd.c Use new calling convention for krb5_sendauth(), krb5_mk_priv(), krb5_rd_priv(), krb5_mk_safe(), and krb5_rd_safe(). git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5100 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/client/kadmin.c')
-rw-r--r--src/kadmin/client/kadmin.c193
1 files changed, 51 insertions, 142 deletions
diff --git a/src/kadmin/client/kadmin.c b/src/kadmin/client/kadmin.c
index 93ce5e9ed..44d9219db 100644
--- a/src/kadmin/client/kadmin.c
+++ b/src/kadmin/client/kadmin.c
@@ -35,7 +35,7 @@
#define MAXPATHLEN 1024
#endif
-#include "k5-int.h"
+#include "krb5.h"
static krb5_error_code get_first_ticket
PROTOTYPE((krb5_context,
@@ -83,9 +83,7 @@ main(argc,argv)
kadmin_requests rd_priv_resp;
krb5_context context;
- krb5_checksum send_cksum;
krb5_data msg_data, inbuf;
- krb5_int32 seqno;
char buffer[255];
char command_type[120];
char princ_name[120];
@@ -94,6 +92,9 @@ main(argc,argv)
int oper_type;
int nflag = 0;
+ krb5_auth_context * new_auth_context;
+ krb5_replay_data replaydata;
+
krb5_init_context(&context);
krb5_init_ets(context);
@@ -209,49 +210,34 @@ main(argc,argv)
foreign_addr.length = SIZEOF_INADDR ;
foreign_addr.contents = (krb5_octet *) &remote_sin.sin_addr;
- /* compute checksum, using CRC-32 */
- if (!(send_cksum.contents = (krb5_octet *)
- malloc(krb5_checksum_size(context, CKSUMTYPE_CRC32)))) {
- fprintf(stderr, "Insufficient Memory while Allocating Checksum!\n");
- (void) krb5_cc_destroy(context, cache);
- exit(1);
- }
-
- /* choose some random stuff to compute checksum from */
- if (retval = krb5_calculate_checksum(context, CKSUMTYPE_CRC32,
- ADM5_ADM_VERSION,
- strlen(ADM5_ADM_VERSION),
- 0,
- 0, /* if length is 0, crc-32 doesn't
- use the seed */
- &send_cksum)) {
- fprintf(stderr, "Error while Computing Checksum: %s!\n",
- error_message(retval));
- free(send_cksum.contents);
- (void) krb5_cc_destroy(context, cache);
- exit(1);
- }
+ krb5_auth_con_init(context, &new_auth_context);
+ krb5_auth_con_setflags(context, new_auth_context,
+ KRB5_AUTH_CONTEXT_RET_SEQUENCE);
+
+ krb5_auth_con_setaddrs(context, new_auth_context,
+ &local_addr, &foreign_addr);
/* call Kerberos library routine to obtain an authenticator,
pass it over the socket to the server, and obtain mutual
authentication. */
- if ((retval = krb5_sendauth(context, (krb5_pointer) &local_socket,
+ inbuf.data = ADM5_ADM_VERSION;
+ inbuf.length = strlen(ADM5_ADM_VERSION);
+
+ if ((retval = krb5_sendauth(context, &new_auth_context,
+ (krb5_pointer) &local_socket,
ADM_CPW_VERSION,
my_creds.client,
my_creds.server,
AP_OPTS_MUTUAL_REQUIRED,
- &send_cksum,
+ &inbuf,
&my_creds,
0,
- &seqno,
- 0, /* don't need a subsession key */
&err_ret,
&rep_ret,
NULL))) {
fprintf(stderr, "Error while performing sendauth: %s!\n",
error_message(retval));
- free(send_cksum.contents);
exit(1);
}
@@ -259,21 +245,18 @@ main(argc,argv)
if (retval = krb5_read_message(context, &local_socket, &inbuf)){
fprintf(stderr, " Read Message Error: %s!\n",
error_message(retval));
- free(send_cksum.contents);
exit(1);
}
if ((inbuf.length != 2) || (inbuf.data[0] != KADMIND) ||
(inbuf.data[1] != KADMSAG)){
fprintf(stderr, " Invalid ack from admin server.!\n");
- free(send_cksum.contents);
exit(1);
}
free(inbuf.data);
if ((inbuf.data = (char *) calloc(1, 2)) == (char *) 0) {
fprintf(stderr, "No memory for command!\n");
- free(send_cksum.contents);
exit(1);
}
@@ -281,20 +264,11 @@ main(argc,argv)
inbuf.data[1] = 0xff;
inbuf.length = 2;
- if ((retval = krb5_mk_priv(context, &inbuf,
- ETYPE_DES_CBC_CRC,
- &my_creds.keyblock,
- &local_addr,
- &foreign_addr,
- seqno,
- KRB5_PRIV_DOSEQUENCE|KRB5_PRIV_NOTIME,
- 0,
- 0,
- &msg_data))) {
+ if ((retval = krb5_mk_priv(context, new_auth_context, &inbuf,
+ &msg_data, &replaydata))) {
fprintf(stderr, "Error during First Message Encoding: %s!\n",
error_message(retval));
free(inbuf.data);
- free(send_cksum.contents);
exit(1);
}
free(inbuf.data);
@@ -302,7 +276,6 @@ main(argc,argv)
/* write private message to server */
if (krb5_write_message(context, &local_socket, &msg_data)){
fprintf(stderr, "Write Error During First Message Transmission!\n");
- free(send_cksum.contents);
exit(1);
}
free(msg_data.data);
@@ -312,22 +285,13 @@ main(argc,argv)
if (retval = krb5_read_message(context, &local_socket, &inbuf)){
fprintf(stderr, "Read Error During First Reply: %s!\n",
error_message(retval));
- free(send_cksum.contents);
exit(1);
}
- if ((retval = krb5_rd_priv(context, &inbuf,
- &my_creds.keyblock,
- &foreign_addr,
- &local_addr,
- rep_ret->seq_number,
- KRB5_PRIV_DOSEQUENCE|KRB5_PRIV_NOTIME,
- 0,
- 0,
- &msg_data))) {
+ if ((retval = krb5_rd_priv(context, new_auth_context, &inbuf,
+ &msg_data, &replaydata))) {
fprintf(stderr, "Error during First Read Decoding: %s!\n",
error_message(retval));
- free(send_cksum.contents);
exit(1);
}
free(inbuf.data);
@@ -346,109 +310,65 @@ repeat:
if (!strcmp(command_type, "add")) {
valid++;
oper_type = ADDOPER;
- if (retval = kadm_add_user(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- oper_type,
- princ_name)) break;
+ if (retval = kadm_add_user(context, new_auth_context, &my_creds,
+ &local_socket, oper_type, princ_name))
+ break;
}
if (!strcmp(command_type, "cpw")) {
valid++;
oper_type = CHGOPER;
- if (retval = kadm_cpw_user(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- oper_type,
- princ_name)) break;
+ if (retval = kadm_cpw_user(context, new_auth_context, &my_creds,
+ &local_socket, oper_type, princ_name))
+ break;
}
if (!strcmp(command_type, "addrnd")) {
valid++;
- if (retval = kadm_add_user_rnd(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- princ_name)) break;
+ if (retval = kadm_add_user_rnd(context, new_auth_context, &my_creds,
+ &local_socket, princ_name))
+ break;
}
if (!strcmp(command_type, "cpwrnd")) {
valid++;
- if (retval = kadm_cpw_user_rnd(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- princ_name)) break;
+ if (retval = kadm_cpw_user_rnd(context, new_auth_context, &my_creds,
+ &local_socket, princ_name))
+ break;
}
if (!strcmp(command_type, "del")) {
valid++;
- if (retval = kadm_del_user(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- princ_name)) break;
+ if (retval = kadm_del_user(context, new_auth_context, &my_creds,
+ &local_socket, princ_name))
+ break;
}
if (!strcmp(command_type, "inq")) {
valid++;
- if (retval = kadm_inq_user(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- princ_name)) break;
+ if (retval = kadm_inq_user(context, new_auth_context, &my_creds,
+ &local_socket, princ_name))
+ break;
}
if (!strcmp(command_type, "mod")) {
valid++;
- if (retval = kadm_mod_user(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- princ_name)) break;
+ if (retval = kadm_mod_user(context, new_auth_context, &my_creds,
+ &local_socket, princ_name))
+ break;
}
if (!strcmp(command_type, "addv4")) {
valid++;
oper_type = AD4OPER;
- if (retval = kadm_add_user(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- oper_type,
- princ_name)) break;
+ if (retval = kadm_add_user(context, new_auth_context, &my_creds,
+ &local_socket, oper_type, princ_name))
+ break;
}
if (!strcmp(command_type, "cpwv4")) {
valid++;
oper_type = CH4OPER;
- if (retval = kadm_cpw_user(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno,
- oper_type,
- princ_name)) break;
+ if (retval = kadm_cpw_user(context, new_auth_context, &my_creds,
+ &local_socket, oper_type, princ_name))
+ break;
}
if (!strcmp(command_type, "q")) {
valid++;
- retval = kadm_done(context, &my_creds,
- rep_ret,
- &local_addr,
- &foreign_addr,
- &local_socket,
- &seqno);
+ retval = kadm_done(context, new_auth_context, &my_creds,
+ &local_socket);
break;
}
@@ -459,7 +379,6 @@ repeat:
}
if (retval) {
- free(send_cksum.contents);
exit(1);
}
@@ -467,22 +386,13 @@ repeat:
if (retval = krb5_read_message(context, &local_socket, &inbuf)){
fprintf(stderr, "Read Error During Final Reply: %s!\n",
error_message(retval));
- free(send_cksum.contents);
exit(1);
}
- if ((retval = krb5_rd_priv(context, &inbuf,
- &my_creds.keyblock,
- &foreign_addr,
- &local_addr,
- rep_ret->seq_number,
- KRB5_PRIV_DOSEQUENCE|KRB5_PRIV_NOTIME,
- 0,
- 0,
- &msg_data))) {
+ if ((retval = krb5_rd_priv(context, new_auth_context, &inbuf,
+ &msg_data, &replaydata))) {
fprintf(stderr, "Error during Final Read Decoding :%s!\n",
error_message(retval));
- free(send_cksum.contents);
free(inbuf.data);
exit(1);
}
@@ -505,7 +415,6 @@ repeat:
if (rd_priv_resp.message)
free(rd_priv_resp.message);
- free(send_cksum.contents);
exit(retval);
}