Password change protocol implementation, round 3
Ken Hornstein
kenh at cmf.nrl.navy.mil
Fri Mar 12 17:36:38 EST 2004
So, like we talked about here previously, I've been working on the password
change protocol implemention. Here's what I've got so far:
- The guts of lib/krb5/os/changepw.c have been rewritten to use
krb5int_sendto().
- First off, it will try the request with a directional address. If
the server returns a KRB5_PASSWD_HARDERROR, it will retry the request
with a "normal" IP address in the KRB_PRIV. This works fine with
a 1.2-ish kadmind; I don't expect any problems with 1.3.x (but I'll
try that next week; it's on my list to upgrade my master KDC then
for IPv6 support). I only check for HARDERROR; I don't compare the
result string returned from the kadmin server. While a number of things
can cause HARDERROR to be returned, "Incorrect net address" is the only
one I've run into in practice. This means that in the default case,
you get two chpw requests in the logs, but I don't think that's a big
deal.
(Side note: is there a reason the chpw server doesn't return the actual
error string from com_err back to the user? Sure, it logs it, but it
would save me time from having to go to the KDC to check the logs).
- The directional address support that we talked about (flag in the
auth context, checking the directional address during KRB-PRIV
processing, support in krb5_auth_con_genaddrs()) has been implemented.
I haven't done any of the server work (changing the server to use the new
network library raeburn split off, reply cache) yet; that's next week.
I'm just sending this note as a sanity check ... this is what everyone
here who participated in this discussion agreed upon, right? If so,
can I commit this code? (Since this piece is independent of the the
server side and interoperates with the older server, what's in CVS will
at least interoperate with itself). If someone wants to review this
first, let me know.
--Ken
More information about the krbdev
mailing list