diff options
| author | Chris Provenzano <proven@mit.edu> | 1995-03-10 17:27:45 +0000 |
|---|---|---|
| committer | Chris Provenzano <proven@mit.edu> | 1995-03-10 17:27:45 +0000 |
| commit | f6a382eaeca2ccc3fd6afdff84edd8d722937203 (patch) | |
| tree | 5adb04202413813f557924279083440b1ba70fb5 /src | |
| parent | 2e91e7c2b5f969fd689082910471e3d6c0584b72 (diff) | |
| download | krb5-f6a382eaeca2ccc3fd6afdff84edd8d722937203.tar.gz krb5-f6a382eaeca2ccc3fd6afdff84edd8d722937203.tar.xz krb5-f6a382eaeca2ccc3fd6afdff84edd8d722937203.zip | |
* kpasswd.c Use new calling convention for krb5_sendauth(),
krb5_mk_priv(), and krb5_rd_priv().
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5101 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/kadmin/kpasswd/ChangeLog | 6 | ||||
| -rw-r--r-- | src/kadmin/kpasswd/kpasswd.c | 105 |
2 files changed, 37 insertions, 74 deletions
diff --git a/src/kadmin/kpasswd/ChangeLog b/src/kadmin/kpasswd/ChangeLog index 51aea0c752..257e665a87 100644 --- a/src/kadmin/kpasswd/ChangeLog +++ b/src/kadmin/kpasswd/ChangeLog @@ -1,3 +1,9 @@ + +Fri Mar 10 11:09:34 1995 Chris Provenzano (proven@mit.edu) + + * kpasswd.c Use new calling convention for krb5_sendauth(), + krb5_mk_priv(), and krb5_rd_priv(). + Thu Mar 2 12:25:29 1995 Theodore Y. Ts'o <tytso@dcl> * Makefile.in (ISODELIB): Remove reference to $(ISODELIB). diff --git a/src/kadmin/kpasswd/kpasswd.c b/src/kadmin/kpasswd/kpasswd.c index 3f053d6796..9aadb6b835 100644 --- a/src/kadmin/kpasswd/kpasswd.c +++ b/src/kadmin/kpasswd/kpasswd.c @@ -31,10 +31,11 @@ #include <sys/param.h> #include <pwd.h> -#include <sys/stat.h> +#include <krb5/adm_defs.h> -#include "k5-int.h" +#include <sys/stat.h> +#include "krb5.h" #ifdef USE_STRING_H #include <string.h> #else @@ -96,8 +97,6 @@ main(argc,argv) kadmin_requests rd_priv_resp; - krb5_checksum send_cksum; - int cksum_alloc = 0; krb5_data msg_data, inbuf; krb5_int32 seqno; @@ -105,6 +104,9 @@ main(argc,argv) char *new_password; int new_pwsize; + krb5_auth_context * new_auth_context; + krb5_replay_data replaydata; + #ifdef SANDIA extern int networked(); int krb_secure; @@ -296,40 +298,29 @@ 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"); - goto finish; - } - cksum_alloc++; - /* choose some random stuff to compute checksum from */ - if (retval = krb5_calculate_checksum(context, CKSUMTYPE_CRC32, - ADM_CPW_VERSION, - strlen(ADM_CPW_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)); - goto finish; - } + 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 = ADM_CPW_VERSION; + inbuf.length = strlen(ADM_CPW_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, - 0, + &inbuf, + NULL, cache, - &seqno, - 0, /* don't need a subsession key */ &err_ret, &rep_ret, NULL))) { fprintf(stderr, "Error while performing sendauth: %s!\n", @@ -358,20 +349,11 @@ main(argc,argv) goto finish; } + inbuf.length = 2; inbuf.data[0] = KPASSWD; inbuf.data[1] = CHGOPER; - inbuf.length = 2; - - if ((retval = krb5_mk_priv(context, &inbuf, - ETYPE_DES_CBC_CRC, - &new_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)); goto finish; @@ -395,15 +377,8 @@ main(argc,argv) goto finish; } - if ((retval = krb5_rd_priv(context, &inbuf, - &new_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)); goto finish; @@ -448,16 +423,8 @@ main(argc,argv) inbuf.data = new_password; inbuf.length = strlen(new_password); - if ((retval = krb5_mk_priv(context, &inbuf, - ETYPE_DES_CBC_CRC, - &new_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 Second Message Encoding: %s!\n", error_message(retval)); goto finish; @@ -481,15 +448,8 @@ main(argc,argv) goto finish; } - if ((retval = krb5_rd_priv(context, &inbuf, - &new_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 Second Read Decoding :%s!\n", error_message(retval)); goto finish; @@ -535,7 +495,6 @@ main(argc,argv) free(client_name); free(requested_realm.data); - if (cksum_alloc) free(send_cksum.contents); if (retval) { fprintf(stderr, "\n\nProtocol Failure - Password NOT changed\n\n"); exit(1); @@ -639,11 +598,9 @@ get_first_ticket(context, cache, client, my_creds) #ifdef MACH_PASS /* Machine-generated Passwords */ krb5_error_code -print_and_choose_password(DECLARG(char *, new_password), - DECLARG(krb5_data *, decodable_pwd_string)) -OLDDECLARG(char *, new_password) -OLDDECLARG(krb5_data *, decodable_pwd_string) - +print_and_choose_password(new_password, decodable_pwd_string) + char * new_password; + krb5_data * decodable_pwd_string; { krb5_error_code retval; krb5_pwd_data *pwd_data; |
